[python-win32] COM server AddIn

Mark Hammond mhammond at skippinet.com.au
Thu Jul 7 13:53:43 CEST 2005


Glad you spotted that - if you feel there is something I could add to the
docs or examples to make that error less likely in the future, please let me
know.

> Two questions remains:
> 1.) The following code line seems to be unnecessary. The
> AddIn sever works
> without it as well. What is
> the idea for this line? Do I need it?
> universal.RegisterInterfaces('{9C3BB401-114D-11D4-AC72-00105A4
> 925FC}', 0, 1,
> 2, ['ICADdyAddIn'])

You will (probably!) find that line is needed when makepy has not been run
over the module (ie, delete your win32com\gen_py directory and try again).
It is similar to a gencache.EnsureModule call.  Please try it and let me
know if that is not true :)

> 2.) Debugging the server gives me now the following lines in
> the trace debug
> window, which I don't understand. Can you explain what their
> meaning is?
> Object with win32trace dispatcher created (object=None)
> in <Addin1.AddIn1 instance at 0x1F8B9DC8>._QueryInterface_
> with unsupported
> IID IMarshal ({00000003-0000-0000-C000-000000000046})

The short version: it is recording every unsupported QueryInterface call
made on your (Python)COM object.

Longer: It means that something, somewhere is querying your object to see
what interfaces it supports.  Things like IMarshall are queried by COM
itself, whereas others will be called by your host application.  The ones
with names as well as IIDs are known by win32com - the ones with the IID
repeated twice are not known.  In many cases, the caller is quite prepared
for the object to not support the interface, so things continue as normal -
ie, in most cases they can be ignored - but in other cases can give you good
clues about what the host application is expecting of you.

> Thank you very much for your supporting help and time!!

My pleasure - I like to see people get this stuff working :)

Mark



More information about the Python-win32 mailing list