In short: I'm trying to call a method on in IUknown-based interface. I have some parts, but they don't connect. Situation: o1 = win32com.client.Dispatch("SomeProgId") o2 = o1.SubObject The subobject is not co-creatable, o2._ole_obj_ is a <PyIDispatch at ...>`, as expected. o2 also supports another interface, IMyInterface, derived form IUnknown, and I want to call a method on that interface. The following: iid = pywintypes.IID("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}") // IMyInterface iid o2._oleobj_.QueryInterface(iid) fails with TypeError: There is no interface object registered that supports this IID The Queryinterface call itself succeeds (I've verified that in the source for the COM object), and if I specify an unsupported IID, the error message is different. The call fails even without trying to assing the result. Okay, so I set out to find out about early binding support in python. Documentation seems spotty and outdated (or am I missing something?) The following succeeds: tlb = comtypes.client.GetModule(r"path-to-dll") x = tlb.IMyInterface() Of course x is not usable, but intellisense shows the correct methods etc. for x. Generally, Intellisense shows all elements from the type library, so that part seems to work. I've also tried: myitf = win32com.client.CastTo(o2._oleobj_, 'IMyInterface') which fails with No module named 'win32com.gen_py.x0x2x4.IMyInterface' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "…\Python312-32\Lib\site-packages\win32com\client_init_.py", line 213, in CastTo mod = gencache.GetModuleForCLSID(target_clsid) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ … No module named 'win32com.gen_py.x0x2x4.IMyInterface' 2.4 is the typelib version, so everything looks good. Any help? Continue reading...