> See, IFoo is an interface, and it's UUID is an interface UUID, which is
> known as an IID. But _com_ptr_t::CreateInstance expects a CLSID,
> which is a
> COM Class UUID. A COM class is what you see under the title of coclass in
> the IDL. And if you have not done something weird, then the CLSID for the
> Foo class must be obtainable via __uuidof(Foo) or CLSID_Foo.
Yes, I found out eventually that it was Document I should have had here, not
IFoo (as in "IFoo.Document").
> Yes. CoCreateInstance( ) looks for a class with UUID __uuidof(IFoo) which
> can't be found naturally, since __uuidof(IFoo) is an IID, not a CLSID.
The clsid part was no problem; CLSIDFromProg() gave me that. CCI /also/
needs an IID of the interface to retrieve, so that is where _uuidof(xxx)
came in - I just got confused about what should have got in it, since it
really isn't clear from the .tlh file (unless you know what you're looking
at).
> Something else: in your COM server, you may have either created a dual
> interface, or a pure IDispatch interface. A dual interface is an
> interface
> A pure IDispatch interface is defined like this in the IDL:
>
> [ ... ] dispinterface IFoo {};
It was a pure IDispatch interface.
--
Jason Teagle
[EMAIL PROTECTED]