SOL9 2.0 Class: WbemCallResult

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree 

Source code

/*
 * WbemCallResult.h 
 * Copyright (c) 2012 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// 2010/02/14

#pragma once

#include <sol/com/ComIUnknown.h>
#include <objbase.h>

#include <sol/COMTypeConverter.h>
#include <sol/Writer.h>
#include <sol/FileWriter.h>
#include <sol/ConsoleWriter.h>

#include <sol/LocalDateTime.h>
#include <sol/HTMLEncoder.h>

//2010/05/09
#include <wbemidl.h>
#include <wbemdisp.h>

#pragma comment(lib, "wbemuuid.lib")
#pragma comment(lib, "oleaut32.lib")


namespace SOL {

class WbemCallResult :public ComIUnknown {

public:
    WbemCallResult(IUnknown* callResult=NULL)
    :ComIUnknown(callResult)
    {

    }        

public:
    ~WbemCallResult()
    {
    }

public:
    IWbemCallResult* getCallResult()
    {
        return (IWbemCallResult*)getCallResult();
    }

public:
    IWbemClassObject* getResultObject( 
            __in long lTimeout)
    {
        HRESULT hr = S_OK;
        IWbemCallResult* callResult = getCallResult();
        IWbemClassObject *pResultObject =NULL;
        if (FAILED(hr = callResult -> GetResultObject( 
                lTimeout,
                &pResultObject)    )) {
            throw Exception(E_FAIL, "%s: %s", "E_FAIL",__FUNCTION__);
        }
        else {
            return pResultObject;
        }
    }


public:
    _bstr_t getResultString( 
            __in long lTimeout)
    {
        HRESULT hr = S_OK;
        IWbemCallResult* callResult = getCallResult();
        BSTR strResultString = NULL;
        if (FAILED(hr = callResult -> GetResultString( 
                lTimeout,
                &strResultString)    )) {
            throw Exception(E_FAIL, "%s: %s", "E_FAIL",__FUNCTION__);
        }
        else {
            return _bstr_t(strResultString, false);
        }
    }


public:
    IWbemServices* getResultServices( 
            __in long lTimeout)
    {
        HRESULT hr = S_OK;
        IWbemCallResult* callResult = getCallResult();
        IWbemServices *pServices = NULL;
        if (FAILED(hr = callResult -> GetResultServices( 
                lTimeout,
                &pServices)    )) {
            throw Exception(E_FAIL, "%s: %s", "E_FAIL",__FUNCTION__);
        }
        else {
            return pServices;
        }
    }


public:
    long getCallStatus( 
            __in long lTimeout)  
    {
        HRESULT hr = S_OK;
        IWbemCallResult* callResult = getCallResult();
        long lStatus = 0;
        if (FAILED(hr = callResult -> GetCallStatus( 
                lTimeout,
                &lStatus)     )) {
            throw Exception(E_FAIL, "%s: %s", "E_FAIL",__FUNCTION__);
        }
        else {
            return lStatus;
        }
    }

};

}

Last modified: 1 Apr 2012

Copyright (c) 2009-2012 Antillia.com ALL RIGHTS RESERVED.