|
|
/*++
Copyright (C) 1996-2001 Microsoft Corporation
Module Name:
STDCLASS.CPP
Abstract:
Class definitions for standard system classes.
History:
raymcc 18-Jul-96 Created.
--*/
#include "precomp.h"
#include "sechelp.h"
#include "StdClass.h"
#include "Reg.h"
#include "CfgMgr.h"
#include <arrtempl.h>
#include <genutils.h>
#include <comdef.h>
#include <autoptr.h>
#define NEW_CLASS_PRECREATE_SIZE 1000
#define NEW_INSTANCE_PRECREATE_SIZE 100
#define NOT_NULL_FLAVOR \
WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | \ WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS | \ WBEM_FLAVOR_NOT_OVERRIDABLE
#define READ_FLAVOR \
WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | \ WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS | \ WBEM_FLAVOR_NOT_OVERRIDABLE
#define UNITS_FLAVOR \
WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | \ WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS | \ WBEM_FLAVOR_NOT_OVERRIDABLE
#define SINGLETON_FLAVOR \
WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | \ WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS | \ WBEM_FLAVOR_NOT_OVERRIDABLE
#define SYNTAX_FLAVOR \
WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | \ WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS
#define ABSTRACT_FLAVOR 0 // no propagation
#define ASSOC_FLAVOR \
WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | \ WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS | \ WBEM_FLAVOR_NOT_OVERRIDABLE
#define VALUES_FLAVOR \
WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | \ WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS
void CThisNamespaceClass::Init() { CSystemClass System; System.Init(); HRESULT hRes = CreateDerivedClass(&System); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__thisNAMESPACE"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// CVar vNull;
// vNull.SetAsNull();
// hRes = SetPropValue(L"Name", &vNull, CIM_STRING);
// if (hRes == WBEM_E_OUT_OF_MEMORY)
// throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"SECURITY_DESCRIPTOR", &vEmpty, CIM_FLAG_ARRAY | CIM_UINT8); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vTrue(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"singleton", &vTrue, SINGLETON_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
}
void CThisNamespaceInstance::Init(CThisNamespaceClass* pClass) { if (FAILED(InitNew(pClass, NEW_INSTANCE_PRECREATE_SIZE))) throw CX_MemoryException(); }
BOOL GetLocalSystemSid(CVar& v) { PSID pSid;
//
// Allocate the SID for the LOCAL SYSTEM account
//
SID_IDENTIFIER_AUTHORITY id = SECURITY_NT_AUTHORITY; if(AllocateAndInitializeSid( &id, 1, // SEC:REVIEWED 2002-03-22 : Ok
SECURITY_LOCAL_SYSTEM_RID, 0,0,0,0,0,0,0,&pSid)) { BYTE* pBuffer = (BYTE*)pSid;
//
// Transfer its contents into a CVar
//
CVarVector* pvv = new CVarVector(VT_UI1); if(pvv == NULL) { FreeSid(pSid); return FALSE; }
for(int i = 0; i < GetLengthSid(pSid); i++) pvv->Add(CVar(pBuffer[i]));
FreeSid(pSid); v.SetVarVector(pvv, TRUE); return TRUE; } else return FALSE; }
void CSystemClass::Init() { if ( FAILED( InitEmpty(NEW_CLASS_PRECREATE_SIZE) ) ) { throw CX_MemoryException(); }
CVar v(VT_BSTR, L"__SystemClass"); HRESULT hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vt(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"abstract", &vt, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CParametersClass::Init() { if ( FAILED( InitEmpty(NEW_CLASS_PRECREATE_SIZE) ) ) { throw CX_MemoryException(); }
CVar v(VT_BSTR, L"__PARAMETERS"); HRESULT hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vt(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"abstract", &vt, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
//******************************************************************************
void CGenericClass::Init() { if ( FAILED( InitEmpty(NEW_CLASS_PRECREATE_SIZE) ) ) { throw CX_MemoryException(); }
CVar v(VT_BSTR, L"__GENERIC"); HRESULT hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vt(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"sample", &vt, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
//******************************************************************************
void CNotifyStatusClass::Init() { if ( FAILED( InitEmpty(NEW_CLASS_PRECREATE_SIZE) ) ) { throw CX_MemoryException(); }
CVar v(VT_BSTR, L"__NotifyStatus"); HRESULT hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
//CVar vs((LONG) 0);
CVar vs; vs.SetAsNull(); hRes = SetPropValue(L"StatusCode", &vs, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vt(VARIANT_TRUE, VT_BOOL); // all error classes are like that!
hRes = SetQualifier(L"abstract", &vt, WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS | WBEM_FLAVOR_NOT_OVERRIDABLE); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
//******************************************************************************
void CNamespaceClass::Init() { CSystemClass System; System.Init(); HRESULT hRes = CreateDerivedClass(&System); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__NAMESPACE"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"Name", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Mark name as 'key'.
// ===================
CVar vb(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"Name", L"key", 0, &vb); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
CNamespaceClass* CNamespace::mstatic_pClass = NULL; CStaticCritSec CNamespace::mstatic_cs; CNamespace::__CleanUp CNamespace::cleanup;
void CNamespace::Init(LPWSTR pName) { CInCritSec local_lock (&mstatic_cs); // SEC:REVIEWED 2002-03-22 : Assumes entry
if(mstatic_pClass == NULL) { wmilib::auto_ptr<CNamespaceClass> p(new CNamespaceClass); if (p.get() == 0) { throw CX_MemoryException(); } p->Init(); mstatic_pClass = p.release(); } if (FAILED(InitNew(mstatic_pClass, NEW_INSTANCE_PRECREATE_SIZE))) throw CX_MemoryException();
CVar vk(VT_BSTR, pName); HRESULT hRes = SetPropValue(L"Name", &vk, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
//******************************************************************************
void CProviderClass::Init() { CSystemClass System; System.Init(); HRESULT hRes = CreateDerivedClass(&System); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__Provider"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"Name", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"Name", L"key", 0, &vk); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetQualifier(L"abstract", &vk, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CWin32ProviderClass::Init() { CProviderClass ProviderClass; ProviderClass.Init(); HRESULT hRes = CreateDerivedClass(&ProviderClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__Win32Provider"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull();
hRes = SetPropValue(L"CLSID", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"ClientLoadableCLSID", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"DefaultMachineName", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"UnloadTimeout", &vNull, CIM_DATETIME); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"InitializeAsAdminFirst", &vNull, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"Version", &vNull, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vZero; vZero.SetLong(0); hRes = SetPropValue(L"ImpersonationLevel", &vZero, CIM_SINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"InitializationReentrancy", &vZero, CIM_SINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vFalse(VARIANT_FALSE, VT_BOOL); hRes = SetPropValue(L"PerUserInitialization", &vFalse, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"PerLocaleInitialization", &vFalse, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vTrue(VARIANT_TRUE, VT_BOOL); hRes = SetPropValue(L"Pure", &vTrue, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vInterval(VT_BSTR, L"interval"); hRes = SetPropQualifier(L"UnloadTimeout", L"SUBTYPE", SYNTAX_FLAVOR, &vInterval); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vProtectedClsid(VT_BSTR, L"CLSID"); CVar vProtectedNamespace(VT_BSTR, L"Namespace"); CVar vProtectedComObject(VT_BSTR, L"COM Object"); CVarVector *pvvReentrancy = new CVarVector(VT_BSTR); if (pvvReentrancy == 0) throw CX_MemoryException(); if (pvvReentrancy->Add(vProtectedClsid) != CVarVector::no_error) throw CX_MemoryException(); if (pvvReentrancy->Add(vProtectedNamespace) != CVarVector::no_error) throw CX_MemoryException(); if (pvvReentrancy->Add(vProtectedComObject) != CVarVector::no_error) throw CX_MemoryException(); CVar vReentrancy(pvvReentrancy, TRUE); hRes = SetPropQualifier(L"InitializationReentrancy", L"Values", WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS, &vReentrancy); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vLevelNone(VT_BSTR, L"None"); CVarVector* pvvLevel = new CVarVector(VT_BSTR); if (pvvLevel == 0) throw CX_MemoryException(); if (pvvLevel->Add(vLevelNone) != CVarVector::no_error) throw CX_MemoryException(); CVar vLevel(pvvLevel, TRUE); hRes = SetPropQualifier(L"ImpersonationLevel", L"Values", WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS, &vLevel); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"HostingModel", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vHosting_WmiCore (VT_BSTR, L"WmiCore"); CVar vHosting_WmiCoreSelfHost (VT_BSTR, L"WmiCoreOrSelfHost"); CVar vHosting_SelfHost (VT_BSTR, L"SelfHost"); CVar vHosting_Decoupled (VT_BSTR, L"Decoupled"); CVar vHosting_LocalSystemHost (VT_BSTR, L"LocalSystemHost"); CVar vHosting_LocalSystemHostOrSelfHost (VT_BSTR, L"LocalSystemHostOrSelfHost"); CVar vHosting_LocalServiceHost (VT_BSTR, L"LocalServiceHost"); CVar vHosting_NetworkServiceHost (VT_BSTR, L"NetworkServiceHost"); CVar vHosting_UserHost (VT_BSTR, L"UserHost");
CVarVector *pvvHostingModels = new CVarVector(VT_BSTR); if (pvvHostingModels == 0) throw CX_MemoryException();
if (pvvLevel->Add(vHosting_WmiCore) != CVarVector::no_error) throw CX_MemoryException(); if (pvvLevel->Add(vHosting_WmiCoreSelfHost) != CVarVector::no_error) throw CX_MemoryException(); if (pvvLevel->Add(vHosting_SelfHost) != CVarVector::no_error) throw CX_MemoryException(); if (pvvLevel->Add(vHosting_Decoupled) != CVarVector::no_error) throw CX_MemoryException(); if (pvvLevel->Add(vHosting_LocalSystemHost) != CVarVector::no_error) throw CX_MemoryException(); if (pvvLevel->Add(vHosting_LocalSystemHostOrSelfHost) != CVarVector::no_error) throw CX_MemoryException(); if (pvvLevel->Add(vHosting_LocalServiceHost) != CVarVector::no_error) throw CX_MemoryException(); if (pvvLevel->Add(vHosting_NetworkServiceHost) != CVarVector::no_error) throw CX_MemoryException(); if (pvvLevel->Add(vHosting_UserHost) != CVarVector::no_error) throw CX_MemoryException();
CVar vHostingModels(pvvHostingModels, TRUE); hRes = SetPropQualifier(L"HostingModel", L"Values", WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS, &vHostingModels); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"Concurrency", &vNull, CIM_SINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"SupportsSendStatus", &vNull, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"SupportsExplicitShutdown", &vNull, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"SupportsExtendedStatus", &vNull, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"SupportsThrottling", &vNull, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"OperationTimeoutInterval", &vNull, CIM_DATETIME); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropQualifier(L"OperationTimeoutInterval", L"SUBTYPE", SYNTAX_FLAVOR, &vInterval); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"InitializationTimeoutInterval", &vNull, CIM_DATETIME); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropQualifier(L"InitializationTimeoutInterval", L"SUBTYPE", SYNTAX_FLAVOR, &vInterval); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"SupportsQuotas", &vNull, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"Enabled", &vNull, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"SupportsShutdown", &vNull, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"SecurityDescriptor", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
}
void CProviderRegistrationClass::Init() { CSystemClass System; System.Init(); HRESULT hRes =CreateDerivedClass(&System); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__ProviderRegistration"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"Provider", &vNull, CIM_REFERENCE); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vCimtype(VT_BSTR, L"ref:__Provider"); hRes = SetPropQualifier(L"Provider", L"cimtype", 0, &vCimtype); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"abstract", &vk, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); };
void CObjectProviderRegistrationClass::Init() { CProviderRegistrationClass RegClass; RegClass.Init(); HRESULT hRes = CreateDerivedClass(&RegClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__ObjectProviderRegistration"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull();
CVar vFalse(VARIANT_FALSE, VT_BOOL);
hRes = SetPropValue(L"SupportsPut", &vFalse, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"SupportsGet", &vFalse, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"SupportsDelete", &vFalse, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"SupportsEnumeration", &vFalse, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"QuerySupportLevels", &vNull, CIM_STRING | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vZero; vZero.SetLong(0); hRes = SetPropValue(L"InteractionType", &vZero, CIM_SINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"abstract", &vk, ABSTRACT_FLAVOR);
CVar vPull(VT_BSTR, L"Pull"); CVar vPush(VT_BSTR, L"Push"); CVar vPushVerify(VT_BSTR, L"PushVerify"); CVarVector* pvvInteraction = new CVarVector(VT_BSTR); if (pvvInteraction == 0) throw CX_MemoryException(); if (pvvInteraction->Add(vPull) != CVarVector::no_error) throw CX_MemoryException(); if (pvvInteraction->Add(vPush) != CVarVector::no_error) throw CX_MemoryException(); if (pvvInteraction->Add(vPushVerify) != CVarVector::no_error) throw CX_MemoryException(); CVar vInteraction(pvvInteraction, TRUE); hRes = SetPropQualifier(L"InteractionType", L"Values", WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS, &vInteraction); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vUnarySelect(VT_BSTR, L"WQL:UnarySelect"); CVar vProvDef(VT_BSTR, L"WQL:V1ProviderDefined"); CVar vAssoc(VT_BSTR, L"WQL:Associators"); CVar vRef(VT_BSTR, L"WQL:References"); CVarVector* pvvQueries = new CVarVector(VT_BSTR); if (pvvQueries == 0) throw CX_MemoryException(); if (pvvQueries->Add(vUnarySelect) != CVarVector::no_error) throw CX_MemoryException(); if (pvvQueries->Add(vRef) != CVarVector::no_error) throw CX_MemoryException(); if (pvvQueries->Add(vAssoc) != CVarVector::no_error) throw CX_MemoryException(); if (pvvQueries->Add(vProvDef) != CVarVector::no_error) throw CX_MemoryException(); CVar vQueries(pvvQueries, TRUE); hRes = SetPropQualifier(L"QuerySupportLevels", L"ValueMap", WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS, &vQueries); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"SupportsBatching", &vNull, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"SupportsTransactions", &vNull, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CClassProviderRegistrationClass::Init() { CObjectProviderRegistrationClass ObjectClass; ObjectClass.Init(); HRESULT hRes = CreateDerivedClass(&ObjectClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__ClassProviderRegistration"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull();
hRes = SetPropValue(L"Version", &vNull, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"ResultSetQueries", &vNull, CIM_STRING | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"ReferencedSetQueries", &vNull, CIM_STRING | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"UnsupportedQueries", &vNull, CIM_STRING | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"Provider", L"key", 0, &vk); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"CacheRefreshInterval", &vNull, CIM_DATETIME); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vInterval(VT_BSTR, L"interval"); hRes = SetPropQualifier(L"CacheRefreshInterval", L"SUBTYPE", SYNTAX_FLAVOR, &vInterval); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"PerUserSchema", &vNull, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"ReSynchroniseOnNamespaceOpen", &vNull, CIM_BOOLEAN ); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CInstanceProviderRegistrationClass::Init() { CObjectProviderRegistrationClass ObjectClass; ObjectClass.Init(); HRESULT hRes = CreateDerivedClass(&ObjectClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__InstanceProviderRegistration"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"Provider", L"key", 0, &vk); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CPropertyProviderRegistrationClass::Init() { CProviderRegistrationClass ProvReg; ProvReg.Init(); HRESULT hRes = CreateDerivedClass(&ProvReg); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__PropertyProviderRegistration"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vFalse(VARIANT_FALSE, VT_BOOL); hRes = SetPropValue(L"SupportsPut", &vFalse, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"SupportsGet", &vFalse, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"Provider", L"key", 0, &vk); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CMethodProviderRegistrationClass::Init() { CProviderRegistrationClass ProvReg; ProvReg.Init(); HRESULT hRes = CreateDerivedClass(&ProvReg); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__MethodProviderRegistration"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"Provider", L"key", 0, &vk); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CEventProviderRegistrationClass::Init() { CProviderRegistrationClass ProvReg; ProvReg.Init(); HRESULT hRes = CreateDerivedClass(&ProvReg); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__EventProviderRegistration"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"Provider", L"key", 0, &vk); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"EventQueryList", &vNull, CIM_STRING | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CEventConsumerProviderRegistrationClass::Init() { CProviderRegistrationClass ProvReg; ProvReg.Init(); HRESULT hRes = CreateDerivedClass(&ProvReg); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__EventConsumerProviderRegistration"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vProp; vProp.SetAsNull(); hRes = SetPropValue(L"ConsumerClassNames", &vProp, CIM_STRING | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"Provider", L"key", 0, &vk); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CCIMOMIdentificationClass::Init() { CSystemClass System; System.Init(); HRESULT hRes = CreateDerivedClass(&System); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__CIMOMIdentification"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Registry r1(WBEM_REG_WBEM);
Registry r(WBEM_REG_WINMGMT); SetPropFromReg(&r, __TEXT("Working Directory"), L"WorkingDirectory"); SetPropFromReg(&r, __TEXT("SetupTime"), L"SetupTime"); SetPropFromReg(&r, __TEXT("SetupDate"), L"SetupDate");
// Get the current dll version info
WCHAR wcVer[MAX_PATH]; BOOL bRet = ConfigMgr::GetDllVersion(__TEXT("wbemcore.dll"), __TEXT("ProductVersion"), wcVer, MAX_PATH); if(bRet) { CVar v2(VT_BSTR, wcVer); hRes = SetPropValue(L"VersionUsedToCreateDB", &v2, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); } else { hRes = Put(L"VersionUsedToCreateDB", 0, NULL, VT_BSTR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); } hRes = Put(L"VersionCurrentlyRunning", 0, NULL, VT_BSTR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"singleton", &vk, SINGLETON_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CCIMOMIdentificationClass::SetPropFromReg(Registry * pReg, TCHAR * pcRegName, WCHAR * pwcPropName) {
WCHAR wcTemp[MAX_PATH]; TCHAR *pTemp = NULL; int iRet = pReg->GetStr(pcRegName, &pTemp); if (((iRet != Registry::no_error) && (pReg->GetLastError() == 0)) || ((iRet != Registry::no_error) && (pReg->GetLastError() == ERROR_OUTOFMEMORY))) throw CX_MemoryException(); if (pTemp == NULL) return;
StringCchCopyW(wcTemp, MAX_PATH, pTemp); CVar vVersion(VT_BSTR, wcTemp); HRESULT hRes = SetPropValue(pwcPropName, &vVersion, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) { delete pTemp; throw CX_MemoryException(); }
delete pTemp; }
// __AdapStatus
void CAdapStatusClass::Init() { CSystemClass System; System.Init(); HRESULT hRes = CreateDerivedClass(&System); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__AdapStatus"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"singleton", &vk, SINGLETON_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"LastStartTime", &vEmpty, CIM_DATETIME); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"LastStopTime", &vEmpty, CIM_DATETIME); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"Status", &vEmpty, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
}
void CAdapStatusInstance::Init(CAdapStatusClass* pClass) { if (FAILED(InitNew(pClass, NEW_INSTANCE_PRECREATE_SIZE))) throw CX_MemoryException();
WCHAR wszBuffer[100]; StringCchPrintfW(wszBuffer, 100, L"%04u%02u%02u%02u%02u%02u.%06u:000", 0, 0, 0, 0, 0, 0, 0);
CVar v(VT_BSTR, wszBuffer); HRESULT hRes = SetPropValue(L"LastStartTime", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"LastStopTime", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar Var; //(VT_I4);
Var.SetLong(0); hRes = SetPropValue(L"Status", &Var, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
}
// __CIMOMIdentification
void CIdentificationClass::Init() { CSystemClass System; System.Init(); HRESULT hRes = CreateDerivedClass(&System); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__CIMOMIdentification"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"singleton", &vk, SINGLETON_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"WorkingDirectory", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"SetupTime", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"SetupDate", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"VersionUsedToCreateDB", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"VersionCurrentlyRunning", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CIdentificationInstance::Init(CIdentificationClass* pClass) {
if (FAILED(InitNew(pClass, NEW_INSTANCE_PRECREATE_SIZE))) throw CX_MemoryException();
HRESULT hRes; WCHAR wcVer[MAX_PATH]; BOOL bRet = ConfigMgr::GetDllVersion(__TEXT("wbemcore.dll"), __TEXT("ProductVersion"), wcVer, MAX_PATH); if(bRet) { TCHAR *szDate; TCHAR *szTime; TCHAR *szWorkDir;
//Get the time of installation
Registry r(WBEM_REG_WINMGMT); r.GetStr(__TEXT("SetupDate"), (TCHAR **)&szDate); CDeleteMe<TCHAR> delMe1(szDate); r.GetStr(__TEXT("SetupTime"), (TCHAR **)&szTime); CDeleteMe<TCHAR> delMe2(szTime); r.GetStr(__TEXT("Working Directory"), (TCHAR **)&szWorkDir); CDeleteMe<TCHAR> delMe3(szWorkDir);
if ((szDate == NULL) || (szTime == NULL) || (szWorkDir == NULL)) { return; }
CVar v(VT_BSTR, wcVer); hRes = SetPropValue(L"VersionUsedToCreateDB", &v, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"VersionCurrentlyRunning", &v, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
BSTR TmpBString = SysAllocString(szDate); if (TmpBString) { CVar v2(VT_BSTR,auto_bstr(TmpBString)); hRes = SetPropValue(L"SetupDate", &v2, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); } else { throw CX_MemoryException(); }
TmpBString = SysAllocString(szTime); if (TmpBString) { CVar v3(VT_BSTR,auto_bstr(TmpBString)); hRes = SetPropValue(L"SetupTime", &v3, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); } else { throw CX_MemoryException(); }
TmpBString = SysAllocString(szWorkDir); if (TmpBString) { CVar v4(VT_BSTR,auto_bstr(TmpBString)); hRes = SetPropValue(L"WorkingDirectory", &v4, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); } else { throw CX_MemoryException(); }
}
}
void CCacheControlClass::Init() { CSystemClass System; System.Init(); HRESULT hRes = CreateDerivedClass(&System); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__CacheControl"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"abstract", &vk, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CSpecificCacheControlClass::Init(LPCWSTR wszClassName) { CCacheControlClass CacheControl; CacheControl.Init(); HRESULT hRes = CreateDerivedClass(&CacheControl); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, (LPWSTR)wszClassName); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull();
hRes = SetPropValue(L"ClearAfter", &vNull, CIM_DATETIME); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); CVar vInterval(VT_BSTR, L"interval"); hRes = SetPropQualifier(L"ClearAfter", L"SUBTYPE", SYNTAX_FLAVOR, &vInterval); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"singleton", &vk, SINGLETON_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CCacheControlInstance::Init(CSpecificCacheControlClass* pClass, DWORD dwSeconds) { if (FAILED(InitNew(pClass, NEW_INSTANCE_PRECREATE_SIZE))) throw CX_MemoryException();
DWORD dwDays = dwSeconds / (3600 * 24); dwSeconds -= dwDays * 3600 * 24;
DWORD dwHours = dwSeconds / 3600; dwSeconds -= dwHours * 3600;
DWORD dwMinutes = dwSeconds / 60; dwSeconds -= dwMinutes * 60;
WCHAR wszBuffer[100]; StringCchPrintfW(wszBuffer, 100, L"%04u%02u%02u%02u%02u%02u.%06u:000", 0, 0, dwDays, dwHours, dwMinutes, dwSeconds, 0);
CVar v(VT_BSTR, wszBuffer); HRESULT hRes = SetPropValue(L"ClearAfter", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CActiveNamespacesClass::Init() { CSystemClass System; System.Init(); HRESULT hRes = CreateDerivedClass(&System); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__ListOfEventActiveNamespaces"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"Namespaces", &vNull, CIM_STRING | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"singleton", &vk, SINGLETON_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
//******************************************************************************
void CIndicationRelatedClass::Init() { CSystemClass System; System.Init(); HRESULT hRes = CreateDerivedClass(&System); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__IndicationRelated"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"abstract", &vk, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CEventClass::Init() { CIndicationRelatedClass IndicationRelated; IndicationRelated.Init(); HRESULT hRes = CreateDerivedClass(&IndicationRelated); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__Event"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"TIME_CREATED", &vEmpty, CIM_UINT64); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
vEmpty.SetAsNull(); hRes = SetPropValue(L"SECURITY_DESCRIPTOR", &vEmpty, CIM_FLAG_ARRAY | CIM_UINT8); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); // abstract forever --- all events are such.
hRes = SetQualifier(L"abstract", &vk, WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE | WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS | WBEM_FLAVOR_NOT_OVERRIDABLE); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CEmptyEventClass::Init(LPWSTR wszName) { CEventClass EventClass; EventClass.Init(); HRESULT hRes = CreateDerivedClass(&EventClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, wszName); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CGenericDataEventClass::Init(LPWSTR wszCimType, LPWSTR wszPropSuffix) { CEventClass EventClass; EventClass.Init(); HRESULT hRes = CreateDerivedClass(&EventClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
WString wsClassName = L"__"; wsClassName += wszPropSuffix; wsClassName += L"OperationEvent";
CVar v(VT_BSTR, wsClassName); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vCimType(VT_BSTR, wszCimType); CVar vEmpty; vEmpty.SetAsNull();
WString wsPropName = L"Target"; wsPropName += wszPropSuffix; hRes = SetPropValue(wsPropName, &vEmpty, CIM_OBJECT); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropQualifier(wsPropName, TYPEQUAL, SYNTAX_FLAVOR, &vCimType); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CDataEventClass::Init(CWbemClass& Parent, LPWSTR wszCimType, LPWSTR wszPropSuffix, int nFlags) { HRESULT hRes = CreateDerivedClass(&Parent); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
WString wsClassName = L"__"; wsClassName += wszPropSuffix; if(nFlags == include_new) wsClassName += L"Creation"; else if(nFlags == include_old) wsClassName += L"Deletion"; else wsClassName += L"Modification"; wsClassName += L"Event";
CVar v(VT_BSTR, wsClassName); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
if(nFlags == (include_old | include_new)) { CVar vCimType(VT_BSTR, wszCimType); CVar vEmpty; vEmpty.SetAsNull();
WString wsPropName = L"Previous"; wsPropName += wszPropSuffix; hRes = SetPropValue(wsPropName, &vEmpty, CIM_OBJECT); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropQualifier(wsPropName, TYPEQUAL, SYNTAX_FLAVOR, &vCimType); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); } }
void CMethodEventClass::Init() { CGenericDataEventClass InstanceOp; InstanceOp.Init(L"object", L"Instance");
HRESULT hRes = CreateDerivedClass(&InstanceOp); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__MethodInvocationEvent"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes= SetPropValue(L"Method", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"PreCall", &vEmpty, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"Parameters", &vEmpty, CIM_OBJECT); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CTimerEventClass::Init() { CEventClass EventClass; EventClass.Init(); HRESULT hRes = CreateDerivedClass(&EventClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__TimerEvent"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes= SetPropValue(L"TimerId", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"NumFirings", &vEmpty, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CAggregateEventClass::Init() { CIndicationRelatedClass IndClass; IndClass.Init(); HRESULT hRes = CreateDerivedClass(&IndClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__AggregateEvent"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"NumberOfEvents", &vEmpty, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"Representative", &vEmpty, CIM_OBJECT); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CSystemEventClass::Init() { CEmptyEventClass ExtClass; ExtClass.Init(L"__ExtrinsicEvent"); HRESULT hRes = CreateDerivedClass(&ExtClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__SystemEvent"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CEventDroppedEventClass::Init() { CSystemEventClass SysClass; SysClass.Init(); HRESULT hRes = CreateDerivedClass(&SysClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__EventDroppedEvent"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"Event", &vEmpty, CIM_OBJECT); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"IntendedConsumer", &vEmpty, CIM_REFERENCE); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEventType(VT_BSTR, L"object:__Event"); hRes = SetPropQualifier(L"Event", TYPEQUAL, SYNTAX_FLAVOR, &vEventType); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vConsType(VT_BSTR, L"ref:__EventConsumer"); hRes = SetPropQualifier(L"IntendedConsumer", TYPEQUAL, SYNTAX_FLAVOR, &vConsType); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CQueueOverflowEventClass::Init() { CEventDroppedEventClass DropClass; DropClass.Init(); HRESULT hRes = CreateDerivedClass(&DropClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__EventQueueOverflowEvent"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"CurrentQueueSize", &vEmpty, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vBytes(VT_BSTR, L"bytes"); hRes = SetPropQualifier(L"CurrentQueueSize", L"units", UNITS_FLAVOR, &vBytes); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CConsumerFailureEventClass::Init() { CEventDroppedEventClass DropClass; DropClass.Init(); HRESULT hRes = CreateDerivedClass(&DropClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__ConsumerFailureEvent"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull();
hRes = SetPropValue(L"ErrorCode", &vEmpty, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"ErrorDescription", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"ErrorObject", &vEmpty, CIM_OBJECT); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmbType(VT_BSTR, L"object:__ExtendedStatus"); hRes = SetPropQualifier(L"ErrorObject", L"CIMTYPE", 0, &vEmbType); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CQoSFailureEventClass::Init() { CEventDroppedEventClass DropClass; DropClass.Init(); HRESULT hRes = CreateDerivedClass(&DropClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__QOSFailureEvent"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull();
hRes = SetPropValue(L"ErrorCode", &vEmpty, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"ErrorDescription", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
//******************************************************************************
void CEventConsumerClass::Init() { CIndicationRelatedClass IndicationRelated; IndicationRelated.Init(); HRESULT hRes = CreateDerivedClass(&IndicationRelated); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__EventConsumer"); hRes = SetPropValue(L"__CLASS", &v, 0);
CVar vProp; vProp.SetAsNull();
hRes = SetPropValue(L"MachineName", &vProp, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"MaximumQueueSize", &vProp, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vSid; if(!GetLocalSystemSid(vSid)) throw CX_MemoryException();
hRes = SetPropValue(L"CreatorSID", &vSid, CIM_UINT8 | CIM_FLAG_ARRAY);
if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vt(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"abstract", &vt, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropQualifier(L"CreatorSID", L"read", READ_FLAVOR, &vt); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vBytes(VT_BSTR, L"bytes"); hRes = SetPropQualifier(L"MaximumQueueSize", L"units", UNITS_FLAVOR, &vBytes); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
//******************************************************************************
void CConditionalInstructionClass::Init() { CIndicationRelatedClass IndicationRelated; IndicationRelated.Init(); HRESULT hRes = CreateDerivedClass(&IndicationRelated); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__ConditionalInstruction"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); CVar vTrue(VARIANT_TRUE, VT_BOOL);
hRes = SetPropValue(L"Name", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"Condition", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"ConditionNamespace", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"ConditionLanguage", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vSid; if(!GetLocalSystemSid(vSid)) throw CX_MemoryException();
hRes = SetPropValue(L"CreatorSID", &vSid, CIM_UINT8 | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropQualifier(L"CreatorSID", L"read", READ_FLAVOR, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CEventFilterClass::Init() { #ifdef WHISTLER_UNCUT
CConditionalInstructionClass ConditionalInstruction; #else
CIndicationRelatedClass ConditionalInstruction; #endif
ConditionalInstruction.Init(); HRESULT hRes = CreateDerivedClass(&ConditionalInstruction); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__EventFilter"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); CVar vTrue(VARIANT_TRUE, VT_BOOL);
#ifdef WHISTLER_UNCUT
#else
hRes = SetPropValue(L"Name", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vSid; if(!GetLocalSystemSid(vSid)) throw CX_MemoryException();
hRes = SetPropValue(L"CreatorSID", &vSid, CIM_UINT8 | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropQualifier(L"CreatorSID", L"read", READ_FLAVOR, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
#endif
hRes = SetPropValue(L"QueryLanguage", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"Query", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"EventNamespace", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"EventAccess", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropQualifier(L"Name", L"key", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CEventMonitorClass::Init() { CConditionalInstructionClass ConditionalInstruction; ConditionalInstruction.Init(); HRESULT hRes = CreateDerivedClass(&ConditionalInstruction); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__MonitorInstruction"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); CVar vTrue(VARIANT_TRUE, VT_BOOL);
hRes = SetPropValue(L"QueryLanguage", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"Query", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"TargetNamespace", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropQualifier(L"Name", L"key", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
//******************************************************************************
void CFilterConsumerBindingClass::Init() { CIndicationRelatedClass IndicationRelated; IndicationRelated.Init(); HRESULT hRes = CreateDerivedClass(&IndicationRelated); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__FilterToConsumerBinding"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
//CVar vEmpty(VT_BSTR, L"");
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"Filter", &vEmpty, CIM_REFERENCE); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"Consumer", &vEmpty, CIM_REFERENCE); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vFilterRef(VT_BSTR, L"ref:__EventFilter"); hRes = SetPropQualifier(L"Filter", TYPEQUAL, SYNTAX_FLAVOR, &vFilterRef); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vConsumerRef(VT_BSTR, L"ref:__EventConsumer"); hRes = SetPropQualifier(L"Consumer", TYPEQUAL, SYNTAX_FLAVOR, &vConsumerRef); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vTrue(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"Filter", L"key", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropQualifier(L"Consumer", L"key", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetQualifier(L"Association", &vTrue, ASSOC_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue( L"DeliveryQoS", &vEmpty, CIM_UINT32 ); if ( hRes == WBEM_E_OUT_OF_MEMORY ) throw CX_MemoryException();
CVar vFalse(VARIANT_FALSE, VT_BOOL); hRes = SetPropValue(L"DeliverSynchronously", &vFalse, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"MaintainSecurityContext", &vFalse, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"SlowDownProviders", &vFalse, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vSid; if(!GetLocalSystemSid(vSid)) throw CX_MemoryException();
hRes = SetPropValue(L"CreatorSID", &vSid, CIM_UINT8 | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropQualifier(L"DeliverSynchronously", L"not_null", NOT_NULL_FLAVOR, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropQualifier(L"CreatorSID", L"read", READ_FLAVOR, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CMonitorEventClass::Init(CWbemClass& Parent, LPCWSTR wszClassName) { HRESULT hRes = CreateDerivedClass(&Parent); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, (LPWSTR)wszClassName); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"MonitorName", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"TotalObjects", &vEmpty, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); };
void CMonitorDataEventClass::Init(CWbemClass& Parent, LPCWSTR wszClassName) { HRESULT hRes = CreateDerivedClass(&Parent); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, (LPWSTR)wszClassName); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"RowObject", &vEmpty, CIM_OBJECT); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"GuaranteedNew", &vEmpty, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); };
//*****************************************************************************
void CEventGeneratorClass::Init() { CIndicationRelatedClass IndicationRelated; IndicationRelated.Init(); HRESULT hRes = CreateDerivedClass(&IndicationRelated); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__EventGenerator"); hRes = SetPropValue(L"__CLASS", &v, 0);
CVar vt(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"abstract", &vt, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CTimerInstructionClass::Init() { CEventGeneratorClass EventGenerator; EventGenerator.Init(); HRESULT hRes = CreateDerivedClass(&EventGenerator); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__TimerInstruction"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
//CVar vEmpty(VT_BSTR, L"");
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"TimerId", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vFalse(VARIANT_FALSE, VT_BOOL); hRes = SetPropValue(L"SkipIfPassed", &vFalse, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vTrue(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"TimerId", L"key", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vt(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"abstract", &vt, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CAbsoluteTimerInstructionClass::Init() { CTimerInstructionClass TimerInstruction; TimerInstruction.Init(); HRESULT hRes = CreateDerivedClass(&TimerInstruction); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__AbsoluteTimerInstruction"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
//CVar vEmpty(VT_BSTR, L"");
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"EventDateTime", &vEmpty, CIM_DATETIME); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vTrue(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"EventDateTime", L"not_null", NOT_NULL_FLAVOR, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CIntervalTimerInstructionClass::Init() { CTimerInstructionClass TimerInstruction; TimerInstruction.Init(); HRESULT hRes = CreateDerivedClass(&TimerInstruction); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__IntervalTimerInstruction"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
//CVar vZero((LONG)0);
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"IntervalBetweenEvents", &vEmpty, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vTrue(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"IntervalBetweenEvents", L"not_null", NOT_NULL_FLAVOR, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); CVar vSeconds(VT_BSTR, L"milliseconds"); hRes = SetPropQualifier(L"IntervalBetweenEvents", L"units", UNITS_FLAVOR, &vSeconds); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CTimerNextFiringClass::Init() { CIndicationRelatedClass IndicationRelated; IndicationRelated.Init(); HRESULT hRes = CreateDerivedClass(&IndicationRelated); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__TimerNextFiring"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
//CVar vEmpty(VT_BSTR, L"");
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"TimerId", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"NextEvent64BitTime", &vEmpty, CIM_SINT64); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vTrue(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"TimerId", L"key", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropQualifier(L"NextEvent64BitTime", L"not_null", NOT_NULL_FLAVOR, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
//******************************************************************************
void CSecurityBaseClass::Init() { if ( FAILED( InitEmpty(NEW_CLASS_PRECREATE_SIZE) ) ) { throw CX_MemoryException(); }
CVar v(VT_BSTR, L"__SecurityRelatedClass"); HRESULT hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vTrue; vTrue.SetBool(VARIANT_TRUE); hRes = SetQualifier(L"abstract", &vTrue, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CSubjectClass::Init() { CSecurityBaseClass Base; Base.Init(); HRESULT hRes = CreateDerivedClass(&Base); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__Subject"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"Name", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); CVar vDefAuth(VT_BSTR, L"."); hRes = SetPropValue(L"Authority", &vDefAuth, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vFalse; vFalse.SetBool(VARIANT_FALSE); hRes = SetPropValue(L"Enabled", &vFalse, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"Permissions", &vEmpty, CIM_SINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"ExecuteMethods", &vFalse, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"EditSecurity", &vFalse, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vTrue; vTrue.SetBool(VARIANT_TRUE); hRes = SetPropQualifier(L"Name", L"key", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropQualifier(L"Authority", L"key", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetQualifier(L"abstract", &vTrue, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CUserClass::Init() { CSubjectClass SubjectClass; SubjectClass.Init(); HRESULT hRes = CreateDerivedClass(&SubjectClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__User"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vTrue; vTrue.SetBool(VARIANT_TRUE); hRes = SetQualifier(L"abstract", &vTrue, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CNTLMUserClass::Init() { CUserClass UserClass; UserClass.Init(); HRESULT hRes = CreateDerivedClass(&UserClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__NTLMUser"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"GroupType", &vEmpty, CIM_SINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CGroupClass::Init() { CSubjectClass SubjectClass; SubjectClass.Init(); HRESULT hRes = CreateDerivedClass(&SubjectClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__Group"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vTrue; vTrue.SetBool(VARIANT_TRUE); hRes = SetQualifier(L"abstract", &vTrue, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CNtlmGroupClass::Init() { CSubjectClass SubjectClass; SubjectClass.Init(); HRESULT hRes = CreateDerivedClass(&SubjectClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__NTLMGroup"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"GroupType", &vEmpty, CIM_SINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CNTLM9XUserClass::Init() {
CSecurityBaseClass Base; Base.Init(); HRESULT hRes = CreateDerivedClass(&Base); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__NTLMUser9X"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"Name", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); CVar vDefAuth(VT_BSTR, L"."); hRes = SetPropValue(L"Authority", &vDefAuth, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"Flags", &vEmpty, CIM_SINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"Mask", &vEmpty, CIM_SINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"Type", &vEmpty, CIM_SINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CSystemConfigClass::AddStaticQual(LPWSTR pMethodName) { IWbemQualifierSet* pQualSet = NULL; HRESULT hRes = GetMethodQualifierSet(pMethodName, &pQualSet); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
if(pQualSet) { VARIANT var; var.vt = VT_BOOL; var.boolVal = VARIANT_TRUE; hRes = pQualSet->Put(L"Static", &var, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); pQualSet->Release(); } }
void CSystemConfigClass::Init() { if ( FAILED( InitEmpty(NEW_CLASS_PRECREATE_SIZE) ) ) { throw CX_MemoryException(); } CVar v(VT_BSTR, L"__SystemSecurity"); CVar vEmpty; vEmpty.SetAsNull(); CVar vTrue; vTrue.SetBool(VARIANT_TRUE); CVar vID; vID.SetLong(0);
HRESULT hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetQualifier(L"singleton", &vTrue, SINGLETON_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Add the "uint32 GetSD([out, id(0)]uint8 sd[])" method
CParametersClass * pGetSDOutputArgs = new CParametersClass; if(pGetSDOutputArgs == NULL) throw CX_MemoryException(); pGetSDOutputArgs->Init();
CReleaseMe relMe((IWbemClassObject*)pGetSDOutputArgs); hRes = pGetSDOutputArgs->SetPropValue(L"ReturnValue", &vEmpty, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = pGetSDOutputArgs->SetPropQualifier(L"ReturnValue", L"out", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = pGetSDOutputArgs->SetPropValue(L"SD", &vEmpty, CIM_UINT8 | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = pGetSDOutputArgs->SetPropQualifier(L"SD", L"out", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = pGetSDOutputArgs->SetPropQualifier(L"SD", L"ID", 0, &vID); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Add the method and clean up
hRes = PutMethod(L"GetSD", 0, NULL, pGetSDOutputArgs); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); AddStaticQual(L"GetSD");
// Add the "uint32 Get9XUserList([out, id(0)]instance of __NTLMUser9X ul[])" method
CParametersClass * pGet9XOutputArgs = new CParametersClass; if(pGet9XOutputArgs == NULL) throw CX_MemoryException(); pGet9XOutputArgs->Init();
CReleaseMe relMe1((IWbemClassObject*)pGet9XOutputArgs); hRes = pGet9XOutputArgs->SetPropValue(L"ReturnValue", &vEmpty, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = pGet9XOutputArgs->SetPropQualifier(L"ReturnValue", L"out", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = pGet9XOutputArgs->SetPropValue(L"ul", &vEmpty, CIM_OBJECT | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = pGet9XOutputArgs->SetPropQualifier(L"ul", L"out", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = pGet9XOutputArgs->SetPropQualifier(L"ul", L"ID", 0, &vID); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); CVar vType; vType.SetBSTR(L"object:__ntlmuser9x"); hRes = pGet9XOutputArgs->SetPropQualifier(L"ul", L"CIMTYPE", 0, &vType); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Add the method and clean up
hRes = PutMethod(L"Get9XUserList", 0, NULL, pGet9XOutputArgs); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); AddStaticQual(L"Get9XUserList");
// Add the "uint32 SetSD([in, id(0)]uint8 sd[])" method
CParametersClass * pSetSDInputArgs = new CParametersClass; if(pSetSDInputArgs == NULL) throw CX_MemoryException(); pSetSDInputArgs->Init();
CParametersClass * pSetSDOutputArgs = new CParametersClass; if(pSetSDOutputArgs == NULL) throw CX_MemoryException(); pSetSDOutputArgs->Init();
CReleaseMe relMe2((IWbemClassObject*)pSetSDInputArgs); CReleaseMe relMe3((IWbemClassObject*)pSetSDOutputArgs); hRes = pSetSDInputArgs->SetPropValue(L"SD", &vEmpty, CIM_UINT8 | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = pSetSDInputArgs->SetPropQualifier(L"SD", L"in", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = pSetSDInputArgs->SetPropQualifier(L"SD", L"ID", 0, &vID); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = pSetSDOutputArgs->SetPropValue(L"ReturnValue", &vEmpty, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = pSetSDOutputArgs->SetPropQualifier(L"ReturnValue", L"out", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Add the method
hRes = PutMethod(L"SetSD", 0, pSetSDInputArgs, pSetSDOutputArgs); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
AddStaticQual(L"SetSD");
// Add the "uint32 Set9XUserList([in, id(0)]instance of __NTLMUser9X ul[])" method
CParametersClass * pSet9XInputArgs = new CParametersClass; if(pSet9XInputArgs == NULL) throw CX_MemoryException(); pSet9XInputArgs->Init();
CParametersClass * pSet9XOutputArgs = new CParametersClass; if(pSet9XOutputArgs == NULL) throw CX_MemoryException(); pSet9XOutputArgs->Init();
CReleaseMe relMe4((IWbemClassObject*)pSet9XInputArgs); CReleaseMe relMe5((IWbemClassObject*)pSet9XOutputArgs); hRes = pSet9XInputArgs->SetPropValue(L"ul", &vEmpty, CIM_OBJECT | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = pSet9XInputArgs->SetPropQualifier(L"ul", L"in", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = pSet9XInputArgs->SetPropQualifier(L"ul", L"ID", 0, &vID); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); CVar vCimType; vCimType.SetBSTR(L"object:__ntlmuser9x"); hRes = pSet9XInputArgs->SetPropQualifier(L"ul", L"CIMTYPE", 0, &vCimType); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = pSet9XOutputArgs->SetPropValue(L"ReturnValue", &vEmpty, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = pSet9XOutputArgs->SetPropQualifier(L"ReturnValue", L"out", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Add the method
hRes = PutMethod(L"Set9XUserList", 0, pSet9XInputArgs, pSet9XOutputArgs); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
AddStaticQual(L"Set9XUserList");
// Add the "uint32 GetCallerAccessRights([out, id(0)]sint32 rights)" method
CParametersClass * pGetCallerAccessOutputArgs = new CParametersClass; if(pGetCallerAccessOutputArgs == NULL) throw CX_MemoryException(); pGetCallerAccessOutputArgs->Init();
CReleaseMe relMe6((IWbemClassObject*)pGetCallerAccessOutputArgs); hRes = pGetCallerAccessOutputArgs->SetPropValue(L"ReturnValue", &vEmpty, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = pGetCallerAccessOutputArgs->SetPropQualifier(L"ReturnValue", L"out", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = pGetCallerAccessOutputArgs->SetPropValue(L"rights", &vEmpty, CIM_SINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = pGetCallerAccessOutputArgs->SetPropQualifier(L"rights", L"out", 0, &vTrue); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = pGetCallerAccessOutputArgs->SetPropQualifier(L"rights", L"ID", 0, &vID); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Add the method and clean up
hRes = PutMethod(L"GetCallerAccessRights", 0, NULL, pGetCallerAccessOutputArgs); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); AddStaticQual(L"GetCallerAccessRights");
}
void CSystemConfigInstance::Init(CSystemConfigClass* pClass) { if (FAILED(InitNew(pClass, NEW_INSTANCE_PRECREATE_SIZE))) throw CX_MemoryException(); }
//******************************************************************************
void CErrorObjectClass::Init() { CNotifyStatusClass NotifyClass; NotifyClass.Init(); HRESULT hRes = CreateDerivedClass(&NotifyClass); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__ExtendedStatus"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vEmpty; vEmpty.SetAsNull(); hRes = SetPropValue(L"ProviderName", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"Operation", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"ParameterInfo", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"Description", &vEmpty, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
CErrorObjectClass* CErrorObject::mstatic_pClass = NULL; CStaticCritSec CErrorObject::mstatic_cs; CErrorObject::__CleanUp CErrorObject::cleanup;
CErrorObject::CErrorObject(ADDREF IWbemClassObject* pObject) { // Check for proper inheritance if we have an object.
// Throw an OOM exception if we hit an OOM error condition.
HRESULT hres = ( NULL != pObject ? pObject->InheritsFrom( L"__ExtendedStatus" ) : WBEM_E_FAILED );
if( S_OK == hres ) { m_pObject = (CWbemInstance*)pObject; m_pObject->AddRef(); } else if ( WBEM_E_OUT_OF_MEMORY == hres ) { throw CX_MemoryException(); } else { CInCritSec local_lock (&mstatic_cs); // SEC:REVIEWED 2002-03-22 : Assumes entry
if(mstatic_pClass == NULL) { wmilib::auto_ptr<CErrorObjectClass> p(new CErrorObjectClass); if (p.get() == 0) { throw CX_MemoryException(); } p->Init(); mstatic_pClass = p.release(); }
m_pObject = new CWbemInstance; if (m_pObject == 0) throw CX_MemoryException();
// Only reason this fails is OOM
if ( FAILED( m_pObject->InitNew(mstatic_pClass, NEW_INSTANCE_PRECREATE_SIZE) ) ) { throw CX_MemoryException(); } } }
CErrorObject::~CErrorObject() { m_pObject->Release(); }
RELEASE_ME IWbemClassObject* CErrorObject::GetObject() { m_pObject->AddRef(); return (IWbemClassObject*)m_pObject; }
BOOL CErrorObject::SetStatusCode(SCODE sRes) { CVar v((LONG)sRes); HRESULT hRes = m_pObject->SetPropValue(L"StatusCode", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); return SUCCEEDED(hRes); }
BOOL CErrorObject::SetOperation(COPY LPWSTR wszOperation) { CVar vOldOperation; HRESULT hRes = m_pObject->GetProperty(L"Operation", &vOldOperation); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); if(vOldOperation.IsNull()) { CVar v(VT_BSTR, wszOperation); hRes = m_pObject->SetPropValue(L"Operation", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
return SUCCEEDED(hRes); } else return FALSE; }
BOOL CErrorObject::SetParamInformation(COPY LPWSTR wszExtraInfo) { CVar vOldInfo; HRESULT hRes = m_pObject->GetProperty(L"ParameterInfo", &vOldInfo); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); if(vOldInfo.IsNull()) { CVar v(VT_BSTR, wszExtraInfo); hRes = m_pObject->SetPropValue(L"ParameterInfo", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
return SUCCEEDED(hRes); } else return FALSE; }
BOOL CErrorObject::SetProviderName(COPY LPWSTR wszName) { // Check if already set
// ====================
CVar vOldName; HRESULT hRes = m_pObject->GetProperty(L"ProviderName", &vOldName); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); if(vOldName.IsNull() || vOldName.GetType() == VT_EMPTY || !wbem_wcsicmp(vOldName.GetLPWSTR(), L"WinMgmt")) { CVar v(VT_BSTR, wszName); hRes = m_pObject->SetPropValue(L"ProviderName", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
return SUCCEEDED(hRes); } else return WBEM_S_NO_ERROR; }
BOOL CErrorObject::MarkAsInternal() { return SetProviderName(L"WinMgmt"); }
BOOL CErrorObject::ContainsOperationInfo() { CVar v; HRESULT hRes = m_pObject->GetProperty(L"Operation", &v); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); if(FAILED(hRes)) return FALSE; return !v.IsNull(); }
BOOL CErrorObject::ContainsStatusCode() { CVar v; HRESULT hRes = m_pObject->GetProperty(L"StatusCode", &v); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); if(FAILED(hRes)) return FALSE; return !v.IsNull(); }
//******************************************************************************
/*
Blackcomb only
LPCWSTR g_awszTxnClass[] = { L"Prestart", L"Pending", L"Precommit", L"Commit", L"EventPlayback", L"Completed", L"RolledBack", L"Cleanup", L"Fatal" }; void CTransactionClass::Init() { InitEmpty(NEW_CLASS_PRECREATE_SIZE);
CVar v(VT_BSTR, L"__Transaction"); HRESULT hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"GUID", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Mark GUID as key
// ================
CVar vb(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"GUID", L"key", 0, &vb); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"ClientComment", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"ClientID", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"State", &vNull, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
SAFEARRAY *pArray = NULL; SAFEARRAYBOUND aBounds[1]; long lLBound = 0, lUBound = 9;
aBounds[0].cElements = lUBound; aBounds[0].lLbound = 0;
pArray = SafeArrayCreate(VT_BSTR, 1, aBounds); if (pArray) { long lNumElements = sizeof(g_awszTxnClass)/sizeof(LPCWSTR);
for ( long lCtr = 0; lCtr < lNumElements; lCtr++ ) { BSTR bstrTemp = SysAllocString( g_awszTxnClass[lCtr] ); if ( NULL == bstrTemp ) { throw CX_MemoryException(); }
// SafeArrayPutElement copies the BSTR so we still have to free it
CSysFreeMe sfm( bstrTemp ); long lTemp[1]; lTemp[0] = lCtr; if ( FAILED( SafeArrayPutElement(pArray, lTemp, bstrTemp) ) ) { throw CX_MemoryException(); } }
CVar vc(VT_BSTR, pArray); hRes = SetPropQualifier(L"State", L"values", VALUES_FLAVOR, &vc); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// We won't need the safe array anymore, so go ahead and destroy it
SafeArrayDestroy( pArray ); }
hRes = SetPropValue(L"Start", &vNull, CIM_DATETIME); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"LastUpdate", &vNull, CIM_DATETIME); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
}
void CUncommittedEventClass::Init() { InitEmpty(NEW_CLASS_PRECREATE_SIZE);
CVar v(VT_BSTR, L"__UncommittedEvent"); HRESULT hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"EventID", &vNull, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Mark EventID as key, keyhole.
// =============================
CVar vb(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"EventID", L"key", 0, &vb); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropQualifier(L"EventID", L"keyhole", 0, &vb); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Transaction GUID is indexed
// ===========================
hRes = SetPropValue(L"TransactionGUID", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropQualifier(L"TransactionGUID", L"indexed", 0, &vb); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"NamespaceName", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"ClassName", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"OldObject", &vNull, CIM_OBJECT); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); hRes = SetPropValue(L"NewObject", &vNull, CIM_OBJECT); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"Transacted", &vNull, CIM_BOOLEAN); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
*/
//******************************************************************************
/*
void CNamespaceMapClass::Init() { CNamespaceClass NsBase; NsBase.Init(); HRESULT hRes = CreateDerivedClass(&NsBase); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__WmiMappedDriverNamespace"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"CLSID", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"Server", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"Database", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"UserID", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"Password", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"Config", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); } */
//******************************************************************************
/* The following system classes were removed for Whistler, but may
be reintroduced for Blackcomb
void CClassInstanceSecurity::Init() { InitEmpty(NEW_CLASS_PRECREATE_SIZE);
CVar v(VT_BSTR, L"__ClassInstancesSecurity"); HRESULT hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"Name", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vb(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"Name", L"key", 0, &vb); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
}
void CClassSecurity::Init() { InitEmpty(NEW_CLASS_PRECREATE_SIZE);
CVar v(VT_BSTR, L"__ClassSecurity"); HRESULT hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"Name", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vb(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"Name", L"key", 0, &vb); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
} */
void CClasses::Init() { if ( FAILED( InitEmpty(NEW_CLASS_PRECREATE_SIZE) ) ) { throw CX_MemoryException(); }
CVar v(VT_BSTR, L"__Classes"); HRESULT hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vb(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"singleton", &vb, SINGLETON_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
}
//================================================================
struct { const wchar_t *wszPropName; DWORD dwPropValue; } g_arbitratorConfigurationDefaults[] = { { L"OutstandingTasksTotal", 3000 }, //Total
{ L"OutstandingTasksPerUser", 30 }, //Total
{ L"TaskThreadsTotal", 30 }, //Total
{ L"TaskThreadsPerUser", 3 }, //Total
{ L"QuotaRetryCount", 10 }, //Total
{ L"QuotaRetryWaitInterval", 15000 }, //Milliseconds
{ L"TotalUsers", 50 }, //Total
{ L"TotalCacheMemoryPerTask", 1024 }, //1 MB
{ L"TotalCacheMemoryPerUser", 2048 }, //2 MB
{ L"TotalCacheMemory", 10240 }, //10 MB
{ L"TotalCacheDiskPerTask", 51250 }, //50 MB
{ L"TotalCacheDiskPerUser", 102500 }, //100 MB
{ L"TotalCacheDisk", 1048576 }, //1 GB
{ L"TemporarySubscriptionsPerUser", 1000 }, //Total
{ L"PermanentSubscriptionsPerUser", 1000 }, //Total
{ L"PollingInstructionsPerUser", 1000 }, //Total
{ L"PollingMemoryPerUser", 5000000 }, //Total
{ L"TemporarySubscriptionsTotal", 10000 }, //Total
{ L"PermanentSubscriptionsTotal", 10000 }, //Total
{ L"PollingInstructionsTotal", 10000 }, //Total
{ L"PollingMemoryTotal", 10000000 }, //Total
{ NULL, 0 } }; void CArbitratorConfiguration::Init() { //This is derived from __SystemClass
CSystemClass System; System.Init(); HRESULT hRes = CreateDerivedClass(&System); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
//Set class name
{ CVar v(VT_BSTR, L"__ArbitratorConfiguration"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
//Singleton object
{ CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"singleton", &vk, SINGLETON_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
//Add properties
CVar vs; vs.SetAsNull(); for (int i = 0; g_arbitratorConfigurationDefaults[i].wszPropName != NULL; i++) { hRes = SetPropValue(g_arbitratorConfigurationDefaults[i].wszPropName, &vs, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
}
void CArbitratorConfigurationInstance::Init(CArbitratorConfiguration* pClass) { if (FAILED(InitNew(pClass, NEW_INSTANCE_PRECREATE_SIZE))) throw CX_MemoryException();
//Set propery values
for (int i = 0; g_arbitratorConfigurationDefaults[i].wszPropName != NULL; i++) { CVar var; var.SetLong(g_arbitratorConfigurationDefaults[i].dwPropValue); HRESULT hRes = SetPropValue(g_arbitratorConfigurationDefaults[i].wszPropName, &var, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); } }
/******************************************************************************
* * Name: * * * Description: * * *****************************************************************************/
struct { const wchar_t *wszPropName; UINT32 dwPropValue; } g_ProviderHostQuotaConfigurationDefaultsUint32[] = { { L"ThreadsPerHost", 0x00000100 }, { L"HandlesPerHost", 0x00001000 }, { L"ProcessLimitAllHosts", 0x00000020 }, { NULL, 0 } } ;
struct { const wchar_t *wszPropName; UINT64 dwPropValue; } g_ProviderHostQuotaConfigurationDefaultsUint64[] = { { L"MemoryPerHost", 0x0000000008000000 }, { L"MemoryAllHosts", 0x0000000040000000 }, { NULL, 0 } } ;
/******************************************************************************
* * Name: * * * Description: * * *****************************************************************************/
void CProviderHostQuotaConfiguration::Init() { //This is derived from __SystemClass
CSystemClass System; System.Init(); HRESULT hRes = CreateDerivedClass(&System); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
//Set class name
{ CVar v(VT_BSTR, L"__ProviderHostQuotaConfiguration"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
//Singleton object
{ CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"singleton", &vk, SINGLETON_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
//Add properties
CVar vs; vs.SetAsNull(); for (int i = 0; g_ProviderHostQuotaConfigurationDefaultsUint32[i].wszPropName != NULL; i++) { hRes = SetPropValue(g_ProviderHostQuotaConfigurationDefaultsUint32[i].wszPropName, &vs, CIM_UINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
for (i = 0; g_ProviderHostQuotaConfigurationDefaultsUint64[i].wszPropName != NULL; i++) { hRes = SetPropValue(g_ProviderHostQuotaConfigurationDefaultsUint64[i].wszPropName, &vs, CIM_UINT64); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
}
/******************************************************************************
* * Name: * * * Description: * * *****************************************************************************/
void CProviderHostQuotaConfigurationInstance::Init(CProviderHostQuotaConfiguration* pClass) { if (FAILED(InitNew(pClass, NEW_INSTANCE_PRECREATE_SIZE))) throw CX_MemoryException();
//Set propery values
for (int i = 0; g_ProviderHostQuotaConfigurationDefaultsUint32[i].wszPropName != NULL; i++) { CVar var; var.SetLong(g_ProviderHostQuotaConfigurationDefaultsUint32[i].dwPropValue); HRESULT hRes = SetPropValue(g_ProviderHostQuotaConfigurationDefaultsUint32[i].wszPropName, &var, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
_IWmiObject *t_FastThis = NULL ; HRESULT hRes = QueryInterface ( IID__IWmiObject , ( void ** ) & t_FastThis ) ; if ( SUCCEEDED ( hRes ) ) { for (i = 0; g_ProviderHostQuotaConfigurationDefaultsUint64[i].wszPropName != NULL; i++) { hRes = t_FastThis->WriteProp (
g_ProviderHostQuotaConfigurationDefaultsUint64[i].wszPropName, 0 , sizeof ( UINT64 ) , 1 , CIM_UINT64 , & g_ProviderHostQuotaConfigurationDefaultsUint64[i].dwPropValue ) ;
if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
t_FastThis->Release () ; } }
/*
Removed for Whistler
void CComTaxonomyClass::Init() { InitEmpty(NEW_CLASS_PRECREATE_SIZE);
CVar v(VT_BSTR, L"__COMTaxonomy"); HRESULT hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vk(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"abstract", &vk, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
void CComInterfaceSetClass::Init() { CComTaxonomyClass ComTaxonomy; ComTaxonomy.Init(); HRESULT hRes = CreateDerivedClass(&ComTaxonomy); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__COMInterfaceSet"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"CLSID", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Mark CLSID as 'key'.
// ===================
CVar vb(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"CLSID", L"key", 0, &vb); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"Name", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"IID", &vNull, CIM_STRING | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"IIDNames", &vNull, CIM_STRING | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
}
void CComDispatchElementClass::Init() { CComTaxonomyClass ComTaxonomy; ComTaxonomy.Init(); HRESULT hRes = CreateDerivedClass(&ComTaxonomy); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__COMDispatchElement"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"CLSID", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"DISPID", &vNull, CIM_SINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Mark CLSID and DispId as 'key'.
// ===================
CVar vb(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"CLSID", L"key", 0, &vb); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropQualifier(L"DISPID", L"key", 0, &vb); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"Name", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"NamedArguments", &vNull, CIM_STRING | CIM_FLAG_ARRAY ); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"NamedArgumentDISPIDs", &vNull, CIM_SINT32 | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"NamedArgumentTypes", &vNull, CIM_STRING | CIM_FLAG_ARRAY); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
}
void CComDispatchInfoClass::Init() { InitEmpty(NEW_CLASS_PRECREATE_SIZE);
CVar v(VT_BSTR, L"__COMDispatchInfo"); HRESULT hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"CLSID", &vNull, CIM_STRING); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"DISPID", &vNull, CIM_SINT32); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"NamedArgumentDISPIDs", &vNull, CIM_SINT32 | CIM_FLAG_ARRAY ); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
}
void CComBindingClass::Init() { InitEmpty(NEW_CLASS_PRECREATE_SIZE);
CVar v(VT_BSTR, L"__COMBinding"); HRESULT hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vt(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"abstract", &vt, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
}
void CComInterfaceSetBindingClass::Init() { CComBindingClass ComBinding; ComBinding.Init(); HRESULT hRes = CreateDerivedClass(&ComBinding); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__COMInterfaceSetToClassBinding"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Association
CVar vt(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"association", &vt, ASSOC_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// HasClassRefs
hRes = SetQualifier(L"HasClassRefs", &vt, ASSOC_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"InterfaceSet", &vNull, CIM_REFERENCE); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"TargetClass", &vNull, CIM_REFERENCE); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Mark proeprties as 'key'.
// ===================
CVar vb(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"InterfaceSet", L"key", 0, &vb); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropQualifier(L"TargetClass", L"key", 0, &vb); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Both properties are strongly typed references.
v.Empty(); v.SetBSTR( L"ref:__COMInterfaceSet" ); hRes = SetPropQualifier(L"InterfaceSet", L"CIMTYPE", 0, &v); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
v.Empty(); v.SetBSTR( L"ref:__ClassVector" ); hRes = SetPropQualifier(L"TargetClass", L"CIMTYPE", 0, &v); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
}
void CComDispatchElementBindingClass::Init() { CComBindingClass ComBinding; ComBinding.Init(); HRESULT hRes = CreateDerivedClass(&ComBinding); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar v(VT_BSTR, L"__COMDispatchElementToClassBinding"); hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Association
CVar vt(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"association", &vt, ASSOC_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// HasClassRefs
hRes = SetQualifier(L"HasClassRefs", &vt, ASSOC_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"DispatchElement", &vNull, CIM_REFERENCE); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropValue(L"TargetClass", &vNull, CIM_REFERENCE); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Mark proeprties as 'key'.
// ===================
CVar vb(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"DispatchElement", L"key", 0, &vb); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
hRes = SetPropQualifier(L"TargetClass", L"key", 0, &vb); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
// Both properties are strongly typed references.
v.Empty(); v.SetBSTR( L"ref:__COMDispatchElement" ); hRes = SetPropQualifier(L"DispatchElement", L"CIMTYPE", 0, &v); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
v.Empty(); v.SetBSTR( L"ref:__ClassVector" ); hRes = SetPropQualifier(L"TargetClass", L"CIMTYPE", 0, &v); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
}
void CClassVectorClass::Init() { InitEmpty(NEW_CLASS_PRECREATE_SIZE);
CVar v(VT_BSTR, L"__ClassVector"); HRESULT hRes = SetPropValue(L"__CLASS", &v, 0); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vt(VARIANT_TRUE, VT_BOOL); hRes = SetQualifier(L"vector", &vt, ABSTRACT_FLAVOR); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vNull; vNull.SetAsNull(); hRes = SetPropValue(L"ClassPath", &vNull, CIM_REFERENCE); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException();
CVar vb(VARIANT_TRUE, VT_BOOL); hRes = SetPropQualifier(L"ClassPath", L"key", 0, &vb); if (hRes == WBEM_E_OUT_OF_MEMORY) throw CX_MemoryException(); }
*/
|