::CoInitialize(NULL);
//create a audio effect filter
IBaseFilter * pEffect = NULL;
hr =
::CoCreateInstance(filterGUID,NULL,CLSCTX_INPROC_SERVER,IID_IBaseFilter,
(void **)&pEffect);
//Marshal the Interface
IStream * pStream = NULL;
hr = ::CoMarshalInterThreadInterfaceInStream(IID_IBaseFilter,
pEffect,&(pStream));
On windows xp, CoMarshalInterThreadInterfaceInStream succeed. and
pStream turns to be a valid pointer;
On windows 7, CoMarshalInterThreadInterfaceInStream failed with value:
0x80040155, (Interface not registered)
On the two platform, develop environment: visual studio 2005(sp1)+dx9sdk
Why on windows 7, the marshal operation failed? No registered stub/proxy
for IBaseFilter interface? But IBaseFilter is not a self-define
interface, it's a directshow defined interface.
Who have any ideas about it? Any advices are appreciate!
regards!
guanbin 2010.4.13