> I'm a newbie to Win32 COM and am unsure whether my current problem
> lies in what I'm doing or possibly in some quirk of the DLL I'm trying
> to use from Python.
>
> I have a snippet of C++ that I want to implement in Python:
>
>       IDispatch* pVoid;
>       m_pBrowserApp->get_Document(&pVoid);
>       m_pAnalyzer->Analyze(pVoid, _variant_t(5L));
>       pVoid->Release();
>
> At first, I tried using win32com.Client.Dispatch to create a COM
> object for both my DLL and for the IE browser, and that worked well up
> to the point where I tried to use the ie.Document object as input to
> Analyze where it expects the pVoid.  Got "argument is not a COM
> object"

In general, COM itself doesn't understand a "void *".  In the example above,
that first param would probably be best defined as IUnknown rather than
void.  Further, in general, win32com only supports IDispatch based
interfaces, but the C++ example above is using vtables.  If you can get your
analyzer interface working via IDispatch, it will work correctly from
Python, as well as VBScript, JS, etc...

I'm afraid I can't help with the comtypes issues...

Cheers,

Mark

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

Reply via email to