📄 instance_power.cpp
字号:
} catch (...) { // THROWIMEXCEPTION(8004321D); }}void PowerEstimatedTimeRemainingClass::GetValueImpl(){ try { //_Log( LOG_DEBUG_CONTEXT, TEXT("Trace: PowerEstimatedTimeRemainingClass::GetValueImpl()")); ServerInstanceCollection *myBatteryCollection = NULL; ServerInstanceObject *myInstanceObject = NULL; IntelMobileUInt64 sumEstimatedTimeRemaining = 0; bool isnull = true; myBatteryCollection = ( GetLayer()->GetLayerClassObject(IntelMobileText("Battery") )).GetInstances(); if ( myBatteryCollection ) { long iChangedIndex = 0; myBatteryCollection->Reset( &iChangedIndex ); int iEnumIndex = 0; while ( myBatteryCollection->HasNext(iEnumIndex, iChangedIndex) ) { if ( !myBatteryCollection->Next(&myInstanceObject, &iEnumIndex, iChangedIndex) ) break; if ( myInstanceObject ) { if ( myInstanceObject->GetType().compare(IntelMobileText("Battery")) == 0 ) { ServerBatteryInstanceObject *myBatteryInstanceObject = reinterpret_cast <ServerBatteryInstanceObject *> (myInstanceObject); // ServerBatteryInstanceObject *myBatteryInstanceObject = dynamic_cast <ServerBatteryInstanceObject *> (myInstanceObject); if ( !myBatteryInstanceObject->EstimatedTimeRemaining.IsNull() ) { sumEstimatedTimeRemaining += myBatteryInstanceObject->EstimatedTimeRemaining.GetValue(); if (isnull) isnull = false; } else { isnull = true; break; } } } myInstanceObject = NULL; } } if (isnull) this->SetNull( true ); else this->SetValueImpl( sumEstimatedTimeRemaining ); } catch (...) { //THROWIMEXCEPTION(8004321E); }}void PowerFullCapacityClass::GetValueImpl(){ try { //_Log( LOG_DEBUG_CONTEXT, TEXT("Trace: PowerFullInternalCapacityClass::GetValueImpl()")); ServerInstanceCollection *myBatteryCollection = NULL; ServerInstanceObject *myInstanceObject = NULL; IntelMobileUInt64 sumFullInternalCapacity = 0; bool isnull = true; myBatteryCollection = ( GetLayer()->GetLayerClassObject(IntelMobileText("Battery")) ).GetInstances(); if ( myBatteryCollection ) { long iChangedIndex = 0; myBatteryCollection->Reset( &iChangedIndex ); int iEnumIndex = 0; while ( myBatteryCollection->HasNext(iEnumIndex, iChangedIndex) ) { if ( !myBatteryCollection->Next(&myInstanceObject, &iEnumIndex, iChangedIndex) ) break; if ( myInstanceObject ) { if ( myInstanceObject->GetType().compare(IntelMobileText("Battery")) == 0 ) { // ServerBatteryInstanceObject *myBatteryInstanceObject = dynamic_cast <ServerBatteryInstanceObject *> (myInstanceObject); ServerBatteryInstanceObject *myBatteryInstanceObject = reinterpret_cast<ServerBatteryInstanceObject *> (myInstanceObject); if ( !myBatteryInstanceObject->FullCapacity.IsNull() ) { sumFullInternalCapacity += myBatteryInstanceObject->FullCapacity.GetValue(); if (isnull) isnull = false; } else { isnull = true; break; } } } myInstanceObject = NULL; } } if (isnull) this->SetNull( true ); else this->SetValueImpl( sumFullInternalCapacity ); } catch (...) { // THROWIMEXCEPTION(8004321F); }}void PowerPercentRemainingClass::GetValueImpl(){ try { // _Log( LOG_DEBUG_CONTEXT, TEXT("Trace: PowerLifePercentRemainingClass::GetValueImpl()")); ServerInstanceCollection *myBatteryCollection = NULL; ServerInstanceObject *myInstanceObject = NULL; IntelMobileUInt64 sumFullCapacity = 0, nowCapacity = 0; IntelMobileUInt percentage = 0; bool isnull = true; myBatteryCollection = ( GetLayer()->GetLayerClassObject(IntelMobileText("Battery")) ).GetInstances(); if ( myBatteryCollection ) { long iChangedIndex = 0; myBatteryCollection->Reset( &iChangedIndex ); int iEnumIndex = 0; while ( myBatteryCollection->HasNext(iEnumIndex, iChangedIndex) ) { if ( !myBatteryCollection->Next(&myInstanceObject, &iEnumIndex, iChangedIndex) ) break; if ( myInstanceObject ) { if ( myInstanceObject->GetType().compare(IntelMobileText("Battery")) == 0 ) { // ServerBatteryInstanceObject *myBatteryInstanceObject = dynamic_cast <ServerBatteryInstanceObject *> (myInstanceObject); ServerBatteryInstanceObject *myBatteryInstanceObject = reinterpret_cast <ServerBatteryInstanceObject *> (myInstanceObject); if ( (!myBatteryInstanceObject->Capacity.IsNull()) && (!myBatteryInstanceObject->FullCapacity.IsNull()) ) { sumFullCapacity += myBatteryInstanceObject->FullCapacity.GetValue(); nowCapacity += myBatteryInstanceObject->Capacity.GetValue(); if (isnull) isnull = false; } else { isnull = true; break; } } } myInstanceObject = NULL; } } if (isnull) { this->SetNull( true ); return; } if (sumFullCapacity == 0) { this->SetNull( true ); return; } percentage = (IntelMobileUInt) (nowCapacity * 100.0 / sumFullCapacity + 0.5); if ( percentage > 100 ) percentage = 100; else if ( percentage < 0 ) percentage = 0; this->SetValueImpl( percentage ); } catch (...) { // THROWIMEXCEPTION(80043220); }}void PowerRateClass::GetValueImpl(){ try {// _Log( LOG_DEBUG_CONTEXT, TEXT("Trace: PowerInternalPowerRateClass::GetValueImpl()")); ServerInstanceCollection *myBatteryCollection = NULL; ServerInstanceObject *myInstanceObject = NULL; bool isnull = true; IntelMobileInt64 sumRate = 0; myBatteryCollection = ( GetLayer()->GetLayerClassObject(IntelMobileText("Battery")) ).GetInstances(); if ( myBatteryCollection ) { long iChangedIndex = 0; myBatteryCollection->Reset( &iChangedIndex ); int iEnumIndex = 0; while ( myBatteryCollection->HasNext(iEnumIndex, iChangedIndex) ) { if ( !myBatteryCollection->Next(&myInstanceObject, &iEnumIndex, iChangedIndex) ) break; if ( myInstanceObject ) { if ( myInstanceObject->GetType().compare(IntelMobileText("Battery")) == 0 ) { // ServerBatteryInstanceObject *myBatteryInstanceObject = dynamic_cast <ServerBatteryInstanceObject *> (myInstanceObject); ServerBatteryInstanceObject *myBatteryInstanceObject = reinterpret_cast <ServerBatteryInstanceObject *> (myInstanceObject); if ( !myBatteryInstanceObject->Rate.IsNull() ) { sumRate += myBatteryInstanceObject->Rate.GetValue(); if (isnull) isnull = false; } else { isnull = true; break; } } } myInstanceObject = NULL; } } if ( isnull ) this->SetNull ( true ); else this->SetValueImpl( sumRate ); } catch (...) {// THROWIMEXCEPTION(80043221); }}void PowerTimeRemainingClass::GetValueImpl(){ try { // _Log( LOG_DEBUG_CONTEXT, TEXT("Trace: PowerTimeRemainingAtCurrentRateClass::GetValueImpl()")); PowerInstanceObject* pThis = (PowerInstanceObject*)this->_pThis; if ( (pThis->Source.IsNull()) || (pThis->Source.GetValue() == PowerSourceEnum::External) ) { this->SetNull( true ); return; } if ( (!pThis->Capacity.IsNull()) && (!pThis->Rate.IsNull()) ) { IntelMobileInt64 rate = pThis->Rate.GetValue(); if(rate==0) this->SetNull(true); else { double temp = (double) pThis->Capacity.GetValue() * 3600.0 / (double) rate; temp = fabs(temp); this->SetValueImpl( (IntelMobileUInt64)(temp+0.5) ); } } else { this->SetNull( true ); } } catch (...) { // THROWIMEXCEPTION(80043222); }}/*void PowerManagementSupportedClass::GetValueImpl(){ HRESULT hr; IWbemLocator *pIWbemLocator = NULL; IWbemServices *pWbemServices = NULL; IEnumWbemClassObject *pEnumObject = NULL; IWbemClassObject **pClassObject = NULL; BSTR bstrNamespace = NULL; BSTR strClassProp = NULL; try { //init hr = CoInitializeEx( NULL, COINIT_MULTITHREADED ); if (FAILED(hr)) { //ERROR } else if ( hr == S_OK ) { // hres = CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_CONNECT, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, 0); hr = CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_DYNAMIC_CLOAKING, 0); if (FAILED(hr)) { //ERROR } } //create instance hr = CoCreateInstance(CLSID_WbemAdministrativeLocator, NULL, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER, IID_IUnknown, (void **) &pIWbemLocator); if (FAILED(hr)) { //ERROR } bstrNamespace = L"root\\cimv2"; hr = pIWbemLocator->ConnectServer(bstrNamespace, NULL, NULL, NULL, 0, NULL, NULL, &pWbemServices); if (FAILED(hr)) { //ERROR } BSTR strQuery = L"Select * from Win32_Battery"; BSTR strQL = L"WQL"; hr = pWbemServices->ExecQuery(strQL, strQuery, WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumObject); if (FAILED(hr)) { //ERROR } //get objects ULONG uCount = 1, uReturned; //uCount may bigger pClassObject = new IWbemClassObject* [uCount]; hr = pEnumObject->Reset(); if (FAILED(hr)) { //ERROR } hr = pEnumObject->Next(WBEM_INFINITE, uCount, pClassObject, &uReturned); if (FAILED(hr)) { //ERROR } VARIANT v; strClassProp = SysAllocString(L"PowerManagementSupported"); for ( ULONG ul = 0; ul < uReturned; ul++ ) { hr = pClassObject[ul]->Get( strClassProp, 0, &v, 0, 0 ); if (FAILED(hr)) { //ERROR } } SysFreeString( strClassProp ); strClassProp = NULL; bool ret = false; if (V_VT( &v ) == VT_BOOL) ret = V_BOOL( &v )? true : false; else ;//ERROR this->SetValueImpl(ret); //release VariantClear( &v ); for ( ULONG ul = 0; ul < uReturned; ul++ ) { pClassObject[ul]->Release() } pEnumObject->Release(); pWbemServices->Release(); pIWbemLocator->Release(); CoUninitialize(); }//try catch (...) { ; }}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -