genpy.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:CodeReader 作者: jasonrbr 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号