marshalled ITypeComp
Guillermo Winkler
gwinkler at inconcertcc.com
Tue Feb 26 00:03:42 CST 2008
Hi,
I'm having some problems regarding ITypeInfo/ITypeComp implementation.
IDispatch* pdisp;
ITypeInfo* ptinfo;
HRESULT hr = pdisp->GetTypeInfo(0, LOCALE_SYSTEM_DEFAULT, &typeinfo);
hr = ptinfo->GetTypeComp(&ptcomp);
pdisp is created from
hr = CoCreateInstance(clsid,
NULL,
CLSCTX_SERVER,
IID_IDispatch,
(void**)&pdisp);
That is, the server is an outprocess exe.
In this case marshalling of ITypeComp fails in first instance because
ITypeComp_fnQueryInterface (oleaut32\typelib.c)
resolves on -> ITypeInfo_QueryInterface (oleaut32\typelib.c)
That is not considering IID_ITypeComp as a valid alternative(but it is)
if(IsEqualIID(riid, &IID_IUnknown) ||
IsEqualIID(riid,&IID_ITypeInfo)||
IsEqualIID(riid,&IID_ITypeInfo2))
*ppvObject = This;
When I fixed this, I have a different problem now:
fixme:ole:DllGetClassObject
CLSID: {00020425-0000-0000-C000-000000000046}
IID: {D5F569D0-593B-101A-B569-08002B2DBF7A}
That is PSTypeComp to be marshalled asking for factory buffer
IID_IPSFactoryBuffer.
I would like to follow up with someone (if available) just to be sure
I'm not wasting time on the wrong track.
Thanks,
Guillermo
More information about the wine-devel
mailing list