"bourne" <bourne_hlm@163.com> wrote in message
news:1160397028.139139.97140@i3g2000cwc.googlegroups.com
//my marshal code:
HRESULT hr = S_OK;
IStream *pStream = NULL;
CComPtr<IBasePlayer> pbp;
pbp.CoCreateInstance(CLSID_CoStreamPlayer);
hr = CoMarshalInterThreadInterfaceInStream(IID_IBasePlayer, pbp,
&pStream); // ok
CQIComPtr<IBasePlayer2> pbp2 = pbp; // ok
hr = CoMarshalInterThreadInterfaceInStream(IID_IBasePlayer2, pbp2,
&pStream); // return E_NOINTERFACE
why call CoMarshalInterThreadInterfaceInStream with IBasePlayer2
return E_NOINTERFACE? Can anybody help me ? Thanks very much.
For some reason, one interface has registered marshalling support while
the other doesn't. You can check in the registry under HKCR\Interface.
It's not clear from what you show why there's a difference between the
two.
--
With best wishes,
Igor Tandetnik
With sufficient thrust, pigs fly just fine. However, this is not
necessarily a good idea. It is hard to be sure where they are going to
land, and it could be dangerous sitting under them as they fly
overhead. -- RFC 1925
Thanks for your advise.