genpy.py 文件源码

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

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


问题


面经


文章

微信
公众号

扫码关注公众号