[python-win32] info on _GetInterfaceCount

Matteo Boscolo matteo.boscolo at boscolini.eu
Tue Oct 2 00:21:33 CEST 2012


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