Código fuente psv público
# include & ltiostream & gt
Usar espacio de nombres estándar
# include & ltcomdef.h & gt
# include & ltWbemidl.h & gt
# pragma comment(lib, "wbemuuid.lib")
int main(int argc, char **argv)
{
CoInitializeEx(0, COINIT_Multi-threading);
Pruebe
{
if(Success(CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, NULL)))
{
IWbemLocator * pLoc = NULL
if(SUCCEEDED (cocrear instancia( Localizador CLSID_WBEM, 0, CLSCTX_INPROC_SERVER, IID_iwbelocator, (LPVOID *) & pLoc)))
{
IWbemServices * pSvc = NULL
p>if(Éxito (pLoc->ConnectServer(_ bstr_t(L"ROOT\\WMI),NULL,NULL,0,NULL,0,0&pSvc)))
{
if (éxito(CoSetProxyBlanket(pSvc,RPC_C_AUTHN_WINNT,RPC_C_AUTHZ_NONE,NULL,RPC_C_AUTHN_LEVEL_CALL,RPC_C_IMP_LEVEL_IMPERSONATE,NULL,EOAC_NONE)))
{
IEnumWbemClassObject * pEnumerator = NULL;
if(éxito(pSvc-& gt; ExecQuery(bstr_t("WQL "), bstr_t("SELECT * FROM
MSAcpi_ThermalZoneTemperature "), WBEM _ FLAG _ FORWARD _ SOLAMENTE | WBEM _ FLAG _ RETURN _ INMEDIATAMENTE, NULL y amppEnumerator)))
{
IWbemClassObject * pclsObj
ULONG ure turn = 0
mientras(tacaño; man)
{
pEnumerator->; Siguiente(WBEM_INFINITE, 1, &pclsObj & amp;uReturn);
pEnumerator->; if(0==uReturn)
Break;
Variant vtProp
VariantInit(& vt prop);
pclsObj-> Get(L"CurrentTemperature ", 0 & vtProp, 0, 0);
wcout & lt& lt"Temperatura actual de la CPU:" & lt& lt(vt prop .intval-2732)/10
.0 <<endl
variante clara(& vt prop);
pclsObj->release();
} p>
}
}
pSvc->;Publish();
}
pLoc->Publish();
}
}
}
captura (_com_error err)
{
}
cuenta inicializar();
devuelve 0;
}