Python sys.coinit_flags() Examples

The following are code examples for showing how to use sys.coinit_flags(). They are extracted from open source Python projects. You can vote up the examples you like or vote down the ones you don't like. You can also save this page to your account.

Example 1
Project: w4py   Author: Cito   File:    (license) View Source Project 4 votes vote down vote up
def InstallInWebKit(appServer):
    # This function gets called by the app server during initialization.
    if not appServer.setting('EnableCOM', False):
        return  # enabling COM was not requested

    # This must be done BEFORE pythoncom is imported -- see the book mentioned above.
    import sys
    sys.coinit_flags = 0

    # Get the win32 extensions
    import pythoncom

    # Set references to the COM initialize and uninitialize functions
    appServer._initCOM = pythoncom.COINIT_MULTITHREADED
    appServer.initCOM = pythoncom.CoInitializeEx
    appServer.closeCOM = pythoncom.CoUninitialize

    # Monkey-patch this instance of the appServer

    # Grab references to the original initThread and delThread bound
    # methods, which we will replace
    appServer.originalInitThread = appServer.initThread
    appServer.originalDelThread = appServer.delThread

    # Create new versions of initThread and delThread which will call the
    # old versions

    def newInitThread(self):
        # This must be called at the beginning of any thread that uses COM
        # Call the original initThread

    def newDelThread(self):
        # Call the original delThread
        # Uninitialize COM

    # Replace the initThread and delThread methods with our new versions
    import new
    appServer.initThread = new.instancemethod(newInitThread, appServer, appServer.__class__)
    appServer.delThread = new.instancemethod(newDelThread, appServer, appServer.__class__)

    print 'COM has been enabled.'