Hi

I trying to get the actual CPU temp in my mfc app, but i have some troubles.
Here is the code I use to get the cpu temp, but the result always gets a strange value when trying to do (pClassObject and uReturned are NULL afterwards)

Code:
hRes = pEnumObject->Next(WBEM_INFINITE,uCount, &pClassObject, &uReturned);
Here is the whole code I use:

Code:
void CFFMpeg_guiDlg::ReadCPUTemp ()
{
  HRESULT hr = CoInitializeEx (0, COINIT_MULTITHREADED); 
  if (FAILED (hr)) 
  {
    return;
  }

  IWbemLocator* pIWbemLocator = NULL;
  IWbemServices* pWbemServices = NULL;
  IEnumWbemClassObject* pEnumObject = NULL;

  if (CoCreateInstance (CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID *) &pIWbemLocator) != S_OK)
    return;

  if (pIWbemLocator->ConnectServer ( CComBSTR (L"ROOT\\WMI"), NULL, NULL, 0, NULL, 0, 0, &pWbemServices) != S_OK)
    return;

  HRESULT hRes;
  hRes = pWbemServices->ExecQuery (CComBSTR (L"WQL"), CComBSTR (L"SELECT * FROM MSAcpi_ThermalZoneTemperature"),WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumObject); 
  if (hRes != S_OK)
  {
    return;
  }

  hRes = pEnumObject->Reset();
  if (hRes != S_OK)
  {
    return;
  }

  ULONG uCount = 1, uReturned;
  IWbemClassObject* pClassObject;
-->  hRes = pEnumObject->Next(WBEM_INFINITE,uCount, &pClassObject, &uReturned);
  if(hRes != S_OK)
  {
    return;
  }

  VARIANT v;
  int i = 0;
  BSTR strClassProp = SysAllocString(L"CurrentTemperature");
  hRes = pClassObject->Get(strClassProp, 0, &v, 0, 0);
  if (hRes != S_OK)
  {
    MessageBox("Could not Get Value");
    return;
  }

  SysFreeString(strClassProp);
//   _bstr_t bstrpath = &v; //just to convert bstr to ansi
//   char* strpath=(char*)bstrpath;
// 
//   if (succeeded(hres))
//     messagebox(strpath);
//   else
//     messagebox("error in getting object");

  VariantClear(&v);
  pIWbemLocator->Release();
  pWbemServices->Release();
  pEnumObject->Release();
  pClassObject->Release();
  CoUninitialize();
}
thanks for any advice...
regards
Erich