我试图理解pywin32的COM服务器示例,并且在win32comext/shell/demos/servers/icon_handler.py
中我看到了
_com_interfaces_ = [shell.IID_IExtractIcon, pythoncom.IID_IPersistFile]
虽然这很清楚地指的是IconHandler
必须实现IExtractIcon
和IPersistFile
接口,但我找不到任何文档,其中 _com_interfaces_
实际使用。在win32com.server.register
或win32com.server.localserver.py
中没有看到它,因此注册和服务器调用似乎都没有实际使用它。有_com_interfaces_
的文档吗?
_com_interfaces_
是服务器策略查找的可选属性:
_com_interfaces_
该对象公开的iid的可选列表。如果缺少此属性,则假定
IID_IDispatch
(即,如果未提供,则COM对象将作为普通自动化对象创建。
该列表用于回答QueryInterface
查询,请参阅win32com.server.policy
模块以了解如何使用该列表,特别是BasicPolicy._wrap()
和BasicPolicy._QueryInterface_
方法。