⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 instance_power.cpp

📁 270的linux说明
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    }    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 + -