Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
// HMContext.cpp: implementation of the CHMContext class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "snapin.h"
#include "HMContext.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW
#endif
IMPLEMENT_DYNCREATE(CHMContext,CWbemClassObject)
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CHMContext::CHMContext() { m_iType = CIM_ILLEGAL; }
CHMContext::~CHMContext() { Destroy(); }
//////////////////////////////////////////////////////////////////////
// Create
//////////////////////////////////////////////////////////////////////
HRESULT CHMContext::Create(const CString& sMachineName) { HRESULT hr = CWbemClassObject::Create(sMachineName); if( !CHECKHRESULT(hr) ) { return hr; }
// create the enumerator for Microsoft_HMContext object instances
BSTR bsClass = SysAllocString(_T("Microsoft_HMContext")); hr = CreateEnumerator(bsClass); SysFreeString(bsClass);
if( !CHECKHRESULT(hr) ) { return hr; }
return hr; }
HRESULT CHMContext::Create(IWbemClassObject* pObject) { HRESULT hr = CWbemClassObject::Create(pObject); if( !CHECKHRESULT(hr) ) { return hr; }
return hr; }
//////////////////////////////////////////////////////////////////////
// Enumeration Operations
//////////////////////////////////////////////////////////////////////
HRESULT CHMContext::EnumerateObjects(ULONG& uReturned) { // call GetNextObject to proceed to the next object instance
HRESULT hr = GetNextObject(uReturned); if( FAILED(hr) || uReturned != 1 ) { // no more instances
return hr; }
ASSERT(m_pIWbemClassObject); if( m_pIWbemClassObject == NULL ) { ASSERT(0); return S_FALSE; }
// process the properties of this object
hr = GetAllProperties();
return hr; }
//////////////////////////////////////////////////////////////////////
// Property Retrieval Operations
//////////////////////////////////////////////////////////////////////
HRESULT CHMContext::GetAllProperties() { ASSERT(m_pIWbemClassObject); if( m_pIWbemClassObject == NULL ) { ASSERT(FALSE); return S_FALSE; }
HRESULT hr = S_OK;
// Name
hr = GetLocaleStringProperty(IDS_STRING_MOF_NAME,m_sName);
// Type
hr = GetProperty(IDS_STRING_MOF_TYPE,m_iType);
// Values
hr = GetProperty(IDS_STRING_MOF_VALUES,m_sValue);
return hr; }
HRESULT CHMContext::SaveAllProperties() { ASSERT(m_pIWbemClassObject); if( m_pIWbemClassObject == NULL ) { ASSERT(FALSE); return S_FALSE; }
HRESULT hr = S_OK;
// Name
hr = SetProperty(IDS_STRING_MOF_NAME,m_sName);
// Type
hr = SetProperty(IDS_STRING_MOF_TYPE,m_iType);
// Values
hr = SetProperty(IDS_STRING_MOF_VALUES,m_sValue);
return hr; }
|