[python-win32] in-process COM DLL in Python
Mark Hammond
skippy.hammond at gmail.com
Sat Apr 15 22:00:02 EDT 2023
You should be able to wrap a Person object - something like ob =
win32com.server.util.wrap(Person(...)) - and just return that. You
probably don't need the VARIANT dance, it should just work based on the
type returned being a Dispatch wrapper.
HTH,
Mark
On 16/4/2023 7:27 am, Wuping Xin wrote:
> I'd like to return another Python object, using a method of a COM
> object defined using Python, something like below - is that doable?
> For in process COM object defined through Python, is there any
> limitation about the types that can be returned from COM method?
>
> class Person:
> _public_methods_ = ["Name"]
>
> def __init__(self, name, age):
> self.name = name
> self.age = age
>
> def Name(self, age = None):
> return self.name
>
>
> # Define a Python class that will be registered as a COM object
> class MyCOMObject:
> _public_methods_ = ["GetPerson"]
>
> *def GetPerson(self, name, age):*
> p = Person(name, age)
> my_variant = pywintypes.VARIANT(p, VARIANT.VT_DISPATCH)
> return my_variant
>
> # Register the class as a COM object
>
> win32com.server.register.UseCommandLine(MyCOMObject)
>
> _______________________________________________
> python-win32 mailing list
> python-win32 at python.org
> https://mail.python.org/mailman/listinfo/python-win32
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.python.org/pipermail/python-win32/attachments/20230416/f8a1d9db/attachment.html>
More information about the python-win32
mailing list