使用WMI获取系统信息过程
我们以获取本机系统为例,获取系统信息的过程如下:
1)初始化COM库
由于用C++编写WMI应用是基于COM技术的,所以必须初始化COM库,这时调用函数CoInitializeEx用于初始化COM库。
2)初始化COM库安全级别
调用函数CoInitializeSecurity用于初始化COM安全级别。
我们以获取本机系统为例,获取系统信息的过程如下:
1)初始化COM库
由于用C++编写WMI应用是基于COM技术的,所以必须初始化COM库,这时调用函数CoInitializeEx用于初始化COM库。
HRESULT hres;
hres = CoInitializeEx( 0 , COINIT_MULTITHREADED);
if (FAILED(hres))
{
cout << "Failed to initialize COM library. Error code = 0x"
<< hex << hres << endl;
return 1; // Program has failed.
}
hres = CoInitializeEx( 0 , COINIT_MULTITHREADED);
if (FAILED(hres))
{
cout << "Failed to initialize COM library. Error code = 0x"
<< hex << hres << endl;
return 1; // Program has failed.
}
调用函数CoInitializeSecurity用于初始化COM安全级别。
hres
=
CoInitializeSecurity(
NULL,
- 1 , // COM authentication
NULL, // Authentication services
NULL, // Reserved
RPC_C_AUTHN_LEVEL_DEFAULT, // Default authentication
RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation
NULL,
NULL,
- 1 , // COM authentication
NULL, // Authentication services
NULL, // Reserved
RPC_C_AUTHN_LEVEL_DEFAULT, // Default authentication
RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation
NULL,