當前位置:編程學習大全網 - 編程語言 - 如何在vb6編程中使用sdk

如何在vb6編程中使用sdk

Win32 _電池

HRESULT hr

//1.初始化COM

hr = CoInitializeEx(0,COINIT _多線程);//初始化COM

//2.初始化COM進程安全性

hr = CoInitializeSecurity(

NULL,//安全描述符

-1,// COM協商身份驗證服務

NULL,//身份驗證服務

NULL,//保留

RPC_C_AUTHN_LEVEL_DEFAULT,//代理的默認身份驗證級別

RPC_C_IMP_LEVEL_IMPERSONATE,//代理的默認模擬級別

NULL,//身份驗證信息

EOAC_NONE,//客戶端或服務器的附加功能

NULL);//保留

//3.獲取到WMI的初始定位器

//初始化IWbemLocator接口

IWbemLocator * pLoc = 0;

HR = cocreate instance(CLSID _ WBEM locator,0,

CLSCTX_INPROC_SERVER,IID _ iwbelocator,(LPVOID *)& amp;pLoc);

//4.通過調用IWbemLocator::ConnectServer,獲取指向本地計算機上root\cimv2命名空間的IWbemServices的指針。

IWbemServices * pSvc = 0;

//使用當前用戶連接到根\默認命名空間。

HR = pLoc-& gt;連接服務器(

_bstr_t(L"ROOT\\CIMV2 "),// WMI命名空間

NULL,//用戶名

NULL,//用戶密碼

0,//區域設置

空,//安全標誌

0,//權威

0,//上下文對象

& amppSvc // IWbemServices代理

);

cout & lt& lt“連接到WMI”& lt;& ltendl

//5.設置IWbemServices代理安全,以便WMI服務可以通過調用CoSetProxyBlanket來模擬客戶端。

//設置代理,以便模擬客戶端。

hr = CoSetProxyBlanket(pSvc,//表示要設置的代理

RPC_C_AUTHN_WINNT,// RPC_C_AUTHN_xxx

RPC_C_AUTHZ_NONE,// RPC_C_AUTHZ_xxx

NULL,//服務器主體名稱

RPC_C_AUTHN_LEVEL_CALL,// RPC_C_AUTHN_LEVEL_xxx

RPC_C_IMP_LEVEL_IMPERSONATE,// RPC_C_IMP_LEVEL_xxx

NULL,//客戶端標識

EOAC _ NONE);//代理功能

//6.使用IWbemServices指針向WMI發出請求。

IEnumWbemClassObject * pEnumerator = NULL;

HR = pSvc-& gt;ExecQuery(

bstr_t("WQL "),

bstr _ t(" SELECT * FROM Win32 _ Battery "),

WBEM _ FLAG _ FORWARD _ ONLY | WBEM _ FLAG _ RETURN _ IMMEDIATELY,

空,

& amppEnumerator);

如果(失敗(小時))

{

cout & lt& lt"進程查詢失敗。"

& lt& lt"錯誤代碼= 0x "

& lt& lt十六進制& lt& lthr & lt& ltendl

pSvc->;發布();

pLoc-& gt;發布();

coun initialize();

返回1;//程序失敗。

}

其他

{

IWbemClassObject * pclsObj

ULONG ure turn = 0;

ULONG I = 0;

while(吝嗇鬼)

{

HR = pEnumerator-& gt;接下來(WBEM_INFINITE,1,

& amppclsObj & amp;uReturn);

if(0 == uReturn)

{

printf(" End \ n ");

打破;

}

變體vtProp

BSTR唱片公司;//LPCWSTR

if(Strname[i][0] == "string ")

{

lp = (BSTR)Strname[i][1]。c _ str();

//獲取Name屬性的值

HR = pclsObj-& gt;Get(lp,0 & amp;vtProp,0,0);

printf(Strname[i][1]。c _ str());

wcout & lt& lt":" & lt& ltvt prop . bstr val & lt;& ltendl

variant clear(& amp;vt prop);

}

其他

{

printf(Strname[i][1]。c _ str());

Printf(":未知\ n ");

}

i++;

}

}

//清理

// ========

pSvc->;發布();

pLoc-& gt;發布();

  • 上一篇:我想學習flash,請問如何下載整套flash視頻教程.
  • 下一篇:AE動畫制作教程:AE怎麽制作冬日雪景動畫效果?
  • copyright 2024編程學習大全網