Beispiel #1
0
 def WriteCallbackClassBody(self, generator):
     stream = generator.file
     print >> stream, "\t# Event Handlers"
     print >> stream, "\t# If you create handlers, they should have the following prototypes:"
     for name, entry in self.propMapGet.items() + self.propMapPut.items() + self.mapFuncs.items():
         fdesc = entry.desc
         methName = MakeEventMethodName(entry.names[0])
         print >> stream, '#\tdef ' + methName + '(self' + build.BuildCallList(fdesc, entry.names, "defaultNamedOptArg", "defaultNamedNotOptArg","defaultUnnamedArg", "pythoncom.Missing", is_comment = True) + '):'
         if entry.doc and entry.doc[1]:
             print >> stream, '#\t\t' + build._makeDocString(entry.doc[1])
     print >> stream
     self.bWritten = 1
Beispiel #2
0
 def WriteCallbackClassBody(self, generator):
     stream = generator.file
     print >> stream, "\t# Event Handlers"
     print >> stream, "\t# If you create handlers, they should have the following prototypes:"
     for name, entry in self.propMapGet.items() + self.propMapPut.items() + self.mapFuncs.items():
         fdesc = entry.desc
         methName = MakeEventMethodName(entry.names[0])
         print >> stream, '#\tdef ' + methName + '(self' + build.BuildCallList(fdesc, entry.names, "defaultNamedOptArg", "defaultNamedNotOptArg","defaultUnnamedArg", "pythoncom.Missing", is_comment = True) + '):'
         if entry.doc and entry.doc[1]:
             print >> stream, '#\t\t' + build._makeDocString(entry.doc[1])
     print >> stream
     self.bWritten = 1
Beispiel #3
0
    def do_gen_file_header(self):
        la = self.typelib.GetLibAttr()
        moduleDoc = self.typelib.GetDocumentation(-1)
        docDesc = ""
        if moduleDoc[1]:
            docDesc = moduleDoc[1]

        # Reset all the 'per file' state
        self.bHaveWrittenDispatchBaseClass = 0
        self.bHaveWrittenCoClassBaseClass = 0
        self.bHaveWrittenEventBaseClass = 0
        # You must provide a file correctly configured for writing unicode.
        # We assert this is it may indicate somewhere in pywin32 that needs
        # upgrading.
        assert self.file.encoding, self.file
        encoding = self.file.encoding  # or "mbcs"

        print >> self.file, '# -*- coding: %s -*-' % (encoding, )
        print >> self.file, '# Created by makepy.py version %s' % (
            makepy_version, )
        print >> self.file, '# By python version %s' % \
                            (sys.version.replace("\n", "-"),)
        if self.sourceFilename:
            print >> self.file, "# From type library '%s'" % (os.path.split(
                self.sourceFilename)[1], )
        print >> self.file, '# On %s' % time.ctime(time.time())

        print >> self.file, build._makeDocString(docDesc)

        print >> self.file, 'makepy_version =', repr(makepy_version)
        print >> self.file, 'python_version = 0x%x' % (sys.hexversion, )
        print >> self.file
        print >> self.file, 'import win32com.client.CLSIDToClass, pythoncom, pywintypes'
        print >> self.file, 'import win32com.client.util'
        print >> self.file, 'from pywintypes import IID'
        print >> self.file, 'from win32com.client import Dispatch'
        print >> self.file
        print >> self.file, '# The following 3 lines may need tweaking for the particular server'
        print >> self.file, '# Candidates are pythoncom.Missing, .Empty and .ArgNotFound'
        print >> self.file, 'defaultNamedOptArg=pythoncom.Empty'
        print >> self.file, 'defaultNamedNotOptArg=pythoncom.Empty'
        print >> self.file, 'defaultUnnamedArg=pythoncom.Empty'
        print >> self.file
        print >> self.file, 'CLSID = ' + repr(la[0])
        print >> self.file, 'MajorVersion = ' + str(la[3])
        print >> self.file, 'MinorVersion = ' + str(la[4])
        print >> self.file, 'LibraryFlags = ' + str(la[5])
        print >> self.file, 'LCID = ' + hex(la[1])
        print >> self.file
Beispiel #4
0
  def do_gen_file_header(self):
    la = self.typelib.GetLibAttr()
    moduleDoc = self.typelib.GetDocumentation(-1)
    docDesc = ""
    if moduleDoc[1]:
      docDesc = moduleDoc[1]

    # Reset all the 'per file' state
    self.bHaveWrittenDispatchBaseClass = 0
    self.bHaveWrittenCoClassBaseClass = 0
    self.bHaveWrittenEventBaseClass = 0
    # You must provide a file correctly configured for writing unicode.
    # We assert this is it may indicate somewhere in pywin32 that needs
    # upgrading.
    assert self.file.encoding, self.file
    encoding = self.file.encoding # or "mbcs"

    print >> self.file, '# -*- coding: %s -*-' % (encoding,)
    print >> self.file, '# Created by makepy.py version %s' % (makepy_version,)
    print >> self.file, '# By python version %s' % \
                        (sys.version.replace("\n", "-"),)
    if self.sourceFilename:
        print >> self.file, "# From type library '%s'" % (os.path.split(self.sourceFilename)[1],)
    print >> self.file, '# On %s' % time.ctime(time.time())

    print >> self.file, build._makeDocString(docDesc)

    print >> self.file, 'makepy_version =', repr(makepy_version)
    print >> self.file, 'python_version = 0x%x' % (sys.hexversion,)
    print >> self.file
    print >> self.file, 'import win32com.client.CLSIDToClass, pythoncom, pywintypes'
    print >> self.file, 'import win32com.client.util'
    print >> self.file, 'from pywintypes import IID'
    print >> self.file, 'from win32com.client import Dispatch'
    print >> self.file
    print >> self.file, '# The following 3 lines may need tweaking for the particular server'
    print >> self.file, '# Candidates are pythoncom.Missing, .Empty and .ArgNotFound'
    print >> self.file, 'defaultNamedOptArg=pythoncom.Empty'
    print >> self.file, 'defaultNamedNotOptArg=pythoncom.Empty'
    print >> self.file, 'defaultUnnamedArg=pythoncom.Empty'
    print >> self.file
    print >> self.file, 'CLSID = ' + repr(la[0])
    print >> self.file, 'MajorVersion = ' + str(la[3])
    print >> self.file, 'MinorVersion = ' + str(la[4])
    print >> self.file, 'LibraryFlags = ' + str(la[5])
    print >> self.file, 'LCID = ' + hex(la[1])
    print >> self.file
Beispiel #5
0
 def WriteClassHeader(self, generator):
     generator.checkWriteDispatchBaseClass()
     doc = self.doc
     stream = generator.file
     print >> stream, 'class ' + self.python_name + '(DispatchBaseClass):'
     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 = " + 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
     self.bWritten = 1
Beispiel #6
0
 def WriteClassHeader(self, generator):
     generator.checkWriteDispatchBaseClass()
     doc = self.doc
     stream = generator.file
     print >> stream, 'class ' + self.python_name + '(DispatchBaseClass):'
     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 = " + 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
     self.bWritten = 1
Beispiel #7
0
 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
Beispiel #8
0
 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