[python-win32] Missing COM Events

Henning Fagge I (GR/ETO) henning.i.fagge at ericsson.com
Thu Jul 3 15:27:49 EDT 2003


The result of makepy command is attached at the end:

My problem is that I just get the "IDebugMuxEvents", I never get the two other "ITargetEvents" and "IDataProvidersEvent". 
The result from running the program look like this:

Starting DBGMux
method OnTargetConnected
Available DataProviders: Print Server Channel
Available DataProviders: SDKSERVER
Available DataProviders: Tvp
Available DataProviders: Interactive Debug
Connect to:  Interactive Debug
Connect SUCCESS
Sending dir command, which should return something which should cause a event(OnDataAvailable)
Available DataProviders: Print Server Channel
Available DataProviders: SDKSERVER
Available DataProviders: Tvp
Available DataProviders: Interactive Debug

My simple program look like this:

***********
My program:
***********
from win32com.client import DispatchWithEvents, Dispatch
import msvcrt, pythoncom
import time, sys
import types
import threading
defaultNamedOptArg=pythoncom.Empty
defaultNamedNotOptArg=pythoncom.Empty
defaultUnnamedArg=pythoncom.Empty
class IDataProviderEvents:
    def OnDisconnect(self):
        """method OnDisconnect"""
        print "****************************OnDisconnect*****************************"
    def OnDataAvailable(self, DataPacket=defaultNamedNotOptArg):
        """method OnDataAvailable"""
        print "************************OnDataAvailable******************************"
            
class ITargetEvents:
    def OnDataProviderRemoved(self, DataProvider=defaultNamedNotOptArg):
        """method OnDataProviderRemoved"""
        print "method OnDataProviderRemoved"
    def OnNewDataProvider(self, DataProvider=defaultNamedNotOptArg):
        """method OnNewDataProvider"""
        print "method OnNewDataProvider"
    def OnDataProviderUnavailable(self, DataProvider=defaultNamedNotOptArg):
        """method OnDataProviderUnavailable"""
        print "method OnDataProviderUnavailable"


class IDebugMuxEvents:
    def OnTargetConnected(self, Target=None):
        """method OnTargetConnected"""
        print "method OnTargetConnected"
    def OnTargetDisconnected(self, Target=None):
        """method OnTargetDisconnected"""
        print "method OnTargetDisconnected"

def TestDBGMux():
    connected=0
    print 20*"\n"+"Starting DBGMux" 
    object=DispatchWithEvents("DebugMuxSrv.DebugMux",IDebugMuxEvents)
    object.Configure(0)
    start=time.time()
    while (time.time()-start)<20:
        pythoncom.PumpWaitingMessages()
        time.sleep(2)
        for Target in object.Targets:
            DispatchWithEvents(Target,ITargetEvents)
            DataProviders=Target.DataProviders
            for DataProvider in DataProviders:
                print "Available DataProviders:",DataProvider.Name
                if str(DataProvider.Name)=="Interactive Debug":
                    if DataProvider.Available and not connected:
                        print "Connect to: ",DataProvider.Name
                        if DataProvider.Connect():
                            print "Connect SUCCESS"
                        else:
                            print "Connect FAILED"
                        DispatchWithEvents(DataProvider,IDataProviderEvents)
                        connected=1
                    packet=Dispatch("DebugMuxSrv.DataPacket.1")
                    #Sending this command(DIR) gives som result and should cause an event(OnDataAvailable)!!!!!!
                    print "Sending dir command, which should return something which should cause a event(OnDataAvailable)"
                    packet.Data="dir\n"
                    DataProvider.Send(packet)
                
    print "Exit timeout"

TestDBGMux()




*****************************************************
Running the command makepy gave the following result:
*****************************************************
# Created by makepy.py version 0.4.4
# By python version 2.2.3 (#42, May 30 2003, 18:12:08) [MSC 32 bit (Intel)]
# From type library 'DEBUGM~1.EXE'
# On Wed Jul 02 11:39:05 2003
"""DebugMuxSrv 1.0 Type Library"""
makepy_version = '0.4.4'
python_version = 0x20203f0

import win32com.client.CLSIDToClass, pythoncom
from pywintypes import IID
from win32com.client import Dispatch

# The following 3 lines may need tweaking for the particular server
# Candidates are pythoncom.Missing and pythoncom.Empty
defaultNamedOptArg=pythoncom.Empty
defaultNamedNotOptArg=pythoncom.Empty
defaultUnnamedArg=pythoncom.Empty

CLSID = IID('{0C003D28-B1B8-43B6-829D-D7E32446575D}')
MajorVersion = 1
MinorVersion = 0
LibraryFlags = 8
LCID = 0x0

from win32com.client import DispatchBaseClass
class IDataPacket(DispatchBaseClass):
	"""IDataPacket Interface"""
	CLSID = IID('{3E2DF654-9B5A-4836-8196-6BAF284A7080}')
	coclass_clsid = IID('{DDB38397-77ED-4A7E-914D-CF66F15935DA}')

	def GetDataAsString(self, StringData=defaultNamedNotOptArg):
		"""method GetDataAsString"""
		return self._oleobj_.InvokeTypes(3, LCID, 1, (24, 0), ((16392, 0),),StringData)

	def SetStringAsData(self, StringData=defaultNamedNotOptArg):
		"""method SetStringAsData"""
		return self._oleobj_.InvokeTypes(4, LCID, 1, (24, 0), ((8, 0),),StringData)

	_prop_map_get_ = {
		"Data": (2, 2, (8209, 0), (), "Data", None),
		"DataLength": (1, 2, (3, 0), (), "DataLength", None),
	}
	_prop_map_put_ = {
		"Data": ((2, LCID, 4, 0),()),
	}

class IDataProvider(DispatchBaseClass):
	"""IDataProvider Interface"""
	CLSID = IID('{863A0E7B-963D-44FD-849B-1E540B0017CA}')
	coclass_clsid = IID('{E81B5D02-43EA-4EE4-957C-E569D048F0A7}')

	def Connect(self):
		"""method Connect"""
		return self._oleobj_.InvokeTypes(4, LCID, 1, (11, 0), (),)

	def Disconnect(self):
		"""method Disconnect"""
		return self._oleobj_.InvokeTypes(5, LCID, 1, (11, 0), (),)

	def Send(self, DataPacket=defaultNamedNotOptArg):
		"""method Send"""
		return self._oleobj_.InvokeTypes(6, LCID, 1, (11, 0), ((9, 0),),DataPacket)

	_prop_map_get_ = {
		"Available": (3, 2, (11, 0), (), "Available", None),
		"DataPacketLimit": (7, 2, (2, 0), (), "DataPacketLimit", None),
		"Id": (1, 2, (2, 0), (), "Id", None),
		"Name": (2, 2, (8, 0), (), "Name", None),
	}
	_prop_map_put_ = {
	}

class IDataProviders(DispatchBaseClass):
	"""IDataProviders Interface"""
	CLSID = IID('{C4DEAE67-22FF-4F2E-BE49-D22D0B5C5B44}')
	coclass_clsid = IID('{DB71C9CB-EB66-4D9F-85FD-D7B6EB034D63}')

	# The method Item is actually a property, but must be used as a method to correctly pass the arguments
	def Item(self, Index=defaultNamedNotOptArg):
		return self._ApplyTypes_(0, 2, (12, 0), ((3, 1),), 'Item', None,Index)

	_prop_map_get_ = {
		"Count": (1, 2, (3, 0), (), "Count", None),
	}
	_prop_map_put_ = {
	}
	# Default method for this class is 'Item'
	def __call__(self, Index=defaultNamedNotOptArg):
		return self._ApplyTypes_(0, 2, (12, 0), ((3, 1),), '__call__', None,Index)

	# str(ob) and int(ob) will use __call__
	def __unicode__(self, *args):
		try:
			return unicode(apply( self.__call__, args))
		except pythoncom.com_error:
			return repr(self)
	def __str__(self, *args):
		return str(apply(self.__unicode__, args))
	def __int__(self, *args):
		return int(apply( self.__call__, args))
	def _NewEnum(self):
		"Create an enumerator from this object"
		return win32com.client.util.WrapEnum(self._oleobj_.InvokeTypes(-4,LCID,2,(13, 10),()),None)
	def __getitem__(self, index):
		"Allow this class to be accessed as a collection"
		if not self.__dict__.has_key('_enum_'):
			import win32com.client.util
			self.__dict__['_enum_'] = self._NewEnum()
		return self._enum_.__getitem__(index)
	#This class has Count() property - allow len(ob) to provide this
	def __len__(self):
		return apply(self._ApplyTypes_, (1, 2, (3, 0), (), "Count", None) )
	#This class has a __len__ - this is needed so 'if object:' always returns TRUE.
	def __nonzero__(self):
		return 1

class IDebugMux(DispatchBaseClass):
	"""IDebugMux Interface"""
	CLSID = IID('{01146C8E-79FD-4AC5-BF8A-30F5165E9640}')
	coclass_clsid = IID('{D8677026-F045-4A10-A69C-971939E434A0}')

	def Configure(self, hWndParent=defaultNamedNotOptArg):
		"""method Configure"""
		return self._oleobj_.InvokeTypes(2, LCID, 1, (24, 0), ((3, 0),),hWndParent)

	_prop_map_get_ = {
		"Targets": (1, 2, (12, 0), (), "Targets", None),
	}
	_prop_map_put_ = {
	}

class ITarget(DispatchBaseClass):
	"""ITarget Interface"""
	CLSID = IID('{DEBD2C08-6AD6-4154-B459-CB8E0C07F1CE}')
	coclass_clsid = IID('{292B446E-D483-459F-9BBA-F268694D84EA}')

	_prop_map_get_ = {
		"DataProviders": (3, 2, (12, 0), (), "DataProviders", None),
		"Id": (1, 2, (3, 0), (), "Id", None),
		"Name": (2, 2, (8, 0), (), "Name", None),
	}
	_prop_map_put_ = {
	}

class ITargets(DispatchBaseClass):
	"""ITargets Interface"""
	CLSID = IID('{D90098E0-0070-4585-A5FD-D4043BCFB431}')
	coclass_clsid = IID('{B5532A26-93E5-47BB-8735-FB36D4A2FA05}')

	# The method Item is actually a property, but must be used as a method to correctly pass the arguments
	def Item(self, Index=defaultNamedNotOptArg):
		return self._ApplyTypes_(0, 2, (12, 0), ((3, 1),), 'Item', None,Index)

	_prop_map_get_ = {
		"Count": (1, 2, (3, 0), (), "Count", None),
	}
	_prop_map_put_ = {
	}
	# Default method for this class is 'Item'
	def __call__(self, Index=defaultNamedNotOptArg):
		return self._ApplyTypes_(0, 2, (12, 0), ((3, 1),), '__call__', None,Index)

	# str(ob) and int(ob) will use __call__
	def __unicode__(self, *args):
		try:
			return unicode(apply( self.__call__, args))
		except pythoncom.com_error:
			return repr(self)
	def __str__(self, *args):
		return str(apply(self.__unicode__, args))
	def __int__(self, *args):
		return int(apply( self.__call__, args))
	def _NewEnum(self):
		"Create an enumerator from this object"
		return win32com.client.util.WrapEnum(self._oleobj_.InvokeTypes(-4,LCID,2,(13, 10),()),None)
	def __getitem__(self, index):
		"Allow this class to be accessed as a collection"
		if not self.__dict__.has_key('_enum_'):
			import win32com.client.util
			self.__dict__['_enum_'] = self._NewEnum()
		return self._enum_.__getitem__(index)
	#This class has Count() property - allow len(ob) to provide this
	def __len__(self):
		return apply(self._ApplyTypes_, (1, 2, (3, 0), (), "Count", None) )
	#This class has a __len__ - this is needed so 'if object:' always returns TRUE.
	def __nonzero__(self):
		return 1

class _IDataProviderEvents:
	"""_IDataProviderEvents Interface"""
	CLSID = CLSID_Sink = IID('{BEFC1C36-47D4-45F0-BAD4-DB6AE32B5F9E}')
	coclass_clsid = IID('{E81B5D02-43EA-4EE4-957C-E569D048F0A7}')
	_public_methods_ = [] # For COM Server support
	_dispid_to_func_ = {
		        2 : "OnDisconnect",
		        1 : "OnDataAvailable",
		}

	def __init__(self, oobj = None):
		if oobj is None:
			self._olecp = None
		else:
			import win32com.server.util
			from win32com.server.policy import EventHandlerPolicy
			cpc=oobj._oleobj_.QueryInterface(pythoncom.IID_IConnectionPointContainer)
			cp=cpc.FindConnectionPoint(self.CLSID_Sink)
			cookie=cp.Advise(win32com.server.util.wrap(self, usePolicy=EventHandlerPolicy))
			self._olecp,self._olecp_cookie = cp,cookie
	def __del__(self):
		try:
			self.close()
		except pythoncom.com_error:
			pass
	def close(self):
		if self._olecp is not None:
			cp,cookie,self._olecp,self._olecp_cookie = self._olecp,self._olecp_cookie,None,None
			cp.Unadvise(cookie)
	def _query_interface_(self, iid):
		import win32com.server.util
		if iid==self.CLSID_Sink: return win32com.server.util.wrap(self)

	# Event Handlers
	# If you create handlers, they should have the following prototypes:
#	def OnDisconnect(self):
#		"""method OnDisconnect"""
#                print "KOKKKKOOKKKO2"
#	def OnDataAvailable(self, DataPacket=defaultNamedNotOptArg):
#		"""method OnDataAvailable"""
#                print "KOKOOOOOO"


class _IDebugMuxEvents:
	"""_IDebugMuxEvents Interface"""
	CLSID = CLSID_Sink = IID('{73292CCD-DBEB-497E-A03D-10AC71C10AFF}')
	coclass_clsid = IID('{D8677026-F045-4A10-A69C-971939E434A0}')
	_public_methods_ = [] # For COM Server support
	_dispid_to_func_ = {
		        1 : "OnTargetConnected",
		        2 : "OnTargetDisconnected",
		}

	def __init__(self, oobj = None):
		if oobj is None:
			self._olecp = None
		else:
			import win32com.server.util
			from win32com.server.policy import EventHandlerPolicy
			cpc=oobj._oleobj_.QueryInterface(pythoncom.IID_IConnectionPointContainer)
			cp=cpc.FindConnectionPoint(self.CLSID_Sink)
			cookie=cp.Advise(win32com.server.util.wrap(self, usePolicy=EventHandlerPolicy))
			self._olecp,self._olecp_cookie = cp,cookie
	def __del__(self):
		try:
			self.close()
		except pythoncom.com_error:
			pass
	def close(self):
		if self._olecp is not None:
			cp,cookie,self._olecp,self._olecp_cookie = self._olecp,self._olecp_cookie,None,None
			cp.Unadvise(cookie)
	def _query_interface_(self, iid):
		import win32com.server.util
		if iid==self.CLSID_Sink: return win32com.server.util.wrap(self)

	# Event Handlers
	# If you create handlers, they should have the following prototypes:
#	def OnTargetConnected(self, Target=defaultNamedNotOptArg):
#		"""method OnTargetConnected"""
#	def OnTargetDisconnected(self, Target=defaultNamedNotOptArg):
#		"""method OnTargetDisconnected"""


class _ITargetEvents:
	"""_ITargetEvents Interface"""
	CLSID = CLSID_Sink = IID('{B11E84F7-F674-4E99-9FAC-E49C8A495E28}')
	coclass_clsid = IID('{292B446E-D483-459F-9BBA-F268694D84EA}')
	_public_methods_ = [] # For COM Server support
	_dispid_to_func_ = {
		        2 : "OnDataProviderRemoved",
		        1 : "OnNewDataProvider",
		        3 : "OnDataProviderUnavailable",
		}

	def __init__(self, oobj = None):
		if oobj is None:
			self._olecp = None
		else:
			import win32com.server.util
			from win32com.server.policy import EventHandlerPolicy
			cpc=oobj._oleobj_.QueryInterface(pythoncom.IID_IConnectionPointContainer)
			cp=cpc.FindConnectionPoint(self.CLSID_Sink)
			cookie=cp.Advise(win32com.server.util.wrap(self, usePolicy=EventHandlerPolicy))
			self._olecp,self._olecp_cookie = cp,cookie
	def __del__(self):
		try:
			self.close()
		except pythoncom.com_error:
			pass
	def close(self):
		if self._olecp is not None:
			cp,cookie,self._olecp,self._olecp_cookie = self._olecp,self._olecp_cookie,None,None
			cp.Unadvise(cookie)
	def _query_interface_(self, iid):
		import win32com.server.util
		if iid==self.CLSID_Sink: return win32com.server.util.wrap(self)

	# Event Handlers
	# If you create handlers, they should have the following prototypes:
#	def OnDataProviderRemoved(self, DataProvider=defaultNamedNotOptArg):
#		"""method OnDataProviderRemoved"""
#	def OnNewDataProvider(self, DataProvider=defaultNamedNotOptArg):
#		"""method OnNewDataProvider"""
#	def OnDataProviderUnavailable(self, DataProvider=defaultNamedNotOptArg):
#		"""method OnDataProviderUnavailable"""


from win32com.client import CoClassBaseClass
# This CoClass is known by the name 'DebugMuxSrv.DataPacket.1'
class DataPacket(CoClassBaseClass): # A CoClass
	# DataPacket Class
	CLSID = IID('{DDB38397-77ED-4A7E-914D-CF66F15935DA}')
	coclass_sources = [
	]
	coclass_interfaces = [
		IDataPacket,
	]
	default_interface = IDataPacket

# This CoClass is known by the name 'DebugMuxSrv.DataProvider.1'
class DataProvider(CoClassBaseClass): # A CoClass
	# DataProvider Class
	CLSID = IID('{E81B5D02-43EA-4EE4-957C-E569D048F0A7}')
	coclass_sources = [
		_IDataProviderEvents,
	]
	default_source = _IDataProviderEvents
	coclass_interfaces = [
		IDataProvider,
	]
	default_interface = IDataProvider

# This CoClass is known by the name 'DebugMuxSrv.DataProviders.1'
class DataProviders(CoClassBaseClass): # A CoClass
	# DataProviders Class
	CLSID = IID('{DB71C9CB-EB66-4D9F-85FD-D7B6EB034D63}')
	coclass_sources = [
	]
	coclass_interfaces = [
		IDataProviders,
	]
	default_interface = IDataProviders

# This CoClass is known by the name 'DebugMuxSrv.DebugMux.1'
class DebugMux(CoClassBaseClass): # A CoClass
	# DebugMux Class
	CLSID = IID('{D8677026-F045-4A10-A69C-971939E434A0}')
	coclass_sources = [
		_IDebugMuxEvents,
	]
	default_source = _IDebugMuxEvents
	coclass_interfaces = [
		IDebugMux,
	]
	default_interface = IDebugMux

# This CoClass is known by the name 'DebugMuxSrv.Target.1'
class Target(CoClassBaseClass): # A CoClass
	# Target Class
	CLSID = IID('{292B446E-D483-459F-9BBA-F268694D84EA}')
	coclass_sources = [
		_ITargetEvents,
	]
	default_source = _ITargetEvents
	coclass_interfaces = [
		ITarget,
	]
	default_interface = ITarget

# This CoClass is known by the name 'DebugMuxSrv.Targets.1'
class Targets(CoClassBaseClass): # A CoClass
	# Targets Class
	CLSID = IID('{B5532A26-93E5-47BB-8735-FB36D4A2FA05}')
	coclass_sources = [
	]
	coclass_interfaces = [
		ITargets,
	]
	default_interface = ITargets

IDataPacket_vtables_dispatch_ = 1
IDataPacket_vtables_ = [
	('DataLength', 1, 2, ((16387,10,None, None),), (3, 0, None, None), ('pVal',)),
	('Data', 2, 2, ((24593,10,None, None),), (3, 0, None, None), ('pData',)),
	('Data', 2, 4, ((24593,1,None, None),), (3, 0, None, None), ('pData',)),
	('GetDataAsString', 3, 1, ((16392,0,None, None),), (3, 0, None, None), ('StringData',)),
	('SetStringAsData', 4, 1, ((8,0,None, None),), (3, 0, None, None), ('StringData',)),
]

IDataProvider_vtables_dispatch_ = 1
IDataProvider_vtables_ = [
	('Id', 1, 2, ((16386,10,None, None),), (3, 0, None, None), ('pVal',)),
	('Name', 2, 2, ((16392,10,None, None),), (3, 0, None, None), ('pVal',)),
	('Available', 3, 2, ((16395,10,None, None),), (3, 0, None, None), ('pVal',)),
	('Connect', 4, 1, ((16395,10,None, None),), (3, 0, None, None), ('pConnected',)),
	('Disconnect', 5, 1, ((16395,10,None, None),), (3, 0, None, None), ('pSuccess',)),
	('Send', 6, 1, ((9,0,None, IID('{3E2DF654-9B5A-4836-8196-6BAF284A7080}')),(16395,10,None, None),), (3, 0, None, None), ('DataPacket', 'pSuccess')),
	('DataPacketLimit', 7, 2, ((16386,10,None, None),), (3, 0, None, None), ('pVal',)),
]

IDataProviders_vtables_dispatch_ = 1
IDataProviders_vtables_ = [
	('_NewEnum', -4, 2, ((16397,10,None, None),), (3, 0, None, None), ('ppUnk',)),
	('Item', 0, 2, ((3,1,None, None),(16396,10,None, None),), (3, 0, None, None), ('Index', 'pVal')),
	('Count', 1, 2, ((16387,10,None, None),), (3, 0, None, None), ('pVal',)),
]

IDebugMux_vtables_dispatch_ = 1
IDebugMux_vtables_ = [
	('Targets', 1, 2, ((16396,10,None, None),), (3, 0, None, None), ('pVal',)),
	('Configure', 2, 1, ((3,0,None, None),), (3, 0, None, None), ('hWndParent',)),
]

ITarget_vtables_dispatch_ = 1
ITarget_vtables_ = [
	('Id', 1, 2, ((16387,10,None, None),), (3, 0, None, None), ('pVal',)),
	('Name', 2, 2, ((16392,10,None, None),), (3, 0, None, None), ('pVal',)),
	('DataProviders', 3, 2, ((16396,10,None, None),), (3, 0, None, None), ('pVal',)),
]

ITargets_vtables_dispatch_ = 1
ITargets_vtables_ = [
	('_NewEnum', -4, 2, ((16397,10,None, None),), (3, 0, None, None), ('ppUnk',)),
	('Item', 0, 2, ((3,1,None, None),(16396,10,None, None),), (3, 0, None, None), ('Index', 'pVal')),
	('Count', 1, 2, ((16387,10,None, None),), (3, 0, None, None), ('pVal',)),
]

_IInternalDataPacket_vtables_dispatch_ = 0
_IInternalDataPacket_vtables_ = [
	('PutData', 1610678272, 1, ((16401,0,None, None),(2,0,None, None),), (3, 0, None, None), ('pData', 'sDataLen')),
	('GetData', 1610678273, 1, ((16401,0,None, None),(16386,0,None, None),), (3, 0, None, None), ('ppData', 'lpsDataLen')),
]

_IInternalDataProvider_vtables_dispatch_ = 0
_IInternalDataProvider_vtables_ = [
	('Id', 1, 4, ((2,1,None, None),), (3, 0, None, None), ()),
	('ConRef', 2, 2, ((16386,10,None, None),), (3, 0, None, None), ('pVal',)),
	('ConRef', 2, 4, ((2,1,None, None),), (3, 0, None, None), ('pVal',)),
	('Available', 3, 4, ((11,1,None, None),), (3, 0, None, None), ()),
	('Name', 4, 4, ((8,1,None, None),), (3, 0, None, None), ()),
	('DataProviderInstance', 5, 2, ((16393,10,None, IID('{863A0E7B-963D-44FD-849B-1E540B0017CA}')),), (3, 0, None, None), ('pVal',)),
	('ChildId', 6, 4, ((2,1,None, None),), (3, 0, None, None), ('pVal',)),
	('ChildId', 6, 2, ((16386,10,None, None),), (3, 0, None, None), ('pVal',)),
	('DataPacketLimit', 7, 2, ((16386,10,None, None),), (3, 0, None, None), ('pVal',)),
	('PacketCount', 8, 2, ((16386,10,None, None),), (3, 0, None, None), ('pVal',)),
	('InternalConnect', 1610678282, 1, ((2,0,None, None),(16395,0,None, None),), (3, 0, None, None), ('sChildId', 'pConnected')),
	('SetTarget', 1610678283, 1, ((9,0,None, IID('{DEBD2C08-6AD6-4154-B459-CB8E0C07F1CE}')),), (3, 0, None, None), ('pTarget',)),
	('SetParentDataProvider', 1610678284, 1, ((9,0,None, IID('{863A0E7B-963D-44FD-849B-1E540B0017CA}')),), (3, 0, None, None), ('pParentDataProvider',)),
	('OnConnected', 1610678285, 1, ((2,0,None, None),(2,0,None, None),), (3, 0, None, None), ('sConRef', 'sBlockLimit')),
	('OnDisconnected', 1610678286, 1, ((2,0,None, None),), (3, 0, None, None), ('sConRef',)),
	('OnDataBlock', 1610678287, 1, ((2,0,None, None),(9,0,None, IID('{3E2DF654-9B5A-4836-8196-6BAF284A7080}')),), (3, 0, None, None), ('sConRef', 'pDataPacket')),
	('OnNewCredits', 1610678288, 1, ((2,0,None, None),(17,0,None, None),), (3, 0, None, None), ('sConRef', 'bCredits')),
]

_IInternalDataProviders_vtables_dispatch_ = 0
_IInternalDataProviders_vtables_ = [
	('Init', 1610678272, 1, ((36,0,None, None),), (3, 0, None, None), ('pArray',)),
]

_IInternalDebugMux_vtables_dispatch_ = 0
_IInternalDebugMux_vtables_ = [
	('ConnectDataProvider', 1610678272, 1, ((3,0,None, None),(2,0,None, None),), (3, 0, None, None), ('lTargetId', 'sDataProviderId')),
	('DisconnectDataProvider', 1610678273, 1, ((3,0,None, None),(2,0,None, None),(2,0,None, None),), (3, 0, None, None), ('lTargetId', 'sDataProviderId', 'sConRef')),
	('SendDataBlock', 1610678274, 1, ((3,0,None, None),(2,0,None, None),(2,0,None, None),(9,0,None, IID('{3E2DF654-9B5A-4836-8196-6BAF284A7080}')),), (3, 0, None, None), ('lTargetId', 'sDataProviderId', 'sConRef', 'pDataPacket')),
]

_IInternalTarget_vtables_dispatch_ = 0
_IInternalTarget_vtables_ = [
	('Id', 1, 4, ((3,1,None, None),), (3, 0, None, None), ()),
	('Name', 2, 4, ((8,1,None, None),), (3, 0, None, None), ()),
	('AddDataProvider', 1610678274, 1, ((9,0,None, IID('{863A0E7B-963D-44FD-849B-1E540B0017CA}')),), (3, 0, None, None), ('pDataProvider',)),
	('RemoveDataProvider', 1610678275, 1, ((2,0,None, None),), (3, 0, None, None), ('sDataProviderId',)),
	('RemoveAllDataProviders', 1610678276, 1, (), (3, 0, None, None), ()),
	('SetDebugMux', 1610678277, 1, ((9,1,None, IID('{01146C8E-79FD-4AC5-BF8A-30F5165E9640}')),), (3, 0, None, None), ('pDebugMux',)),
	('ConnectDataProvider', 1610678278, 1, ((2,0,None, None),), (3, 0, None, None), ('sDataProviderId',)),
	('DisconnectDataProvider', 1610678279, 1, ((2,0,None, None),(2,0,None, None),), (3, 0, None, None), ('sDataProviderId', 'sConRef')),
	('SendDataBlock', 1610678280, 1, ((2,0,None, None),(2,0,None, None),(9,0,None, IID('{3E2DF654-9B5A-4836-8196-6BAF284A7080}')),), (3, 0, None, None), ('sDataProviderId', 'sConRef', 'pDataPacket')),
	('OnDataProviderConnected', 1610678281, 1, ((2,0,None, None),(2,0,None, None),(2,0,None, None),), (3, 0, None, None), ('sDataProviderId', 'sConRef', 'sBlockLimit')),
	('OnDataProviderDisconnected', 1610678282, 1, ((2,0,None, None),(2,0,None, None),), (3, 0, None, None), ('sDataProviderId', 'sConRef')),
	('OnDataBlock', 1610678283, 1, ((2,0,None, None),(16401,0,None, None),), (3, 0, None, None), ('sConRef', 'lpDataBlock')),
	('OnNewCredits', 1610678284, 1, ((2,0,None, None),(17,0,None, None),), (3, 0, None, None), ('sConRef', 'bCredits')),
	('FireDataProviderUnAvailable', 1610678285, 1, ((9,0,None, IID('{863A0E7B-963D-44FD-849B-1E540B0017CA}')),), (3, 0, None, None), ('pDataProvider',)),
]

_IInternalTargets_vtables_dispatch_ = 0
_IInternalTargets_vtables_ = [
	('Init', 1610678272, 1, ((36,0,None, None),), (3, 0, None, None), ('pArray',)),
]

RecordMap = {
	'tagSAFEARRAYBOUND': '{00000000-0000-0000-0000-000000000000}',
}

CLSIDToClassMap = {
	'{01146C8E-79FD-4AC5-BF8A-30F5165E9640}' : IDebugMux,
	'{D90098E0-0070-4585-A5FD-D4043BCFB431}' : ITargets,
	'{DDB38397-77ED-4A7E-914D-CF66F15935DA}' : DataPacket,
	'{B5532A26-93E5-47BB-8735-FB36D4A2FA05}' : Targets,
	'{863A0E7B-963D-44FD-849B-1E540B0017CA}' : IDataProvider,
	'{73292CCD-DBEB-497E-A03D-10AC71C10AFF}' : _IDebugMuxEvents,
	'{D8677026-F045-4A10-A69C-971939E434A0}' : DebugMux,
	'{BEFC1C36-47D4-45F0-BAD4-DB6AE32B5F9E}' : _IDataProviderEvents,
	'{C4DEAE67-22FF-4F2E-BE49-D22D0B5C5B44}' : IDataProviders,
	'{E81B5D02-43EA-4EE4-957C-E569D048F0A7}' : DataProvider,
	'{B11E84F7-F674-4E99-9FAC-E49C8A495E28}' : _ITargetEvents,
	'{292B446E-D483-459F-9BBA-F268694D84EA}' : Target,
	'{3E2DF654-9B5A-4836-8196-6BAF284A7080}' : IDataPacket,
	'{DB71C9CB-EB66-4D9F-85FD-D7B6EB034D63}' : DataProviders,
	'{DEBD2C08-6AD6-4154-B459-CB8E0C07F1CE}' : ITarget,
}
CLSIDToPackageMap = {}
win32com.client.CLSIDToClass.RegisterCLSIDsFromDict( CLSIDToClassMap )
VTablesToPackageMap = {}
VTablesToClassMap = {
	'{01146C8E-79FD-4AC5-BF8A-30F5165E9640}' : 'IDebugMux',
	'{D90098E0-0070-4585-A5FD-D4043BCFB431}' : 'ITargets',
	'{60021A43-C220-4F5D-9B3B-609A84B8F9F5}' : '_IInternalTarget',
	'{863A0E7B-963D-44FD-849B-1E540B0017CA}' : 'IDataProvider',
	'{181A18AA-2875-42C7-93E9-D67596D0D595}' : '_IInternalDataProvider',
	'{5A4DF1D7-A3E3-475F-A610-5306ADA3E355}' : '_IInternalDebugMux',
	'{C4DEAE67-22FF-4F2E-BE49-D22D0B5C5B44}' : 'IDataProviders',
	'{2AE27694-6DDC-473A-A662-64DF1A6E3A70}' : '_IInternalDataPacket',
	'{8251B0C5-B7CC-49BA-B802-99020D6EAD01}' : '_IInternalTargets',
	'{3E2DF654-9B5A-4836-8196-6BAF284A7080}' : 'IDataPacket',
	'{C1F5D088-B4E2-4A09-AB86-8F62E6D415F6}' : '_IInternalDataProviders',
	'{DEBD2C08-6AD6-4154-B459-CB8E0C07F1CE}' : 'ITarget',
}


NamesToIIDMap = {
	'_IInternalDebugMux' : '{5A4DF1D7-A3E3-475F-A610-5306ADA3E355}',
	'ITargets' : '{D90098E0-0070-4585-A5FD-D4043BCFB431}',
	'_IDebugMuxEvents' : '{73292CCD-DBEB-497E-A03D-10AC71C10AFF}',
	'_IInternalDataProviders' : '{C1F5D088-B4E2-4A09-AB86-8F62E6D415F6}',
	'IDebugMux' : '{01146C8E-79FD-4AC5-BF8A-30F5165E9640}',
	'IDataProvider' : '{863A0E7B-963D-44FD-849B-1E540B0017CA}',
	'_IInternalDataProvider' : '{181A18AA-2875-42C7-93E9-D67596D0D595}',
	'IDataPacket' : '{3E2DF654-9B5A-4836-8196-6BAF284A7080}',
	'ITarget' : '{DEBD2C08-6AD6-4154-B459-CB8E0C07F1CE}',
	'_ITargetEvents' : '{B11E84F7-F674-4E99-9FAC-E49C8A495E28}',
	'_IInternalTarget' : '{60021A43-C220-4F5D-9B3B-609A84B8F9F5}',
	'_IInternalTargets' : '{8251B0C5-B7CC-49BA-B802-99020D6EAD01}',
	'IDataProviders' : '{C4DEAE67-22FF-4F2E-BE49-D22D0B5C5B44}',
	'_IDataProviderEvents' : '{BEFC1C36-47D4-45F0-BAD4-DB6AE32B5F9E}',
	'_IInternalDataPacket' : '{2AE27694-6DDC-473A-A662-64DF1A6E3A70}',
}





More information about the Python-win32 mailing list