Hi,

I'm trying to get the base interface typeinfo with 
pythoncom.GetRefTypeOfImplType but it's always returning the typeinfo of  the 
IDispatch interface.

Does the code below seem wrong ?

Thank you for your help.
-mab

def log_base_interface( tlb ):
    n = tlb.GetTypeInfoCount()
    for i in range(n):
        iface_ti = tlb.GetTypeInfo( i )
        iface_attr = iface_ti.GetTypeAttr()

        if iface_attr[5] == pythoncom.TKIND_DISPATCH:
                print '>>>>> Base interfaces for %s' % 
(iface_ti.GetDocumentation(-1)[0])
                for i in range(iface_attr[8]):
                    flags = iface_ti.GetImplTypeFlags(i)
                    refType = 
iface_ti.GetRefTypeInfo(iface_ti.GetRefTypeOfImplType(i))
                    refAttr = refType.GetTypeAttr()
                    print refType.GetDocumentation(-1)[0]

output:
>>>>> Base interfaces for SIObject
IDispatch
>>>>> Base interfaces for Application
IDispatch
>>>>> Base interfaces for SIObjectCollection
IDispatch
>>>>> Base interfaces for LightRig
IDispatch
etc...

My interfaces are all defined like this:

[
      uuid(231B4BC1-4F8E-11d4-ACDC-0090275802BF),
      helpstring("LightRig interface"),
      object,           // specifies a COM interface (default is RPC interface)
      local,            // interface to define is not remote
      dual,             // identifies an IDispatch interface that exposes 
directly through the VTBL
      pointer_default(unique) // this option is only instructing midl that we 
may have functions with embedded pointers-pointers. Otherwise it is ignored by 
idl.
]
interface LightRig : Null
{
      // properties
      [propget, id(1), helpstring("property Light")]
      HRESULT Light([out, retval] Light** );
};

_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to