描述:
我用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啊
解决方案1:
返回什么错?
您可能想查找下面的文章:
- 如何修改ATL自动生成的COM方法呢?比如QueryInterface,CreateInstence
- 重写QueryInterface,AddRef,Release应该注意些什么?我这段代码怎么总是有问题。
- 使用COM组件时,QueryInterface调用失败是什么原因
- tempRs->QueryInterface__uuidof_Recordset,voidm_Recordset编译没错,vb调用报自动化错误
- 在线等待关于queryinterface的问题
- 关于QueryInterface,求助啊!
- 奇怪:成功激活也能成功调用,为什么queryinterface查询第二个接口报告“拒绝访问”?
- 为什么Queryinterface返回的IUnknown指针总是相同的
- 求QueryInterface例子
- 请问QueryInterface有什么用呢?