[python-win32] COM server and pointer to pointer parameter

Mark Hammond mhammond at skippinet.com.au
Wed Nov 12 23:35:40 CET 2008


> Thanks Mark for the test. I'm running the test on Windows XP and
> Windows 2k,
> both with python 2.5.2. The problem is that the QI with value to 0 is
> raised somewhere in the pythoncom code

I'm pretty sure pythoncom never (explicitly) QI's for IID_NULL.  It may QI
for one of its private interfaces though, or in general for *any* interface
- so I'm still surprised that a QI for an interface you don't support breaks
anything - its *designed* to be called with interfaces you don't understand.
In out-of-process situations the COM marshaller may do the same to see if
you can help with the marshalling - indeed, that might be a clue here.

> This cause the call to the function to fail with an exception.

What exception exactly?

> I guess that if you return E_NOINTERFACE the effect changes a little but
> not
> the concept. Why somebody is asking for an interface with iid to null?
> This
> happens with functions that want to return a **param as in the pippo
> server.

That is another clue that makes me think the marshaller might be involved.
Have you changed pippo to only support out-of-process registration?

Cheers,

Mark



More information about the python-win32 mailing list