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

ricercar at infinito.it ricercar at infinito.it
Wed Nov 12 12:20:44 CET 2008


>I'm afraid that with the exact same process (although the 'print' says
>'print "QI", iid' - using python 2.6 on vista) I see exactly:
>
>| Object with win32trace dispatcher created (object=None)
>| Object with win32trace dispatcher created (object=<pippo_server.CPippo
>instance at 0x02AD8210>)
>| QI {F1A3CC2E-4B2A-4A81-992D-67862076949B}
>
>So I see no such QI.  Also, I've lost the context - what problem is caused
>by this QI?  We should return E_NOINTERFACE.

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 (or in the OS COM stuff), but I cannot find
where. This cause the call to the function to fail with an exception. 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.

On the weekend I could try on Vista but I suspect that there's something
else since on your side it's working. 

thanks, Enrico




More information about the python-win32 mailing list