[python-win32] COM: Minimal example of a custom server working with DispatchWithEvents()

Mark Hammond skippy.hammond at gmail.com
Wed Jul 28 04:25:30 EDT 2021


On 28/07/2021 7:58 am, William Belanger wrote:
> Hi everyone,
> 
> 
> I'm trying to make a cross-platform Python interface for a third-party 
> API (Druide Antidote). The D-Bus part is done and working 
> (https://gitlab.com/-/snippets/2151173 
> <https://gitlab.com/-/snippets/2151173>), it consist of a server adapter 
> (AdaptateurAntidote), which relay the events to an handler class 
> (ImplementationAntidote).
> 
>     Traceback (most recent call last):
> 
>     File
>     "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\win32com\client\__init__.py",
>     line 256, in DispatchWithEvents
> 
>     ti = disp._oleobj_.GetTypeInfo()
> 
>     pywintypes.com_error: (-2147352567, 'Exception occurred.', None, None)

DispatchWithEvents creates a COM object, then gets the typeinfo needed 
to implement the interfaces defined for events - but this COM object is 
failing to provide that type info at runtime. It might still have a .tlb 
available though, and if it does, you can run `makepy.py` once and the 
snippet should work. The typelib can also live in a .dll, but I've never 
heard of Antidote so have no better suggestions.

Cheers,

Mark


More information about the python-win32 mailing list