SOL9 2.0 Class: SWbemMethod

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

Source code

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


// 2012/03/08 Updated.

#pragma once

#include <sol/wmi/SWbemBaseObject.h>

namespace SOL {

class SWbemMethod :public SWbemBaseObject {
    
public:
    SWbemMethod(IDispatch* pDisp=NULL) 
    :SWbemBaseObject(pDisp)
    {

    }

public:
    ISWbemMethod* get()
    {
        return (ISWbemMethod*)getIDispatch();
    }

public:
    SWbemMethod& operator=(ISWbemMethod* pDisp)
    { 
        set(pDisp);
        return *this;
    }

public:
    _bstr_t getName()
    {
        HRESULT hr = E_FAIL;
        ISWbemMethod* method = get();
        BSTR strName = NULL;

        if (FAILED(hr = method->get_Name(&strName))) {
            throw Exception(E_FAIL, "%s: %s", "E_FAIL",__FUNCTION__);
        }
        return _bstr_t(strName, false);
    }        

public:
    _bstr_t getOrigin()
    {
        HRESULT hr = E_FAIL;
        ISWbemMethod* method = get();
        BSTR strOrigin = NULL;

        if (FAILED(hr = method->get_Origin(&strOrigin))) {
            throw Exception(E_FAIL, "%s: %s", "E_FAIL",__FUNCTION__);
        }
        return _bstr_t(strOrigin, false);
    }    

public:
    ISWbemObject* getInParameters()
    {
        HRESULT hr = E_FAIL;
        ISWbemMethod* method = get();
        ISWbemObject *objWbemInParameters = NULL;

        if (FAILED(hr = method->get_InParameters(
                &objWbemInParameters))) {
            throw Exception(E_FAIL, "%s: %s", "E_FAIL",__FUNCTION__);
        }
        return objWbemInParameters;
    }    


public:
    ISWbemObject* getOutParameters()
    {
        HRESULT hr = E_FAIL;
        ISWbemMethod* method = get();
        ISWbemObject *objWbemOutParameters = NULL;

        if (FAILED(hr = method->get_OutParameters( 
                &objWbemOutParameters))) {
            throw Exception(E_FAIL, "%s: %s", "E_FAIL",__FUNCTION__);
        }
        return objWbemOutParameters;
    }    

        
public:
    ISWbemQualifierSet* getQualifiers()
    {
        HRESULT hr = E_FAIL;
        ISWbemMethod* method = get();
        ISWbemQualifierSet *objWbemQualifierSet = NULL;

        if (FAILED(hr = method->get_Qualifiers_( 
                &objWbemQualifierSet))) {
            throw Exception(E_FAIL, "%s: %s", "E_FAIL",__FUNCTION__);
        }
        return objWbemQualifierSet;
    }    


public:
    void write(Writer& writer)
    {
        _bstr_t name = getName();

        writer.writeln(L"<Method>");
        writer.writeln(L"<Name>%s</Name>", 
            (const wchar_t*)name);

        try {
            SWbemObject inParameters  = getInParameters();
            SWbemObject outParameters = getOutParameters();
            writer.writeln(L"<InParameters>");
            inParameters.write(writer);
            writer.writeln(L"</InParameters>");

            writer.writeln(L"<OutParameters>");
            outParameters.write(writer);
            writer.writeln(L"</OutParameters>");

        } catch (...) {

        }
        writer.writeln(L"</Method>");
    }

};

}


Last modified: 1 Apr 2012

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