SOL9 2.0 Class: SWbemLocator

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

Source code

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


// 2012/03/08 Updated.

#pragma once

#include <sol/wmi/SWbemBaseObject.h>
#include <sol/wmi/SWbemServices.h>

namespace SOL {

class SWbemLocator :public SWbemBaseObject {

public:
    SWbemLocator(bool instanceCreation=true)
    {
        if (instanceCreation) {
            createInstance();
        }
    }

public:
    HRESULT createInstance()
    {
        return ComObject::createInstance(CLSID_SWbemLocator, IID_ISWbemLocator, CLSCTX_INPROC_SERVER);
    }

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


public:
    ISWbemServices* connectServer( 
           __in BSTR strServer,
           __in BSTR strNamespace,
           __in BSTR strUser=NULL,
           __in BSTR strPassword=NULL,
           __in BSTR strLocale=NULL,
           __in BSTR strAuthority=NULL,
           __in long iSecurityFlags=0,
           __in IDispatch *objWbemNamedValueSet=NULL)        
    {
        ISWbemLocator* locator = get();

        ISWbemServices* iservices = NULL;
    
        HRESULT hr = locator->ConnectServer(
            strServer,
            strNamespace,
            strUser,
            strPassword,
            strLocale,
            strAuthority,
            iSecurityFlags,
            objWbemNamedValueSet,
            &iservices);
        if (FAILED(hr)) {
            printf("Failed to connectServer: \"%S\"\n", strServer);
            throw Exception(E_FAIL, "%s: %s", "E_FAIL",__FUNCTION__);
        }
            
        return iservices;
    }


public:
    ISWbemSecurity* getSecurity()
    {
        ISWbemLocator* locator = get();
        ISWbemSecurity* security = NULL;

        HRESULT hr = locator->get_Security_(&security);

        if (FAILED(hr)) {
            throw Exception(E_FAIL, "%s: %s", "E_FAIL",__FUNCTION__);
        }
        return security;
    }
};


}

Last modified: 1 Apr 2012

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