// 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 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_)