求救,问一个QueryInterface的问题
我用MFC实现一个COM服务器。
其中的INTERFACE申明为
BEGIN_INTERFACE_MAP(CConnObject,CCmdTarget)
INTERFACE_PART(CConnObject,IID_IEventServer,EventServer)
INTERFACE_PART(CConnObject,IID_IConnectionPointContainer,ConnPtContainer)
END_INTERFACE_MAP()
其中QueryInterface的实现代码为
HRESULT FAR EXPORT
CConnObject::XEventServer::QueryInterface(REFIID iid, void FAR* FAR* ppvObj)
{
METHOD_PROLOGUE(CConnObject, EventServer);
return (HRESULT)pThis->ExternalQueryInterface(&iid, ppvObj);
}
然后我在客户端正确得到unknown接口指针
hResult = ::CoCreateInstance(CLSID_ConnObject,NULL,
CLSCTX_INPROC_SERVER,IID_IUnknown,(void**)&m_pIUnknown);
然后再用此指针查询QueryInterface的接口
hResult = m_pIUnknown->QueryInterface(IID_IConnectionPointContainer,
(void**)&pConnPtCont);
为什么在查询IConnectionPointContainer的时候Fail啊