def createListener(self, oImplClass, dArgs):
if True:
raise Exception('no active listeners on Windows as PyGatewayBase::QueryInterface() '
'returns new gateway objects all the time, thus breaking EventQueue '
'assumptions about the listener interface pointer being constants between calls ')
# Did this code ever really work?
d = {}
d['BaseClass'] = oImplClass
d['dArgs'] = dArgs
d['tlb_guid'] = PlatformMSCOM.VBOX_TLB_GUID
d['tlb_major'] = PlatformMSCOM.VBOX_TLB_MAJOR
d['tlb_minor'] = PlatformMSCOM.VBOX_TLB_MINOR
str_ = ""
str_ += "import win32com.server.util\n"
str_ += "import pythoncom\n"
str_ += "class ListenerImpl(BaseClass):\n"
str_ += " _com_interfaces_ = ['IEventListener']\n"
str_ += " _typelib_guid_ = tlb_guid\n"
str_ += " _typelib_version_ = tlb_major, tlb_minor\n"
str_ += " _reg_clsctx_ = pythoncom.CLSCTX_INPROC_SERVER\n"
# Maybe we'd better implement Dynamic invoke policy, to be more flexible here
str_ += " _reg_policy_spec_ = 'win32com.server.policy.EventHandlerPolicy'\n"
# capitalized version of listener method
str_ += " HandleEvent=BaseClass.handleEvent\n"
str_ += " def __init__(self): BaseClass.__init__(self, dArgs)\n"
str_ += "result = win32com.server.util.wrap(ListenerImpl())\n"
exec(str_, d, d)
return d['result']
__init__.py 文件源码
python
阅读 21
收藏 0
点赞 0
评论 0
评论列表
文章目录