2016-08-17 7 views
1

Я пытаюсь понять примеры COM серверные , и в win32comext/shell/demos/servers/icon_handler.py я увидел линиюЧто делает _com_interfaces_?

_com_interfaces_ = [shell.IID_IExtractIcon, pythoncom.IID_IPersistFile] 

Хотя это довольно очевидно, относится к IconHandler, имеющим реализовать интерфейсы IExtractIcon и IPersistFile, я не могу найти документация , где_com_interfaces_ фактически используется. Этого не видно ни в win32com.server.register, ни в win32com.server.localserver.py, так что ни регистрация, ни вызов сервера, по-видимому, не используют это. Есть ли какая-либо документация по _com_interfaces_?

ответ

2

_com_interfaces_ является необязательным атрибутом Server Policy ищет:

_com_interfaces_

Факультативным список идентификаторы IID выставляемых этого объекта. Если этот атрибут отсутствует, IID_IDispatch предполагается (то есть, если не входит в комплект, то объект COM будет создан как обычный объект автоматизации.

Список используется для ответа QueryInterface enqueries см win32com.server.policy module, чтобы увидеть, как это .. используется, в частности, в BasicPolicy._wrap() и BasicPolicy._QueryInterface_ методы

+0

Я вижу, спасибо, что приводит меня к 'win32com.server.policy', который объясняет немного больше о политике и диспетчеры –

+1

немного связаны, но' comtypes': https://svn.python.org/projects/ctypes/branches/comtypes-0.4/docs/com_interfaces.txt –

 Смежные вопросы

  • Нет связанных вопросов^_^