[python-win32] info on _GetInterfaceCount

Mark Hammond mhammond at skippinet.com.au
Tue Oct 2 07:50:59 CEST 2012


These are probably just the objects defined in the makepy generated 
files.  You are looking for object which describe themself as a 
"PyIDispatch" (or possibly PyIUnknown)

HTH,

Mark

On 2/10/2012 8:21 AM, Matteo Boscolo wrote:
> I'm going on with my stydy, inspecting the gc..
>
> the only object that seems very satrange is  listed below.
> ITDPropClass its the com object of the com application
> there is somone that can tell me if i'm on the right way?
> dose _vtables_ have a particular mening?
>
> regards,
> Matteo
>
> 42760064 <type 'dict'>
> {'ITDPropClass_vtables_': [((u'Name', u'pVal'), 10, (10, (), [(16392,
> 10, None, None)], 1, 2, 4, 0, 60, (3, 0, None, None), 0)),
> ((u'SetValue', u'typeValue', u'maxElValue'), 11, (11, (), [(12, 1, None,
> None), (3, 1, None, None)], 1, 1, 4, 0, 64, (3, 0, None, None), 0)),
> ((u'GetValue', u'typeValue', u'maxElValue'), 12, (12, (), [(16396, 2,
> None, None), (16387, 2, None, None)], 1, 1, 4, 0, 68, (3, 0, None,
> None), 0)), ((u'Description', u'pVal'), 13, (13, (), [(16392, 10, None,
> None)], 1, 2, 4, 0, 72, (3, 0, None, None), 0)), ((u'Description',
> u'pVal'), 13, (13, (), [(8, 1, None, None)], 1, 4, 4, 0, 76, (3, 0,
> None, None), 0)), ((u'UsedBy', u'pVal'), 14, (14, (), [(24585, 10, None,
> "IID('{D344208D-C991-11D3-BDD6-00500400405B}')")], 1, 2, 4, 0, 80, (3,
> 0, None, None), 0)), ((u'ClassReadable', u'pVal'), 15, (15, (), [(16395,
> 10, None, None)], 1, 2, 4, 0, 84, (3, 0, None, None), 0)),
> ((u'ClassReadable', u'pVal'), 15, (15, (), [(11, 1, None, None)], 1, 4,
> 4, 0, 88, (3, 0, None, None), 0)), ((u'ClassWritable', u'pVal'), 16,
> (16, (), [(16395, 10, None, None)], 1, 2, 4, 0, 92, (3, 0, None, None),
> 0)), ((u'ClassWritable', u'pVal'), 16, (16, (), [(11, 1, None, None)],
> 1, 4, 4, 0, 96, (3, 0, None, None), 0)), ((u'ClassDeletable', u'pVal'),
> 17, (17, (), [(16395, 10, None, None)], 1, 2, 4, 0, 100, (3, 0, None,
> None), 0)), ((u'ClassDeletable', u'pVal'), 17, (17, (), [(11, 1, None,
> None)], 1, 4, 4, 0, 104, (3, 0, None, None), 0)),
> ((u'PropertyInheritance', u'pVal'), 18, (18, (), [(16395, 10, None,
> None)], 1, 2, 4, 0, 108, (3, 0, None, None), 0)),
> ((u'PropertyInheritance', u'pVal'), 18, (18, (), [(11, 1, None, None)],
> 1, 4, 4, 0, 112, (3, 0, None, None), 0)), ((u'PropertyReadable',
> u'pVal'), 19, (19, (), [(16395, 10, None, None)], 1, 2, 4, 0, 116, (3,
> 0, None, None), 0)), ((u'PropertyReadable', u'pVal'), 19, (19, (), [(11,
> 1, None, None)], 1, 4, 4, 0, 120, (3, 0, None, None), 0)),
> ((u'PropertyWritable', u'pVal'), 20, (20, (), [(16395, 10, None, None)],
> 1, 2, 4, 0, 124, (3, 0, None, None), 0)), ((u'PropertyWritable',
> u'pVal'), 20, (20, (), [(11, 1, None, None)], 1, 4, 4, 0, 128, (3, 0,
> None, None), 0)), ((u'PropertyDeletable', u'pVal'), 21, (21, (),
> [(16395, 10, None, None)], 1, 2, 4, 0, 132, (3, 0, None, None), 0)),
> ((u'PropertyDeletable', u'pVal'), 21, (21, (), [(11, 1, None, None)], 1,
> 4, 4, 0, 136, (3, 0, None, None), 0)), ((u'ClassSubType', u'pVal'), 22,
> (22, (), [(16387, 10, None, None)], 1, 2, 4, 0, 140, (3, 0, None, None),
> 0)), ((u'ClassSubType', u'pVal'), 22, (22, (), [(3, 1, None, None)], 1,
> 4, 4, 0, 144, (3, 0, None, None), 0)), ((u'ClassPrompt', u'pVal'), 23,
> (23, (), [(16392, 10, None, None)], 1, 2, 4, 0, 148, (3, 0, None, None),
> 0)), ((u'ClassPrompt', u'pVal'), 23, (23, (), [(8, 1, None, None)], 1,
> 4, 4, 0, 152, (3, 0, None, None), 0)), ((u'SetStyle', u'pCase',
> u'pFormat', u'pBlank'), 24, (24, (), [(3, 1, None, None), (3, 1, None,
> None), (11, 1, None, None)], 1, 1, 4, 0, 156, (3, 0, None, None), 0)),
> ((u'GetStyle', u'pCase', u'pFormat', u'pBlank'), 25, (25, (), [(16387,
> 2, None, None), (16387, 2, None, None), (16395, 2, None, None)], 1, 1,
> 4, 0, 160, (3, 0, None, None), 0)), ((u'SetRange', u'minValue',
> u'maxValue'), 26, (26, (), [(5, 1, None, None), (5, 1, None, None)], 1,
> 1, 4, 0, 164, (3, 0, None, None), 0)), ((u'GetRange', u'minValue',
> u'maxValue'), 27, (27, (), [(16389, 2, None, None), (16389, 2, None,
> None)], 1, 1, 4, 0, 168, (3, 0, None, None), 0))], 'python_version':
> 34014192, 'defaultUnnamedArg': <PyOleEmpty object at 0x01E49980>,
> 'defaultNamedNotOptArg': <PyOleEmpty object at 0x01E49980>, 'CLSID':
> IID('{F4503A16-F637-11D2-BD55-00500400405B}'), 'LibraryFlags': 8,
> 'MinorVersion': 0, 'DispatchBaseClass': <class
> win32com.client.DispatchBaseClass at 0x027AD228>, 'ITDPropClass': <class
> win32com.gen_py.F4503A16-F637-11D2-BD55-00500400405Bx0x1x0.ITDPropClass.ITDPropClass
> at 0x028C46F8>, '__package__':
> 'win32com.gen_py.F4503A16-F637-11D2-BD55-00500400405Bx0x1x0', 'IID':
> <built-in function IID>, 'LCID': 0, 'makepy_version': '0.5.01',
> '__doc__': 'think3 thinkdesign Type Library', '__builtins__':
> {'bytearray': <type 'bytearray'>, 'IndexError': <type
> 'exceptions.IndexError'>, 'all': <built-in function all>, 'help': Type
> help() for interactive help, or help(object) for help about object.,
> 'vars': <built-in function vars>, 'SyntaxError': <type
> 'exceptions.SyntaxError'>, 'unicode': <type 'unicode'>,
> 'UnicodeDecodeError': <type 'exceptions.UnicodeDecodeError'>,
> 'memoryview': <type 'memoryview'>, 'isinstance': <built-in function
> isinstance>, 'copyright': Copyright (c) 2001-2012 Python Software
> Foundation.
> All Rights Reserved.
>
> Copyright (c) 2000 BeOpen.com.
> All Rights Reserved.
>
> Copyright (c) 1995-2001 Corporation for National Research Initiatives.
> All Rights Reserved.
>
> Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.
> All Rights Reserved., 'NameError': <type 'exceptions.NameError'>,
> 'BytesWarning': <type 'exceptions.BytesWarning'>, 'dict': <type 'dict'>,
> 'input': <function input at 0x02077570>, 'oct': <built-in function oct>,
> 'bin': <built-in function bin>, 'SystemExit': <type
> 'exceptions.SystemExit'>, 'StandardError': <type
> 'exceptions.StandardError'>, 'format': <built-in function format>,
> 'repr': <built-in function repr>, 'sorted': <built-in function sorted>,
> 'False': False, 'RuntimeWarning': <type 'exceptions.RuntimeWarning'>,
> 'list': <type 'list'>, 'iter': <built-in function iter>, 'reload':
> <built-in function reload>, 'Warning': <type 'exceptions.Warning'>,
> '__package__': None, 'round': <built-in function round>, 'dir':
> <built-in function dir>, 'cmp': <built-in function cmp>, 'set': <type
> 'set'>, 'bytes': <type 'str'>, 'reduce': <built-in function reduce>,
> 'intern': <built-in function intern>, 'issubclass': <built-in function
> issubclass>, 'Ellipsis': Ellipsis, 'EOFError': <type
> 'exceptions.EOFError'>, 'locals': <built-in function locals>,
> 'BufferError': <type 'exceptions.BufferError'>, 'slice': <type 'slice'>,
> 'FloatingPointError': <type 'exceptions.FloatingPointError'>, 'sum':
> <built-in function sum>, 'getattr': <built-in function getattr>, 'abs':
> <built-in function abs>, 'exit': Use exit() or Ctrl-Z plus Return to
> exit, 'print': <built-in function print>, 'True': True, 'FutureWarning':
> <type 'exceptions.FutureWarning'>, 'ImportWarning': <type
> 'exceptions.ImportWarning'>, 'None': None, 'hash': <built-in function
> hash>, 'ReferenceError': <type 'exceptions.ReferenceError'>, 'len':
> <built-in function len>, 'credits':     Thanks to CWI, CNRI, BeOpen.com,
> Zope Corporation and a cast of thousands
>      for supporting Python development.  See www.python.org for more
> information., 'frozenset': <type 'frozenset'>, '__name__':
> '__builtin__', 'ord': <built-in function ord>, 'super': <type 'super'>,
> 'TypeError': <type 'exceptions.TypeError'>, 'license': Type license() to
> see the full license text, 'KeyboardInterrupt': <type
> 'exceptions.KeyboardInterrupt'>, 'UserWarning': <type
> 'exceptions.UserWarning'>, 'filter': <built-in function filter>,
> 'range': <built-in function range>, 'staticmethod': <type
> 'staticmethod'>, 'SystemError': <type 'exceptions.SystemError'>,
> 'BaseException': <type 'exceptions.BaseException'>, 'pow': <built-in
> function pow>, 'RuntimeError': <type 'exceptions.RuntimeError'>,
> 'float': <type 'float'>, 'MemoryError': <type 'exceptions.MemoryError'>,
> 'StopIteration': <type 'exceptions.StopIteration'>, 'globals': <built-in
> function globals>, 'divmod': <built-in function divmod>, 'enumerate':
> <type 'enumerate'>, 'apply': <built-in function apply>, 'LookupError':
> <type 'exceptions.LookupError'>, 'open': <built-in function open>,
> 'quit': Use quit() or Ctrl-Z plus Return to exit, 'basestring': <type
> 'basestring'>, 'UnicodeError': <type 'exceptions.UnicodeError'>, 'zip':
> <built-in function zip>, 'hex': <built-in function hex>, 'long': <type
> 'long'>, 'next': <built-in function next>, 'ImportError': <type
> 'exceptions.ImportError'>, 'chr': <built-in function chr>, 'xrange':
> <type 'xrange'>, 'type': <type 'type'>, '__doc__': "Built-in functions,
> exceptions, and other objects.\n\nNoteworthy: None is the `nil' object;
> Ellipsis represents `...' in slices.", 'Exception': <type
> 'exceptions.Exception'>, 'tuple': <type 'tuple'>,
> 'UnicodeTranslateError': <type 'exceptions.UnicodeTranslateError'>,
> 'reversed': <type 'reversed'>, 'UnicodeEncodeError': <type
> 'exceptions.UnicodeEncodeError'>, 'IOError': <type
> 'exceptions.IOError'>, 'hasattr': <built-in function hasattr>,
> 'delattr': <built-in function delattr>, 'setattr': <built-in function
> setattr>, 'raw_input': <function raw_input at 0x02077530>,
> 'SyntaxWarning': <type 'exceptions.SyntaxWarning'>, 'compile': <built-in
> function compile>, 'ArithmeticError': <type
> 'exceptions.ArithmeticError'>, 'str': <type 'str'>, 'property': <type
> 'property'>, 'GeneratorExit': <type 'exceptions.GeneratorExit'>, 'int':
> <type 'int'>, '__import__': <built-in function __import__>, 'KeyError':
> <type 'exceptions.KeyError'>, 'coerce': <built-in function coerce>,
> 'PendingDeprecationWarning': <type
> 'exceptions.PendingDeprecationWarning'>, 'file': <type 'file'>,
> 'EnvironmentError': <type 'exceptions.EnvironmentError'>, 'unichr':
> <built-in function unichr>, 'id': <built-in function id>, 'OSError':
> <type 'exceptions.OSError'>, 'DeprecationWarning': <type
> 'exceptions.DeprecationWarning'>, 'min': <built-in function min>,
> 'UnicodeWarning': <type 'exceptions.UnicodeWarning'>, 'execfile':
> <built-in function execfile>, 'any': <built-in function any>, 'complex':
> <type 'complex'>, 'bool': <type 'bool'>, 'ValueError': <type
> 'exceptions.ValueError'>, 'NotImplemented': NotImplemented, 'map':
> <built-in function map>, 'buffer': <type 'buffer'>, 'max': <built-in
> function max>, 'object': <type 'object'>, 'TabError': <type
> 'exceptions.TabError'>, 'callable': <built-in function callable>,
> 'ZeroDivisionError': <type 'exceptions.ZeroDivisionError'>, 'eval':
> <built-in function eval>, '__debug__': True, 'IndentationError': <type
> 'exceptions.IndentationError'>, 'AssertionError': <type
> 'exceptions.AssertionError'>, 'classmethod': <type 'classmethod'>,
> 'UnboundLocalError': <type 'exceptions.UnboundLocalError'>,
> 'NotImplementedError': <type 'exceptions.NotImplementedError'>,
> 'AttributeError': <type 'exceptions.AttributeError'>, 'OverflowError':
> <type 'exceptions.OverflowError'>, 'WindowsError': <type
> 'exceptions.WindowsError'>}, '__file__':
> 'C:\\Python27\\lib\\site-packages\\win32com\\gen_py\\F4503A16-F637-11D2-BD55-00500400405Bx0x1x0\\ITDPropClass.pyc',
> 'ITDPropClass_vtables_dispatch_': 1, '__name__':
> 'win32com.gen_py.F4503A16-F637-11D2-BD55-00500400405Bx0x1x0.ITDPropClass',
> 'pywintypes': <module 'pywintypes' from
> 'C:\Windows\system32\pywintypes27.dll'>, 'defaultNamedOptArg':
> <PyOleEmpty object at 0x01E49980>, 'MajorVersion': 1, 'Dispatch':
> <function Dispatch at 0x027BEDB0>, 'win32com': <module 'win32com' from
> 'C:\Python27\lib\site-packages\win32com\__init__.pyc'>, 'pythoncom':
> <module 'pythoncom' from 'C:\Windows\system32\pythoncom27.dll'>}
>
>
> Il 01/10/2012 03:41, Mark Hammond ha scritto:
>> On 28/09/2012 10:42 PM, Matteo Boscolo wrote:
>>> this is the log of part of my application
>>>
>>> DEBUG:root:__DEL__
>>> DEBUG:root:pythoncom._GetInterfaceCount(): 4
>>> DEBUG:root:pythoncom._GetGatewayCount():   0|
>>> DEBUG:Root:pythoncom.CoUninitialize()|
>>> DEBUG:root:pythoncom._GetInterfaceCount(): 4
>>> DEBUG:root:pythoncom._GetGatewayCount():   0
>>>
>>> as you can see the GetInterfaceCount is still at 4 ..
>>> there is a way to know witch object are the 4 that came from the
>>> GetInterfaceCount ?
>>
>> Not directly - only a simple counter is tracked, not a list of what
>> the objects are.  If you are lucky, you might be able to use the 'gc'
>> module to locate all live objects and see what you can find alive that
>> "looks" like a COM object (but even that probably will not tell you
>> where the reference actually lives)
>>
>> Mark
>>
>>>
>>> regards,
>>> matteo
>>>
>>>
>>>
>>> _______________________________________________
>>> python-win32 mailing list
>>> python-win32 at python.org
>>> http://mail.python.org/mailman/listinfo/python-win32
>>>
>>
>>
>



More information about the python-win32 mailing list