On 28/10/2010 3:50 AM, Steve Johnston wrote:
First, a little background to help explain the problem. I have a C++ MFC
application configured as an Automation COM server. It has a dual
interface defined in a type library embedded as a resource in the
executable. The dual interface has been been implemented according to
the Microsoft help article "TN065: Dual-Interface Support for OLE
Automation Servers". The application also has dispinterface which
implements only a small subset of the properties and methods contained
in the dual interface.

I don't quite understand the above - a "dual interface" is one that exposes both vtable and IDispatch implementations of an object - so I'm not sure what the additional 'dispinterface' is all about - that "dual interface" should have everything needed.

"C:\Python26\lib\site-packages\win32com\gen_py\D604334A-6198-4BEC-9AE9-6038B7352C9Ax0x2x24\IDualFREDApp.py",
line 33, in Acos
return self._oleobj_.InvokeTypes(20, LCID, 1, (5, 0), ((5, 1),),x
com_error: (-2147352573, 'Member not found.', None, None)
 >>>

So it looks like win32com is seeing the dual interface OK (and only supports using the IDispatch implementation of it.) It is attempting to make the IDispatch call with the member ID specified in the typelib, but the object is rejecting the call.

It sounds like your object is responding to a QI for IDispatch and returning the secondary 'dispinterface' object - if it just returned the IDispatch implementation for the dual interface things would probably work.

Mark
_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to