2016-08-17 2 views
1

Je suis en train de comprendre les exemples de serveur COM de , et win32comext/shell/demos/servers/icon_handler.py j'ai vu la ligneQue fait _com_interfaces_?

_com_interfaces_ = [shell.IID_IExtractIcon, pythoncom.IID_IPersistFile] 

Alors que se réfère assez clairement à un IconHandler avoir à mettre en œuvre les interfaces IExtractIcon et IPersistFile, je ne trouve pas documentation _com_interfaces_ est réellement utilisé. Il est introuvable dans win32com.server.register ou win32com.server.localserver.py, donc ni l'enregistrement ni l'appel du serveur ne semblent l'utiliser. Y a-t-il de la documentation sur _com_interfaces_?

Répondre

2

_com_interfaces_ est un attribut facultatif un Server Policy Cherche:

_com_interfaces_

Liste optionnelle des IID exposés par cet objet. Si cet attribut est absent, IID_IDispatch est supposé (par exemple, si non fourni, l'objet COM sera créé en tant qu'objet Automation normal.

La liste est utilisée pour répondre QueryInterface enqueries, consultez le win32com.server.policy module pour voir comment est-ce .. utilisé, en particulier les méthodes BasicPolicy._wrap() et BasicPolicy._QueryInterface_

+0

Je vois, merci Cela me conduit à 'win32com.server.policy' ce qui explique un peu plus sur les politiques et Dispatchers –

+1

liées légèrement, mais' comtypes': https://svn.python.org/projects/ctypes/branches/comtypes-0.4/docs/com_interfaces.txt –