105 lines
4.2 KiB
C++
105 lines
4.2 KiB
C++
// WbemClassObject.h: interface for the CWbemClassObject class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_WBEMCLASSOBJECT_H__8B6E3039_FA29_11D1_8349_0000F87A3912__INCLUDED_)
|
|
#define AFX_WBEMCLASSOBJECT_H__8B6E3039_FA29_11D1_8349_0000F87A3912__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include <wbemcli.h>
|
|
|
|
class CWbemEventListener;
|
|
|
|
class CWbemClassObject : public CObject
|
|
{
|
|
|
|
DECLARE_DYNCREATE(CWbemClassObject)
|
|
|
|
// Constructors
|
|
public:
|
|
CWbemClassObject();
|
|
|
|
// Destructor
|
|
public:
|
|
virtual ~CWbemClassObject();
|
|
|
|
// Create/Destroy
|
|
public:
|
|
virtual HRESULT Create(const CString& sMachineName);
|
|
virtual HRESULT Create(IWbemClassObject* pObject);
|
|
virtual void Destroy();
|
|
|
|
// Property Operations
|
|
public:
|
|
// v-marfin
|
|
HRESULT GetRawProperty(const CString& sProperty, VARIANT& vPropValue);
|
|
HRESULT SetRawProperty(const CString& sProperty, VARIANT& vPropValue);
|
|
|
|
HRESULT GetPropertyNames(CStringArray& saNames);
|
|
HRESULT GetPropertyType(const CString& sPropertyName, CString& sType);
|
|
HRESULT GetPropertyType(const CString& sPropertyName, CIMTYPE& Type);
|
|
virtual HRESULT GetAllProperties() { return S_OK; }
|
|
virtual HRESULT SaveAllProperties();
|
|
static bool GetPropertyValueFromString(const CString& sObjectPath, const CString& sPropName, CString& sProperty);
|
|
|
|
// WBEM Operations
|
|
public:
|
|
HRESULT GetClassName(CString& sClass) { return GetProperty(_T("__CLASS"),sClass); }
|
|
HRESULT GetObject(const CString& sObjectPath);
|
|
HRESULT GetObjectText(CString& sText);
|
|
HRESULT ExecQuery(BSTR bsQueryString);
|
|
HRESULT ExecQueryAsync(BSTR bsQueryString, CWbemEventListener* pListener);
|
|
HRESULT CreateEnumerator(BSTR bsClassName);
|
|
HRESULT CreateClassEnumerator(BSTR bsClassName);
|
|
HRESULT CreateAsyncEnumerator(BSTR bsClassName, CWbemEventListener* pListener);
|
|
HRESULT GetNextObject(ULONG& uReturned);
|
|
HRESULT Reset();
|
|
HRESULT CreateInstance(BSTR bsClassName);
|
|
HRESULT DeleteInstance(const CString& sClassObjectPath);
|
|
HRESULT GetMethod(const CString& sMethodName, CWbemClassObject& MethodInput);
|
|
HRESULT ExecuteMethod(const CString& sMethodName, const CString& sArgumentName, const CString& sArgumentValue, int& iReturnValue);
|
|
HRESULT ExecuteMethod(const CString& sMethodName, CWbemClassObject& InInstance, CWbemClassObject& OutInstance);
|
|
|
|
HRESULT GetLocaleStringProperty(const CString& sProperty, CString& sPropertyValue);
|
|
|
|
HRESULT GetProperty(const CString& sProperty, CString& sPropertyValue);
|
|
HRESULT GetProperty(const CString& sProperty, int& iPropertyValue);
|
|
HRESULT GetProperty(const CString& sProperty, bool& bPropertyValue);
|
|
HRESULT GetProperty(const CString& sProperty, float& fPropertyValue);
|
|
HRESULT GetProperty(const CString& sProperty, COleSafeArray& ArrayPropertyValue);
|
|
HRESULT GetProperty(const CString& sProperty, CStringArray& saPropertyValues);
|
|
HRESULT GetProperty(const CString& sProperty, CTime& timePropertyValue, bool ConvertToLocalTime = true);
|
|
|
|
HRESULT SetProperty(const CString& sProperty, CString sPropertyValue);
|
|
HRESULT SetProperty(const CString& sProperty, int iPropertyValue);
|
|
HRESULT SetProperty(const CString& sProperty, bool bPropertyValue);
|
|
HRESULT SetProperty(const CString& sProperty, float fPropertyValue);
|
|
HRESULT SetProperty(const CString& sProperty, CTime timePropertyValue, bool bConvertToGMTTime = true);
|
|
HRESULT SetProperty(const CString& sProperty, COleSafeArray& ArrayPropertyValue);
|
|
HRESULT SetProperty(const CString& sProperty, const CStringArray& saPropertyValues);
|
|
protected:
|
|
HRESULT Connect(IWbemServices*& pServices);
|
|
HRESULT SetBlanket(LPUNKNOWN pIUnk);
|
|
void DisplayErrorMsgBox(HRESULT hr);
|
|
|
|
// Accessors
|
|
public:
|
|
void SetMachineName(const CString& sMachineName) { m_sMachineName = sMachineName; }
|
|
const CString& GetMachineName() const { return m_sMachineName; }
|
|
void SetNamespace(const CString& sNamespace) { m_sNamespace = sNamespace; }
|
|
const CString& GetNamespace() const { return m_sNamespace; }
|
|
IWbemClassObject* GetClassObject() { m_pIWbemClassObject->AddRef(); return m_pIWbemClassObject; }
|
|
// Implementation Attributes
|
|
protected:
|
|
IEnumWbemClassObject* m_pIEnumerator;
|
|
IWbemClassObject* m_pIWbemClassObject;
|
|
CString m_sMachineName;
|
|
CString m_sNamespace;
|
|
|
|
};
|
|
|
|
#endif // !defined(AFX_WBEMCLASSOBJECT_H__8B6E3039_FA29_11D1_8349_0000F87A3912__INCLUDED_)
|