win32com.client - need some help

Alex Martelli aleaxit at yahoo.com
Fri Jan 26 08:08:04 EST 2001


<zippy1984 at my-deja.com> wrote in message news:94rjot$cbk$1 at nnrp1.deja.com...
>
> > >
> > >    HRESULT getDictionary([out] IDispatch** pDictionary);
> > >    [id(0x12345678)]
> >
> > Unusual ([out] is generally [out,retval]) but OK.
>
> Well, I do get a return value, but not what I expected.....
> So, I don't know if this is important.

It may be.  But I'm astonished you get a return-value AT
ALL *unless* makepy has been run one way or another.

> >>> print dic.__class__.__doc__
>     The dynamic class used as a last resort.
    [snip]
> ...I guess this is not what I wanted to see...?

Right.

> What is causing these problems?  Is it a "poor" definition in the
> COM server that does not give win32com enough information?  Is there

Sure, IDispatch** in the IDL is too generic -- no indication
at all of _what_ dispinterface is being implemented.  Still,
that should not be a killer, just a big inconvenience.

What's happening here seems to be very different: you seem
to be getting an instance of win32com.client.CDispatch and
NOT one of win32com.client.Dispatch.  So, apparently, there
is NO type-information *at all* connected with the object;
it does not implement GetTypeInfo to let users know what
type-info/type-library it comes from.  Still, it _should_
be still possible to invoke methods on it, just not to find
out what the invokable methods *ARE*.


Alex






More information about the Python-list mailing list