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

ricercar at infinito.it ricercar at infinito.it
Tue Nov 25 16:32:54 CET 2008


At 09.35 13/11/2008 +1100, you wrote:
>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


Sorry for replying late, I had some problems and I could not do tests on
pippo_server before.
Well the situation is this:
- on Windows Vista everything is working fine (python 2.5)
- on XP and 2K the QueryInterface with iid to NULL is always called. I tried
to set _reg_clsctx to both CLSCTX_LOCAL_SERVER and CLSCTX_INPROC_SERVER
without success. The messages have minimal differences but the result is
that Method1 fails.
At this point I don't known what to test and don't know what are the
differences between the OSes. 


with
_reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER

{1C733A30-2A1C-11CE-ADE5-00AA0044773D}
in <pippo_server.CPippo instance at 0x01007A08>._QueryInterface_ with
unsupported IID {1C733A30-2A1C-11CE-ADE5-00AA0044773D}
({1C733A30-2A1C-11CE-ADE5-00AA0044773D})
{F1A3CC2E-4B2A-4A81-992D-67862076949B}
Object with win32trace dispatcher created (object=<pippo_server.CPippo
instance at 0x00EE95F8>)
{00000000-0000-0000-0000-000000000000}
Traceback (most recent call last):
  File "C:Python25libsite-packageswin32comserverdispatcher.py", line 41, in
_QueryInterface_
    return self.policy._QueryInterface_(iid)
  File "C:Python25libsite-packageswin32comserverpolicy.py", line 261, in
_QueryInterface_
    print iid
com_error: (-2147221005, "Stringa dell'interfaccia non valida.", None, None)
pythoncom error: Failed to call the universal dispatcher

Traceback (most recent call last):
  File "C:Python25libsite-packageswin32comuniversal.py", line 193, in
dispatch
    WriteFromOutTuple(retVal, meth._gw_out_args, argPtr)
<class 'pywintypes.com_error'>: (-2147467262, 'Interfaccia non supportata.',
None, None)
 {1C733A30-2A1C-11CE-ADE5-00AA0044773D}
in <pippo_server.CPippo instance at 0x01007A08>._QueryInterface_ with
unsupported IID {1C733A30-2A1C-11CE-ADE5-00AA0044773D}
({1C733A30-2A1C-11CE-ADE5-00AA0044773D})

--------------
without
_reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER

Object with win32trace dispatcher created (object=<pippo_server.CPippo
instance at 0x015A96C0>)
{00000000-0000-0000-0000-000000000000}
Traceback (most recent call last):
  File "C:Python25libsite-packageswin32comserverdispatcher.py", line 41, in
_QueryInterface_
    return self.policy._QueryInterface_(iid)
  File "C:Python25libsite-packageswin32comserverpolicy.py", line 261, in
_QueryInterface_
    print iid
com_error: (-2147221005, "Stringa dell'interfaccia non valida.", None, None)
pythoncom error: Failed to call the universal dispatcher

Traceback (most recent call last):
  File "C:Python25libsite-packageswin32comuniversal.py", line 193, in
dispatch
    WriteFromOutTuple(retVal, meth._gw_out_args, argPtr)
<class 'pywintypes.com_error'>: (-2147467262, 'Interfaccia non supportata.',
None, None)

Traceback (most recent call last):
  File "pippo-test.py", line 21, in <module>
    p = obj.Method1()
_ctypes.COMError: COMError(0x80004005, 'Errore non specificato.', (None,
None, None, 0, None))

Best regards,
Enrico




More information about the python-win32 mailing list