如何编写MFC Com(non-ATL)的Client程序?
a_gan 2000-06-19 09:33:00 如何获得COM中Server的界面和CLSID,IID,通过头文件吗?
CLSID clsid;
LPCLASSFACTORY pClf;
LPUNKNOWN pUnk;
INavDbProject* pProject;
HRESULT hr;
if((hr=::CLSIDFromProgID(L"Spatial",&clsid))!=NOERROR)
{
TRACE("Unable to find Program ID---error = %x\n",hr);
return;
}
if((hr=::CoGetClassObject(clsid,CLSCTX_INPROC_SERVER,NULL,IID_IClassFactory,(void**)&pClf))!=NOERROR)
{
TRACE("Unable to find CLSID---error = %x\n",hr);
return;
}
pClf->CreateInstance(NULL,IID_IUnknown,(void**)&pUnk);
pUnk->QueryInterface(IID_INavDbProject,(void**)&pProject);
pClf->Release();
pUnk->Release();
pProject->Release();
编译时出错:
E:\Study\MFC\Navigator\NavigatorView.cpp(112) : error C2065: 'INavDbProject' : undeclared identifier
E:\Study\MFC\Navigator\NavigatorView.cpp(112) : error C2065: 'pProject' : undeclared identifier
E:\Study\MFC\Navigator\NavigatorView.cpp(112) : warning C4552: '*' : operator has no effect; expected operator with side-effect
E:\Study\MFC\Navigator\NavigatorView.cpp(127) : error C2065: 'IID_INavDbProject' : undeclared identifier
E:\Study\MFC\Navigator\NavigatorView.cpp(135) : error C2227: left of '->Release' must point to class/struct/union
该如何处理??????