#include <objbase.h>
#include <comdef.h>
BOOL CWatchApp::InitInstance()
{
AfxEnableControlContainer();
//初始化COM
HRESULT hres;
hres = CoInitializeEx(0, COINIT_MULTITHREADED);
if (FAILED(hres))
{
// Program has failed.
CString csErr;
csErr.Format("Failed to initialize COM library. Error code = %d",hres);
AfxMessageBox(csErr);
return FALSE;
}
hres = CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_CONNECT, RPC_C_IMP_LEVEL_IDENTIFY, NULL, EOAC_NONE, NULL);
if (FAILED(hres))
{
CString csErr;
csErr.Format("Failed to initialize COM Security library. Error code = %d",hres);
AfxMessageBox(csErr);
return FALSE;
}
。。
return TRUE;
}编译时却告诉我说CoInitializeEx()和CoInitializeSecurity()未定义,请高手告诉我,这是为什么?到底有什么地方没做到?
#include <comdef.h>
BOOL CWatchApp::InitInstance()
{
AfxEnableControlContainer();
//初始化COM
HRESULT hres;
hres = CoInitializeEx(0, COINIT_MULTITHREADED);
if (FAILED(hres))
{
// Program has failed.
CString csErr;
csErr.Format("Failed to initialize COM library. Error code = %d",hres);
AfxMessageBox(csErr);
return FALSE;
}
hres = CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_CONNECT, RPC_C_IMP_LEVEL_IDENTIFY, NULL, EOAC_NONE, NULL);
if (FAILED(hres))
{
CString csErr;
csErr.Format("Failed to initialize COM Security library. Error code = %d",hres);
AfxMessageBox(csErr);
return FALSE;
}
。。
return TRUE;
}编译时却告诉我说CoInitializeEx()和CoInitializeSecurity()未定义,请高手告诉我,这是为什么?到底有什么地方没做到?
即:
Project->Setting->C/C++->Preprocessor Define
这样在编译时就可获得::CoInitializeEx()的原型定义.
WINOLEAPI CoInitializeEx(LPVOID pvReserved, DWORD dwCoInit);
#endif // DCOM你自己在头文件中加上
#define _WIN32_DCOM
或
#define _WIN32_WINNT 0x0400