_com_interfaces_ 是做什么的?

What does _com_interfaces_ do?

我试图理解 的 COM 服务器示例,在 win32comext/shell/demos/servers/icon_handler.py 中我看到了行

_com_interfaces_ = [shell.IID_IExtractIcon, pythoncom.IID_IPersistFile]

虽然这很清楚地指的是 IconHandler having to implement the IExtractIcon and IPersistFile 接口,但我找不到任何文档 其中 _com_interfaces_ 是实际使用的。它在win32com.server.registerwin32com.server.localserver.py 中无处可见,因此注册和服务器调用似乎都没有实际使用它。有关于 _com_interfaces_ 的文档吗?

_com_interfaces_Server Policy 寻找的可选属性:

_com_interfaces_

Optional list of IIDs exposed by this object. If this attribute is missing, IID_IDispatch is assumed (ie, if not supplied, the COM object will be created as a normal Automation object.

列表用于回答QueryInterface enqueries, see the win32com.server.policy module to see how this is being used, specifically the BasicPolicy._wrap() and BasicPolicy._QueryInterface_方法。