def WriteEventSinkClassHeader(self, generator):
generator.checkWriteEventBaseClass()
doc = self.doc
stream = generator.file
print('class ' + self.python_name + ':', file=stream)
if doc[1]: print('\t' + build._makeDocString(doc[1]), file=stream)
try:
progId = pythoncom.ProgIDFromCLSID(self.clsid)
print("\t# This class is creatable by the name '%s'" % (progId), file=stream)
except pythoncom.com_error:
pass
print('\tCLSID = CLSID_Sink = ' + repr(self.clsid), file=stream)
if self.coclass_clsid is None:
print("\tcoclass_clsid = None", file=stream)
else:
print("\tcoclass_clsid = " + repr(self.coclass_clsid), file=stream)
print('\t_public_methods_ = [] # For COM Server support', file=stream)
WriteSinkEventMap(self, stream)
print(file=stream)
print('\tdef __init__(self, oobj = None):', file=stream)
print("\t\tif oobj is None:", file=stream)
print("\t\t\tself._olecp = None", file=stream)
print("\t\telse:", file=stream)
print('\t\t\timport win32com.server.util', file=stream)
print('\t\t\tfrom win32com.server.policy import EventHandlerPolicy', file=stream)
print('\t\t\tcpc=oobj._oleobj_.QueryInterface(pythoncom.IID_IConnectionPointContainer)', file=stream)
print('\t\t\tcp=cpc.FindConnectionPoint(self.CLSID_Sink)', file=stream)
print('\t\t\tcookie=cp.Advise(win32com.server.util.wrap(self, usePolicy=EventHandlerPolicy))', file=stream)
print('\t\t\tself._olecp,self._olecp_cookie = cp,cookie', file=stream)
print('\tdef __del__(self):', file=stream)
print('\t\ttry:', file=stream)
print('\t\t\tself.close()', file=stream)
print('\t\texcept pythoncom.com_error:', file=stream)
print('\t\t\tpass', file=stream)
print('\tdef close(self):', file=stream)
print('\t\tif self._olecp is not None:', file=stream)
print('\t\t\tcp,cookie,self._olecp,self._olecp_cookie = self._olecp,self._olecp_cookie,None,None', file=stream)
print('\t\t\tcp.Unadvise(cookie)', file=stream)
print('\tdef _query_interface_(self, iid):', file=stream)
print('\t\timport win32com.server.util', file=stream)
print('\t\tif iid==self.CLSID_Sink: return win32com.server.util.wrap(self)', file=stream)
print(file=stream)
self.bWritten = 1
评论列表
文章目录