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.
1636 lines
40 KiB
1636 lines
40 KiB
/*++
|
|
|
|
Copyright (C) 1996-2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ProvRegInfo.h
|
|
|
|
Abstract:
|
|
|
|
|
|
History:
|
|
|
|
--*/
|
|
|
|
#ifndef _Server_ProviderRegistrationInfo_H
|
|
#define _Server_ProviderRegistrationInfo_H
|
|
|
|
#include "ProvDnf.h"
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
HRESULT VerifySecureLocalSystemProviders ( wchar_t *a_Clsid ) ;
|
|
HRESULT VerifySecureSvcHostProviders ( wchar_t *a_Clsid ) ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
extern GENERIC_MAPPING g_ProviderBindingMapping ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
#define DEFAULT_PROVIDER_TIMEOUT 120000
|
|
#define DEFAULT_PROVIDER_LOAD_TIMEOUT 120000
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
enum Enum_ThreadingModel
|
|
{
|
|
e_Apartment = 0 ,
|
|
e_Both ,
|
|
e_Free ,
|
|
e_Neutral ,
|
|
e_ThreadingModel_Unknown
|
|
} ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
enum Enum_Synchronization
|
|
{
|
|
e_Ignored = 0 ,
|
|
e_None ,
|
|
e_Supported ,
|
|
e_Required ,
|
|
e_RequiresNew ,
|
|
e_Synchronization_Unknown
|
|
} ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
enum Enum_Boolean
|
|
{
|
|
e_False = 0 ,
|
|
e_True ,
|
|
e_Boolean_Unknown
|
|
} ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
enum Enum_ImpersonationLevel
|
|
{
|
|
e_Impersonate_None = 0 ,
|
|
e_Impersonate ,
|
|
e_ImpersonationLevel_Unknown
|
|
} ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
enum Enum_InitializationReentrancy
|
|
{
|
|
e_InitializationReentrancy_Clsid = 0 ,
|
|
e_InitializationReentrancy_Namespace ,
|
|
e_InitializationReentrancy_None ,
|
|
e_InitializationReentrancy_Unknown
|
|
} ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
enum Enum_InteractionType
|
|
{
|
|
e_InteractionType_Pull = 0 ,
|
|
e_InteractionType_Push ,
|
|
e_InteractionType_PushVerify ,
|
|
e_InteractionType_Unknown
|
|
} ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
#define e_QuerySupportLevels_UnarySelect ( 1 )
|
|
#define e_QuerySupportLevels_References ( e_QuerySupportLevels_UnarySelect << 1 )
|
|
#define e_QuerySupportLevels_Associators ( e_QuerySupportLevels_References << 1 )
|
|
#define e_QuerySupportLevels_V1ProviderDefined ( e_QuerySupportLevels_Associators << 1 )
|
|
#define e_QuerySupportLevels_None ( e_QuerySupportLevels_V1ProviderDefined << 1 )
|
|
#define e_QuerySupportLevels_Unknown ( 0 )
|
|
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
typedef ULONGLONG Enum_PropertyMask ;
|
|
|
|
#define e_ThreadingModel 0x1
|
|
#define e_Synchronization 0x2
|
|
#define e_Clsid 0x4
|
|
#define e_ClientClsid 0x8
|
|
#define e_DefaultMachineName 0x10
|
|
#define e_UnloadTimeout 0x20
|
|
#define e_ImpersonationLevel 0x40
|
|
#define e_InitializationReentrancy 0x80
|
|
#define e_InitializeAsAdminFirst 0x100
|
|
#define e_PerUserInitialization 0x200
|
|
#define e_PerLocaleInitialization 0x400
|
|
#define e_Pure 0x800
|
|
#define e_Hosting 0x1000
|
|
#define e_HostingGroup 0x2000
|
|
#define e_SupportsPut 0x4000
|
|
#define e_SupportsGet 0x8000
|
|
#define e_SupportsDelete 0x10000
|
|
#define e_SupportsEnumeration 0x20000
|
|
#define e_QuerySupportLevels 0x40000
|
|
#define e_InteractionType 0x80000
|
|
#define e_ResultSetQueries 0x100000
|
|
#define e_UnSupportedQueries 0x200000
|
|
#define e_ReferencedSetQueries 0x400000
|
|
#define e_ClearAfter 0x800000
|
|
#define e_SupportsThrottling 0x1000000
|
|
#define e_ConcurrentIndependantRequests 0x2000000
|
|
#define e_SupportsSendStatus 0x4000000
|
|
#define e_OperationTimeoutInterval 0x8000000
|
|
#define e_InitializationTimeoutInterval 0x10000000
|
|
#define e_SupportsQuotas 0x20000000
|
|
#define e_Enabled 0x40000000
|
|
#define e_SupportsShutdown 0x80000000
|
|
#define e_SupportsBatching 0x100000000
|
|
#define e_SupportsTransactions 0x200000000
|
|
#define e_CacheRefreshInterval 0x400000000
|
|
#define e_PerUserSchema 0x800000000
|
|
#define e_ReSynchroniseOnNamespaceOpen 0x1000000000
|
|
#define e_MemoryPerHost 0x2000000000
|
|
#define e_MemoryAllHosts 0x4000000000
|
|
#define e_ThreadsPerHost 0x8000000000
|
|
#define e_HandlesPerHost 0x10000000000
|
|
#define e_ProcessLimitAllHosts 0x20000000000
|
|
#define e_Version 0x40000000000
|
|
#define e_SecurityDescriptor 0x80000000000
|
|
#define e_Name 0x100000000000
|
|
|
|
#define e_All 0xFFFFFFFFFFFFFFFF
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CServerObject_GlobalRegistration
|
|
{
|
|
private:
|
|
|
|
LONG m_ReferenceCount ;
|
|
|
|
protected:
|
|
|
|
HRESULT m_Result ;
|
|
|
|
LPWSTR m_Object_UnloadTimeout ;
|
|
ULONG m_Object_UnloadTimeoutMilliSeconds ;
|
|
|
|
LPWSTR m_Event_UnloadTimeout ;
|
|
ULONG m_Event_UnloadTimeoutMilliSeconds ;
|
|
|
|
IWbemContext *m_Context ;
|
|
IWbemPath *m_Namespace ;
|
|
IWbemServices *m_Repository ;
|
|
|
|
protected:
|
|
|
|
static LPCWSTR s_Strings_Wmi_ClearAfter ;
|
|
static LPCWSTR s_Strings_Wmi___ObjectProviderCacheControl ;
|
|
static LPCWSTR s_Strings_Wmi___EventProviderCacheControl ;
|
|
static LPCWSTR s_Strings_Wmi_Class ;
|
|
static LPCWSTR s_Strings_Wmi_s_Strings_Query_Object ;
|
|
static LPCWSTR s_Strings_Wmi_s_Strings_Path_Object ;
|
|
static LPCWSTR s_Strings_Wmi_s_Strings_Query_Event ;
|
|
static LPCWSTR s_Strings_Wmi_s_Strings_Path_Event ;
|
|
|
|
protected:
|
|
public: /* Internal */
|
|
|
|
CServerObject_GlobalRegistration () ;
|
|
~CServerObject_GlobalRegistration () ;
|
|
|
|
ULONG AddRef () ;
|
|
ULONG Release () ;
|
|
|
|
HRESULT SetContext (
|
|
|
|
IWbemContext *a_Context ,
|
|
IWbemPath *a_Namespace ,
|
|
IWbemServices *a_Repository
|
|
) ;
|
|
|
|
HRESULT QueryProperties (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemClassObject *a_Object ,
|
|
LPWSTR &a_UnloadTimeout ,
|
|
ULONG &a_UnloadTimeoutMilliSeconds
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask
|
|
) ;
|
|
|
|
wchar_t *GetUnloadTimeout () { return m_Object_UnloadTimeout ; }
|
|
ULONG GetUnloadTimeoutMilliSeconds () { return m_Object_UnloadTimeoutMilliSeconds ; }
|
|
|
|
wchar_t *GetObjectUnloadTimeout () { return m_Object_UnloadTimeout ; }
|
|
ULONG GetObjectUnloadTimeoutMilliSeconds () { return m_Object_UnloadTimeoutMilliSeconds ; }
|
|
|
|
wchar_t *GetEventUnloadTimeout () { return m_Event_UnloadTimeout ; }
|
|
ULONG GetEventUnloadTimeoutMilliSeconds () { return m_Event_UnloadTimeoutMilliSeconds ; }
|
|
|
|
HRESULT GetResult () { return m_Result ; }
|
|
};
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CServerObject_HostQuotaRegistration
|
|
{
|
|
private:
|
|
|
|
LONG m_ReferenceCount ;
|
|
|
|
protected:
|
|
|
|
HRESULT m_Result ;
|
|
|
|
SIZE_T m_MemoryPerHost ;
|
|
SIZE_T m_MemoryAllHosts ;
|
|
ULONG m_ThreadsPerHost ;
|
|
ULONG m_HandlesPerHost ;
|
|
ULONG m_ProcessLimitAllHosts ;
|
|
|
|
IWbemContext *m_Context ;
|
|
IWbemPath *m_Namespace ;
|
|
IWbemServices *m_Repository ;
|
|
|
|
protected:
|
|
|
|
static LPCWSTR s_Strings_Wmi_HostQuotas_Query ;
|
|
static LPCWSTR s_Strings_Wmi_HostQuotas_Path ;
|
|
static LPCWSTR s_Strings_Wmi_MemoryPerHost ;
|
|
static LPCWSTR s_Strings_Wmi_MemoryAllHosts ;
|
|
static LPCWSTR s_Strings_Wmi_ThreadsPerHost ;
|
|
static LPCWSTR s_Strings_Wmi_HandlesPerHost ;
|
|
static LPCWSTR s_Strings_Wmi_ProcessLimitAllHosts ;
|
|
|
|
protected:
|
|
public: /* Internal */
|
|
|
|
CServerObject_HostQuotaRegistration () ;
|
|
~CServerObject_HostQuotaRegistration () ;
|
|
|
|
ULONG AddRef () ;
|
|
ULONG Release () ;
|
|
|
|
HRESULT SetContext (
|
|
|
|
IWbemContext *a_Context ,
|
|
IWbemPath *a_Namespace ,
|
|
IWbemServices *a_Repository
|
|
) ;
|
|
|
|
HRESULT QueryProperties (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemClassObject *a_Object
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask
|
|
) ;
|
|
|
|
SIZE_T GetMemoryPerHost () { return m_MemoryPerHost ; }
|
|
SIZE_T GetMemoryAllHosts () { return m_MemoryAllHosts ; }
|
|
ULONG GetThreadsPerHost () { return m_ThreadsPerHost; }
|
|
ULONG GetHandlesPerHost () { return m_HandlesPerHost; }
|
|
ULONG GetProcessLimitAllHosts () { return m_ProcessLimitAllHosts ; }
|
|
|
|
HRESULT GetResult () { return m_Result ; }
|
|
};
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CServerObject_ComRegistration
|
|
{
|
|
private:
|
|
|
|
LONG m_ReferenceCount ;
|
|
|
|
private:
|
|
|
|
HRESULT Load_ThreadingModel ( HKEY a_Clsid ) ;
|
|
HRESULT Load_Synchronization ( HKEY a_ClsidKey ) ;
|
|
|
|
HRESULT Load_InProcServer32 ( LPCWSTR a_ClsidStringKey ) ;
|
|
HRESULT Load_LocalServer32 ( LPCWSTR a_ClsidStringKey ) ;
|
|
|
|
HRESULT Load_AppId ( HKEY a_Clsid_Key ) ;
|
|
HRESULT Load_ServerTypes ( LPCWSTR a_ClsidString ) ;
|
|
|
|
protected:
|
|
|
|
HRESULT m_Result ;
|
|
|
|
Enum_ThreadingModel m_ThreadingModel ;
|
|
Enum_Synchronization m_Synchronization ;
|
|
|
|
Enum_Boolean m_InProcServer32 ;
|
|
Enum_Boolean m_LocalServer32 ;
|
|
Enum_Boolean m_Service ;
|
|
Enum_Boolean m_Loaded ;
|
|
BSTR m_Clsid ;
|
|
BSTR m_AppId ;
|
|
BSTR m_ProviderName ;
|
|
wchar_t m_InProcServer32_Path [ MAX_PATH ] ;
|
|
wchar_t m_LocalServer32_Path [ MAX_PATH ] ;
|
|
wchar_t m_Server_Name [ MAX_PATH ] ;
|
|
|
|
protected:
|
|
|
|
static LPCWSTR s_Strings_Reg_Null ;
|
|
|
|
static LPCWSTR s_Strings_Reg_ThreadingModel ;
|
|
static LPCWSTR s_Strings_Reg_InProcServer32 ;
|
|
static LPCWSTR s_Strings_Reg_LocalServer32 ;
|
|
static LPCWSTR s_Strings_Reg_Synchronization ;
|
|
static LPCWSTR s_Strings_Reg_AppId ;
|
|
|
|
static LPCWSTR s_Strings_Reg_Apartment_Apartment ;
|
|
static LPCWSTR s_Strings_Reg_Apartment_Both ;
|
|
static LPCWSTR s_Strings_Reg_Apartment_Free ;
|
|
static LPCWSTR s_Strings_Reg_Apartment_Neutral ;
|
|
|
|
static LPCWSTR s_Strings_Reg_Apartment_Required ;
|
|
static LPCWSTR s_Strings_Reg_Synchronization_Ignored ;
|
|
static LPCWSTR s_Strings_Reg_Synchronization_None ;
|
|
static LPCWSTR s_Strings_Reg_Synchronization_Supported ;
|
|
static LPCWSTR s_Strings_Reg_Synchronization_Required ;
|
|
static LPCWSTR s_Strings_Reg_Synchronization_RequiresNew ;
|
|
|
|
static LPCWSTR s_Strings_Reg_ClsidKeyStr ;
|
|
|
|
public: /* Internal */
|
|
|
|
CServerObject_ComRegistration () ;
|
|
~CServerObject_ComRegistration () ;
|
|
|
|
ULONG AddRef () ;
|
|
ULONG Release () ;
|
|
|
|
HRESULT Load ( LPCWSTR a_Clsid , LPCWSTR a_ProviderName ) ;
|
|
|
|
Enum_ThreadingModel GetThreadingModel () { return m_ThreadingModel ; }
|
|
Enum_Synchronization GetSynchronization () { return m_Synchronization ; }
|
|
|
|
Enum_Boolean InProcServer32 () { return m_InProcServer32 ; }
|
|
Enum_Boolean LocalServer32 () { return m_LocalServer32 ; }
|
|
Enum_Boolean Loaded () { return m_Loaded ; }
|
|
|
|
wchar_t *GetInProcServer32_Path () { return m_InProcServer32_Path ; }
|
|
wchar_t *GetLocalServer32_Path () { return m_LocalServer32_Path ; }
|
|
wchar_t *GetServer_Name () { return m_Server_Name ; }
|
|
wchar_t *GetProviderName () { return m_ProviderName ; }
|
|
wchar_t *GetProviderClsid () { return m_Clsid ; }
|
|
|
|
HRESULT GetResult () { return m_Result ; }
|
|
};
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CServerObject_ComProviderRegistrationV1
|
|
{
|
|
private:
|
|
|
|
LONG m_ReferenceCount ;
|
|
|
|
protected:
|
|
|
|
HRESULT m_Result ;
|
|
|
|
CServerObject_ComRegistration m_ClsidServer ;
|
|
|
|
ULONG m_Version ;
|
|
Enum_ImpersonationLevel m_ImpersonationLevel ;
|
|
Enum_InitializationReentrancy m_InitializationReentrancy ;
|
|
BOOL m_InitializeAsAdminFirst ;
|
|
BOOL m_PerUserInitialization ;
|
|
BOOL m_PerLocaleInitialization ;
|
|
BOOL m_SupportsQuotas ;
|
|
BOOL m_Enabled ;
|
|
BOOL m_SupportsShutdown ;
|
|
BOOL m_Pure ;
|
|
Enum_Hosting m_Hosting ;
|
|
LPWSTR m_HostingGroup ;
|
|
LPWSTR m_DefaultMachineName ;
|
|
BOOL m_DecoupledImpersonationRestriction ;
|
|
|
|
LPWSTR m_InitializationTimeout ;
|
|
ULONG m_InitializationTimeoutMilliSeconds ;
|
|
|
|
LPWSTR m_UnloadTimeout ;
|
|
ULONG m_UnloadTimeoutMilliSeconds ;
|
|
|
|
BOOL m_SupportsSendStatus ;
|
|
LPWSTR m_OperationTimeout ;
|
|
ULONG m_OperationTimeoutMilliSeconds ;
|
|
|
|
BOOL m_SupportsThrottling ;
|
|
ULONG m_ConcurrentIndependantRequests ;
|
|
|
|
BSTR m_ProviderName ;
|
|
|
|
GUID m_CLSID ;
|
|
GUID m_ClientCLSID ;
|
|
|
|
IWbemClassObject *m_Identity ;
|
|
IWbemContext *m_Context ;
|
|
IWbemPath *m_Namespace ;
|
|
IWbemServices *m_Repository ;
|
|
SECURITY_DESCRIPTOR *m_SecurityDescriptor ;
|
|
|
|
public:
|
|
|
|
static LPCWSTR s_Strings_Wmi_Clsid ;
|
|
static LPCWSTR s_Strings_Wmi_ClientClsid ;
|
|
static LPCWSTR s_Strings_Wmi_Name ;
|
|
static LPCWSTR s_Strings_Wmi_Version ;
|
|
static LPCWSTR s_Strings_Wmi_DefaultMachineName ;
|
|
static LPCWSTR s_Strings_Wmi_UnloadTimeout ;
|
|
static LPCWSTR s_Strings_Wmi_ImpersonationLevel ;
|
|
static LPCWSTR s_Strings_Wmi_InitializationReentrancy ;
|
|
static LPCWSTR s_Strings_Wmi_InitializeAsAdminFirst ;
|
|
static LPCWSTR s_Strings_Wmi_PerUserInitialization ;
|
|
static LPCWSTR s_Strings_Wmi_PerLocaleInitialization ;
|
|
static LPCWSTR s_Strings_Wmi_Pure ;
|
|
static LPCWSTR s_Strings_Wmi_Hosting ;
|
|
static LPCWSTR s_Strings_Wmi_HostingGroup ;
|
|
static LPCWSTR s_Strings_Wmi_SupportsThrottling ;
|
|
static LPCWSTR s_Strings_Wmi_SupportsQuotas ;
|
|
static LPCWSTR s_Strings_Wmi_SupportsShutdown ;
|
|
static LPCWSTR s_Strings_Wmi_Enabled ;
|
|
static LPCWSTR s_Strings_Wmi_ConcurrentIndependantRequests ;
|
|
static LPCWSTR s_Strings_Wmi_SupportsSendStatus ;
|
|
static LPCWSTR s_Strings_Wmi_OperationTimeoutInterval ;
|
|
static LPCWSTR s_Strings_Wmi_InitializationTimeoutInterval ;
|
|
static LPCWSTR s_Strings_Wmi_SecurityDescriptor ;
|
|
|
|
static WCHAR s_Strings_Wmi_WmiCore [] ;
|
|
static WCHAR s_Strings_Wmi_SelfHost [] ;
|
|
static WCHAR s_Strings_Wmi_WmiCoreOrSelfHost [] ;
|
|
static WCHAR s_Strings_Wmi_Decoupled [] ;
|
|
static WCHAR s_Strings_Wmi_DecoupledColon [] ;
|
|
static WCHAR s_Strings_Wmi_SharedLocalSystemHost [] ;
|
|
static WCHAR s_Strings_Wmi_SharedLocalSystemHostOrSelfHost [] ;
|
|
static WCHAR s_Strings_Wmi_SharedLocalServiceHost [] ;
|
|
static WCHAR s_Strings_Wmi_SharedNetworkServiceHost [] ;
|
|
static WCHAR s_Strings_Wmi_SharedUserHost [] ;
|
|
static WCHAR s_Strings_Wmi_NonCom [] ;
|
|
|
|
static WCHAR s_Strings_Wmi_DefaultSharedLocalSystemHost [] ;
|
|
static WCHAR s_Strings_Wmi_DefaultSharedLocalSystemHostOrSelfHost [] ;
|
|
static WCHAR s_Strings_Wmi_DefaultSharedLocalServiceHost [] ;
|
|
static WCHAR s_Strings_Wmi_DefaultSharedNetworkServiceHost [] ;
|
|
static WCHAR s_Strings_Wmi_DefaultSharedUserHost [] ;
|
|
|
|
static LPCWSTR s_Strings_Wmi_DefaultHostingRegistryKey ;
|
|
|
|
protected:
|
|
public: /* Internal */
|
|
|
|
CServerObject_ComProviderRegistrationV1 () ;
|
|
~CServerObject_ComProviderRegistrationV1 () ;
|
|
|
|
ULONG AddRef () ;
|
|
ULONG Release () ;
|
|
|
|
HRESULT SetContext (
|
|
|
|
IWbemContext *a_Context ,
|
|
IWbemPath *a_Namespace ,
|
|
IWbemServices *a_Repository
|
|
) ;
|
|
|
|
HRESULT QueryProperties (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemClassObject *a_Object ,
|
|
LPCWSTR a_ProviderName
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_ProviderName
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemClassObject *a_Class
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
const CLSID &GetClsid () { return m_CLSID ; }
|
|
const CLSID &GetClientClsid () { return m_ClientCLSID ; }
|
|
wchar_t *GetProviderName () { return m_ProviderName ; }
|
|
|
|
ULONG GetVersion () { return m_Version ; }
|
|
Enum_ImpersonationLevel GetImpersonationLevel () { return m_ImpersonationLevel ; }
|
|
Enum_InitializationReentrancy GetInitializationReentrancy () { return m_InitializationReentrancy ; }
|
|
Enum_Hosting GetHosting () { return m_Hosting ; }
|
|
LPCWSTR GetHostingGroup () { return m_HostingGroup ; }
|
|
|
|
BOOL InitializeAsAdminFirst () { return m_InitializeAsAdminFirst ; }
|
|
BOOL PerUserInitialization () { return m_PerUserInitialization ; }
|
|
BOOL PerLocaleInitialization () { return m_PerLocaleInitialization ; }
|
|
BOOL Pure () { return m_Pure ; }
|
|
BOOL Enabled () { return m_Enabled ; }
|
|
BOOL SupportsQuotas () { return m_SupportsQuotas ; }
|
|
|
|
wchar_t *GetDefaultMachineName () { return m_DefaultMachineName ; }
|
|
wchar_t *GetUnloadTimeout () { return m_UnloadTimeout ; }
|
|
wchar_t *GetInitializationTimeout () { return m_InitializationTimeout ; }
|
|
wchar_t *GetOperationTimeout () { return m_OperationTimeout ; }
|
|
|
|
void SetUnloadTimeoutMilliSeconds ( ULONG a_UnloadTimeoutMilliSeconds ) { m_UnloadTimeoutMilliSeconds = a_UnloadTimeoutMilliSeconds ; }
|
|
|
|
ULONG GetUnloadTimeoutMilliSeconds () { return m_UnloadTimeoutMilliSeconds ; }
|
|
ULONG GetInitializationTimeoutMilliSeconds () { return m_InitializationTimeoutMilliSeconds ; }
|
|
ULONG GetOperationTimeoutMilliSeconds () { return m_OperationTimeoutMilliSeconds ; }
|
|
|
|
ULONG GetConcurrentIndependantRequests () { return m_ConcurrentIndependantRequests ; }
|
|
BOOL GetSupportsThrottling () { return m_SupportsThrottling ; }
|
|
BOOL GetSupportsSendStatus () { return m_SupportsSendStatus ; }
|
|
BOOL GetSupportsShutdown () { return m_SupportsShutdown ; }
|
|
|
|
Enum_ThreadingModel GetThreadingModel () { return m_ClsidServer.GetThreadingModel () ; }
|
|
|
|
BOOL GetDecoupledImpersonationRestriction () { return m_DecoupledImpersonationRestriction ; }
|
|
|
|
CServerObject_ComRegistration &GetClsidServer () { return m_ClsidServer ; }
|
|
|
|
SECURITY_DESCRIPTOR *GetSecurityDescriptor () { return m_SecurityDescriptor ; }
|
|
|
|
HRESULT GetResult () { return m_Result ; }
|
|
|
|
IWbemClassObject *GetIdentity () { return m_Identity ; }
|
|
|
|
static HRESULT GetHosting (
|
|
|
|
LPCWSTR a_Hosting ,
|
|
Enum_Hosting & a_HostingValue ,
|
|
LPWSTR &a_HostingGroup ,
|
|
BOOL & a_ImpersonationRestriction
|
|
) ;
|
|
|
|
static HRESULT GetHostingGroup (
|
|
|
|
LPCWSTR a_Hosting ,
|
|
size_t a_Prefix ,
|
|
Enum_Hosting a_ExpectedHostingValue ,
|
|
Enum_Hosting & a_HostingValue ,
|
|
BSTR & a_HostingGroup
|
|
) ;
|
|
|
|
static HRESULT GetDefaultHostingGroup (
|
|
|
|
Enum_Hosting a_HostingValue ,
|
|
BSTR & a_HostingGroup
|
|
) ;
|
|
|
|
static HRESULT GetDecoupledImpersonationRestriction (
|
|
|
|
LPCWSTR a_Hosting ,
|
|
BOOL & a_ImpersonationRestriction
|
|
) ;
|
|
} ;
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CServerObject_InstanceProviderRegistrationV1
|
|
{
|
|
private:
|
|
|
|
LONG m_ReferenceCount ;
|
|
|
|
protected:
|
|
|
|
HRESULT m_Result ;
|
|
|
|
BOOL m_Supported ;
|
|
BOOL m_SupportsPut ;
|
|
BOOL m_SupportsGet ;
|
|
BOOL m_SupportsDelete ;
|
|
BOOL m_SupportsEnumeration ;
|
|
BOOL m_SupportsBatching ;
|
|
BOOL m_SupportsTransactions ;
|
|
|
|
Enum_InteractionType m_InteractionType ;
|
|
ULONG m_QuerySupportLevels ;
|
|
|
|
IWbemContext *m_Context ;
|
|
IWbemPath *m_Namespace ;
|
|
IWbemServices *m_Repository ;
|
|
|
|
private:
|
|
|
|
static LPCWSTR s_Strings_Class ;
|
|
static LPCWSTR s_Strings_InstanceProviderRegistration ;
|
|
|
|
static LPCWSTR s_Strings_SupportsPut ;
|
|
static LPCWSTR s_Strings_SupportsGet ;
|
|
static LPCWSTR s_Strings_SupportsDelete ;
|
|
static LPCWSTR s_Strings_SupportsEnumeration ;
|
|
static LPCWSTR s_Strings_QuerySupportLevels ;
|
|
static LPCWSTR s_Strings_InteractionType ;
|
|
|
|
static LPCWSTR s_Strings_SupportsBatching ;
|
|
static LPCWSTR s_Strings_SupportsTransactions ;
|
|
|
|
static LPCWSTR s_Strings_QuerySupportLevels_UnarySelect ;
|
|
static LPCWSTR s_Strings_QuerySupportLevels_References ;
|
|
static LPCWSTR s_Strings_QuerySupportLevels_Associators ;
|
|
static LPCWSTR s_Strings_QuerySupportLevels_V1ProviderDefined ;
|
|
|
|
static LPCWSTR s_Strings_InteractionType_Pull ;
|
|
static LPCWSTR s_Strings_InteractionType_Push ;
|
|
static LPCWSTR s_Strings_InteractionType_PushVerify ;
|
|
|
|
protected:
|
|
|
|
HRESULT QueryRepositoryUsingQuery (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
BSTR a_Query
|
|
) ;
|
|
|
|
public: /* Internal */
|
|
|
|
CServerObject_InstanceProviderRegistrationV1 () ;
|
|
~CServerObject_InstanceProviderRegistrationV1 () ;
|
|
|
|
ULONG AddRef () ;
|
|
ULONG Release () ;
|
|
|
|
HRESULT SetContext (
|
|
|
|
IWbemContext *a_Context ,
|
|
IWbemPath *a_Namespace ,
|
|
IWbemServices *a_Repository
|
|
) ;
|
|
|
|
HRESULT QueryProperties (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemClassObject *a_Object
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_ProviderName
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemClassObject *a_Class
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
BOOL SupportsPut () { return m_SupportsPut ; }
|
|
BOOL SupportsGet () { return m_SupportsGet ; }
|
|
BOOL SupportsDelete () { return m_SupportsDelete ; }
|
|
BOOL SupportsEnumeration () { return m_SupportsEnumeration ; }
|
|
BOOL SupportsTransactions () { return m_SupportsTransactions ; }
|
|
BOOL SupportsBatching () { return m_SupportsBatching ; }
|
|
|
|
ULONG QuerySupportLevels () { return m_QuerySupportLevels ; }
|
|
Enum_InteractionType InteractionType () { return m_InteractionType ; }
|
|
|
|
BOOL Supported () { return m_Supported ; }
|
|
HRESULT GetResult () { return m_Result ; }
|
|
};
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CServerObject_ClassProviderRegistrationV1
|
|
{
|
|
private:
|
|
|
|
LONG m_ReferenceCount ;
|
|
|
|
protected:
|
|
|
|
HRESULT m_Result ;
|
|
|
|
BOOL m_Supported ;
|
|
BOOL m_SupportsPut ;
|
|
BOOL m_SupportsGet ;
|
|
BOOL m_SupportsDelete ;
|
|
BOOL m_SupportsEnumeration ;
|
|
BOOL m_SupportsBatching ;
|
|
BOOL m_SupportsTransactions ;
|
|
BOOL m_PerUserSchema ;
|
|
BOOL m_ReSynchroniseOnNamespaceOpen ;
|
|
BOOL m_HasReferencedSet;
|
|
Enum_InteractionType m_InteractionType ;
|
|
ULONG m_QuerySupportLevels ;
|
|
ULONG m_Version ;
|
|
LPWSTR m_CacheRefreshInterval ;
|
|
ULONG m_CacheRefreshIntervalMilliSeconds ;
|
|
|
|
LPWSTR m_ProviderName ;
|
|
|
|
IWbemContext *m_Context ;
|
|
IWbemPath *m_Namespace ;
|
|
IWbemServices *m_Repository ;
|
|
|
|
ULONG m_ResultSetQueryTreeCount ;
|
|
WmiTreeNode **m_ResultSetQueryTree ;
|
|
|
|
ULONG m_UnSupportedQueryTreeCount ;
|
|
WmiTreeNode **m_UnSupportedQueryTree ;
|
|
|
|
ULONG m_ReferencedSetQueryTreeCount ;
|
|
WmiTreeNode **m_ReferencedSetQueryTree ;
|
|
|
|
private:
|
|
|
|
static LPCWSTR s_Strings_Class ;
|
|
static LPCWSTR s_Strings_ClassProviderRegistration ;
|
|
|
|
static LPCWSTR s_Strings_Version ;
|
|
|
|
static LPCWSTR s_Strings_SupportsPut ;
|
|
static LPCWSTR s_Strings_SupportsGet ;
|
|
static LPCWSTR s_Strings_SupportsDelete ;
|
|
static LPCWSTR s_Strings_SupportsEnumeration ;
|
|
static LPCWSTR s_Strings_QuerySupportLevels ;
|
|
static LPCWSTR s_Strings_InteractionType ;
|
|
static LPCWSTR s_Strings_SupportsBatching ;
|
|
static LPCWSTR s_Strings_SupportsTransactions ;
|
|
static LPCWSTR s_Strings_CacheRefreshInterval ;
|
|
static LPCWSTR s_Strings_PerUserSchema ;
|
|
static LPCWSTR s_Strings_ReSynchroniseOnNamespaceOpen ;
|
|
|
|
static LPCWSTR s_Strings_QuerySupportLevels_UnarySelect ;
|
|
static LPCWSTR s_Strings_QuerySupportLevels_References ;
|
|
static LPCWSTR s_Strings_QuerySupportLevels_Associators ;
|
|
static LPCWSTR s_Strings_QuerySupportLevels_V1ProviderDefined ;
|
|
|
|
static LPCWSTR s_Strings_InteractionType_Pull ;
|
|
static LPCWSTR s_Strings_InteractionType_Push ;
|
|
static LPCWSTR s_Strings_InteractionType_PushVerify ;
|
|
|
|
static LPCWSTR s_Strings_ResultSetQueries ;
|
|
static LPCWSTR s_Strings_UnSupportedQueries ;
|
|
static LPCWSTR s_Strings_ReferencedSetQueries ;
|
|
|
|
private:
|
|
|
|
HRESULT ParseQuery (
|
|
|
|
ULONG &a_Count ,
|
|
WmiTreeNode **&a_Root ,
|
|
SAFEARRAY *a_Array
|
|
) ;
|
|
|
|
protected:
|
|
|
|
HRESULT QueryRepositoryUsingQuery (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
BSTR a_Query
|
|
) ;
|
|
|
|
public: /* Internal */
|
|
|
|
CServerObject_ClassProviderRegistrationV1 () ;
|
|
~CServerObject_ClassProviderRegistrationV1 () ;
|
|
|
|
ULONG AddRef () ;
|
|
ULONG Release () ;
|
|
|
|
HRESULT SetContext (
|
|
|
|
IWbemContext *a_Context ,
|
|
IWbemPath *a_Namespace ,
|
|
IWbemServices *a_Repository
|
|
) ;
|
|
|
|
HRESULT QueryProperties (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemClassObject *a_Object
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_ProviderName
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemClassObject *a_Class
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
BOOL SupportsPut () { return m_SupportsPut ; }
|
|
BOOL SupportsGet () { return m_SupportsGet ; }
|
|
BOOL SupportsDelete () { return m_SupportsDelete ; }
|
|
BOOL SupportsEnumeration () { return m_SupportsEnumeration ; }
|
|
BOOL SupportsTransactions () { return m_SupportsTransactions ; }
|
|
BOOL SupportsBatching () { return m_SupportsBatching ; }
|
|
BOOL GetPerUserSchema () { return m_PerUserSchema ; }
|
|
BOOL GetReSynchroniseOnNamespaceOpen () { return m_ReSynchroniseOnNamespaceOpen ; }
|
|
BOOL HasReferencedSet () { return m_HasReferencedSet ; }
|
|
ULONG QuerySupportLevels () { return m_QuerySupportLevels ; }
|
|
Enum_InteractionType InteractionType () { return m_InteractionType ; }
|
|
|
|
ULONG GetResultSetQueryCount () { return m_ResultSetQueryTreeCount ; }
|
|
WmiTreeNode **GetResultSetQuery () { return m_ResultSetQueryTree ; }
|
|
|
|
ULONG GetUnSupportedQueryCount () { return m_UnSupportedQueryTreeCount ; }
|
|
WmiTreeNode **GetUnSupportedQuery () { return m_UnSupportedQueryTree ; }
|
|
|
|
ULONG GetReferencedSetQueryCount () { return m_ReferencedSetQueryTreeCount ; }
|
|
WmiTreeNode **GetReferencedSetQuery () { return m_ReferencedSetQueryTree ; }
|
|
|
|
wchar_t *GetCacheRefreshInterval () { return m_CacheRefreshInterval ; }
|
|
ULONG GetCacheRefreshIntervalMilliSeconds () { return m_CacheRefreshIntervalMilliSeconds ; }
|
|
|
|
wchar_t *GetProviderName () { return m_ProviderName ; }
|
|
|
|
BOOL Supported () { return m_Supported ; }
|
|
HRESULT GetResult () { return m_Result ; }
|
|
|
|
BOOL GetVersion () { return m_Version ; }
|
|
};
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CServerObject_MethodProviderRegistrationV1
|
|
{
|
|
private:
|
|
|
|
LONG m_ReferenceCount ;
|
|
|
|
protected:
|
|
|
|
HRESULT m_Result ;
|
|
|
|
BOOL m_Supported ;
|
|
BOOL m_SupportsMethods ;
|
|
|
|
IWbemContext *m_Context ;
|
|
IWbemPath *m_Namespace ;
|
|
IWbemServices *m_Repository ;
|
|
|
|
private:
|
|
|
|
static LPCWSTR s_Strings_Class ;
|
|
static LPCWSTR s_Strings_MethodProviderRegistration ;
|
|
|
|
protected:
|
|
|
|
HRESULT QueryRepositoryUsingQuery (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
BSTR a_Query
|
|
) ;
|
|
|
|
public: /* Internal */
|
|
|
|
CServerObject_MethodProviderRegistrationV1 () ;
|
|
~CServerObject_MethodProviderRegistrationV1 () ;
|
|
|
|
ULONG AddRef () ;
|
|
ULONG Release () ;
|
|
|
|
HRESULT SetContext (
|
|
|
|
IWbemContext *a_Context ,
|
|
IWbemPath *a_Namespace ,
|
|
IWbemServices *a_Repository
|
|
) ;
|
|
|
|
HRESULT QueryProperties (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemClassObject *a_Object
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_ProviderName
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemClassObject *a_Class
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
BOOL SupportsMethods () { return m_SupportsMethods ; }
|
|
|
|
BOOL Supported () { return m_Supported ; }
|
|
|
|
HRESULT GetResult () { return m_Result ; }
|
|
};
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CServerObject_EventProviderRegistrationV1
|
|
{
|
|
private:
|
|
|
|
LONG m_ReferenceCount ;
|
|
|
|
protected:
|
|
|
|
HRESULT m_Result ;
|
|
|
|
BOOL m_Supported ;
|
|
|
|
IWbemContext *m_Context ;
|
|
IWbemPath *m_Namespace ;
|
|
IWbemServices *m_Repository ;
|
|
|
|
private:
|
|
|
|
static LPCWSTR s_Strings_Class ;
|
|
static LPCWSTR s_Strings_EventProviderRegistration ;
|
|
|
|
protected:
|
|
|
|
HRESULT QueryRepositoryUsingQuery (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
BSTR a_Query
|
|
) ;
|
|
|
|
public: /* Internal */
|
|
|
|
CServerObject_EventProviderRegistrationV1 () ;
|
|
~CServerObject_EventProviderRegistrationV1 () ;
|
|
|
|
ULONG AddRef () ;
|
|
ULONG Release () ;
|
|
|
|
HRESULT SetContext (
|
|
|
|
IWbemContext *a_Context ,
|
|
IWbemPath *a_Namespace ,
|
|
IWbemServices *a_Repository
|
|
) ;
|
|
|
|
HRESULT QueryProperties (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemClassObject *a_Object
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_ProviderName
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemClassObject *a_Class
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
BOOL Supported () { return m_Supported ; }
|
|
|
|
HRESULT GetResult () { return m_Result ; }
|
|
};
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CServerObject_EventConsumerProviderRegistrationV1
|
|
{
|
|
private:
|
|
|
|
LONG m_ReferenceCount ;
|
|
|
|
protected:
|
|
|
|
HRESULT m_Result ;
|
|
|
|
BOOL m_Supported ;
|
|
|
|
IWbemContext *m_Context ;
|
|
IWbemPath *m_Namespace ;
|
|
IWbemServices *m_Repository ;
|
|
|
|
private:
|
|
|
|
static LPCWSTR s_Strings_Class ;
|
|
static LPCWSTR s_Strings_EventConsumerProviderRegistration ;
|
|
|
|
protected:
|
|
|
|
HRESULT QueryRepositoryUsingQuery (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
BSTR a_Query
|
|
) ;
|
|
|
|
public: /* Internal */
|
|
|
|
CServerObject_EventConsumerProviderRegistrationV1 () ;
|
|
~CServerObject_EventConsumerProviderRegistrationV1 () ;
|
|
|
|
ULONG AddRef () ;
|
|
ULONG Release () ;
|
|
|
|
HRESULT SetContext (
|
|
|
|
IWbemContext *a_Context ,
|
|
IWbemPath *a_Namespace ,
|
|
IWbemServices *a_Repository
|
|
) ;
|
|
|
|
HRESULT QueryProperties (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemClassObject *a_Object
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_ProviderName
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemClassObject *a_Class
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
BOOL Supported () { return m_Supported ; }
|
|
|
|
HRESULT GetResult () { return m_Result ; }
|
|
};
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CServerObject_DynamicPropertyProviderRegistrationV1
|
|
{
|
|
private:
|
|
|
|
LONG m_ReferenceCount ;
|
|
|
|
protected:
|
|
|
|
HRESULT m_Result ;
|
|
|
|
BOOL m_Supported ;
|
|
BOOL m_SupportsPut ;
|
|
BOOL m_SupportsGet ;
|
|
|
|
IWbemContext *m_Context ;
|
|
IWbemPath *m_Namespace ;
|
|
IWbemServices *m_Repository ;
|
|
|
|
|
|
private:
|
|
|
|
static LPCWSTR s_Strings_Class ;
|
|
static LPCWSTR s_Strings_PropertyProviderRegistration ;
|
|
|
|
static LPCWSTR s_Strings_SupportsPut ;
|
|
static LPCWSTR s_Strings_SupportsGet ;
|
|
|
|
protected:
|
|
|
|
HRESULT QueryRepositoryUsingQuery (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
BSTR a_Query
|
|
) ;
|
|
|
|
public: /* Internal */
|
|
|
|
CServerObject_DynamicPropertyProviderRegistrationV1 () ;
|
|
~CServerObject_DynamicPropertyProviderRegistrationV1 () ;
|
|
|
|
ULONG AddRef () ;
|
|
ULONG Release () ;
|
|
|
|
HRESULT SetContext (
|
|
|
|
IWbemContext *a_Context ,
|
|
IWbemPath *a_Namespace ,
|
|
IWbemServices *a_Repository
|
|
) ;
|
|
|
|
HRESULT QueryProperties (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemClassObject *a_Object
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_ProviderName
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemClassObject *a_Class
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
BOOL SupportsPut () { return m_SupportsPut ; }
|
|
BOOL SupportsGet () { return m_SupportsGet ; }
|
|
|
|
BOOL Supported () { return m_Supported ; }
|
|
|
|
HRESULT GetResult () { return m_Result ; }
|
|
};
|
|
|
|
/******************************************************************************
|
|
*
|
|
* Name:
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
*
|
|
*****************************************************************************/
|
|
|
|
class CServerObject_ProviderRegistrationV1
|
|
{
|
|
private:
|
|
|
|
LONG m_ReferenceCount ;
|
|
|
|
private:
|
|
|
|
static LPCWSTR s_Strings_Class ;
|
|
static LPCWSTR s_Strings_ClassProviderRegistration ;
|
|
static LPCWSTR s_Strings_InstanceProviderRegistration ;
|
|
static LPCWSTR s_Strings_MethodProviderRegistration ;
|
|
static LPCWSTR s_Strings_PropertyProviderRegistration ;
|
|
static LPCWSTR s_Strings_EventProviderRegistration ;
|
|
static LPCWSTR s_Strings_EventConsumerProviderRegistration ;
|
|
|
|
protected:
|
|
|
|
HRESULT m_Result ;
|
|
|
|
CServerObject_ComProviderRegistrationV1 m_ComRegistration ;
|
|
|
|
CServerObject_ClassProviderRegistrationV1 m_ClassProviderRegistration ;
|
|
CServerObject_InstanceProviderRegistrationV1 m_InstanceProviderRegistration ;
|
|
CServerObject_MethodProviderRegistrationV1 m_MethodProviderRegistration ;
|
|
CServerObject_DynamicPropertyProviderRegistrationV1 m_PropertyProviderRegistration ;
|
|
CServerObject_EventProviderRegistrationV1 m_EventProviderRegistration ;
|
|
CServerObject_EventConsumerProviderRegistrationV1 m_EventConsumerProviderRegistration ;
|
|
|
|
IWbemContext *m_Context ;
|
|
IWbemPath *m_Namespace ;
|
|
IWbemServices *m_Repository ;
|
|
|
|
protected:
|
|
|
|
HRESULT QueryRepositoryUsingQuery (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
BSTR a_Query
|
|
) ;
|
|
|
|
public: /* Internal */
|
|
|
|
CServerObject_ProviderRegistrationV1 () ;
|
|
~CServerObject_ProviderRegistrationV1 () ;
|
|
|
|
ULONG AddRef () ;
|
|
ULONG Release () ;
|
|
|
|
HRESULT SetContext (
|
|
|
|
IWbemContext *a_Context ,
|
|
IWbemPath *a_Namespace ,
|
|
IWbemServices *a_Repository
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_ProviderName
|
|
) ;
|
|
|
|
HRESULT QueryRepository (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemClassObject *a_Class
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
LPCWSTR a_Provider
|
|
) ;
|
|
|
|
HRESULT Load (
|
|
|
|
Enum_PropertyMask a_Mask ,
|
|
IWbemPath *a_Scope,
|
|
IWbemPath *a_Provider
|
|
) ;
|
|
|
|
const CLSID &GetClsid () { return m_ComRegistration.GetClsid () ; }
|
|
|
|
BOOL PerUserInitialization () { return m_ComRegistration.PerUserInitialization () ; }
|
|
BOOL PerLocaleInitialization () { return m_ComRegistration.PerLocaleInitialization () ; }
|
|
Enum_InitializationReentrancy GetInitializationReentrancy () { return m_ComRegistration.GetInitializationReentrancy () ; }
|
|
Enum_ThreadingModel GetThreadingModel () { return m_ComRegistration.GetThreadingModel () ; }
|
|
Enum_Hosting GetHosting () { return m_ComRegistration.GetHosting () ; }
|
|
LPCWSTR GetHostingGroup () { return m_ComRegistration.GetHostingGroup () ; }
|
|
|
|
ULONG GetUnloadTimeoutMilliSeconds () { return m_ComRegistration.GetUnloadTimeoutMilliSeconds () ; }
|
|
wchar_t *GetProviderName () { return m_ComRegistration.GetProviderName () ; }
|
|
CServerObject_ComProviderRegistrationV1 &GetComRegistration () { return m_ComRegistration ; }
|
|
|
|
IWbemClassObject *GetIdentity () { return m_ComRegistration.GetIdentity () ; }
|
|
|
|
CServerObject_ClassProviderRegistrationV1 &GetClassProviderRegistration () { return m_ClassProviderRegistration ; }
|
|
CServerObject_InstanceProviderRegistrationV1 &GetInstanceProviderRegistration () { return m_InstanceProviderRegistration ; }
|
|
CServerObject_MethodProviderRegistrationV1 &GetMethodProviderRegistration () { return m_MethodProviderRegistration ; }
|
|
CServerObject_DynamicPropertyProviderRegistrationV1 &GetPropertyProviderRegistration () { return m_PropertyProviderRegistration ; }
|
|
CServerObject_EventProviderRegistrationV1 &GetEventProviderRegistration () { return m_EventProviderRegistration ; }
|
|
CServerObject_EventConsumerProviderRegistrationV1 &GetEventConsumerProviderRegistration () { return m_EventConsumerProviderRegistration ; }
|
|
|
|
void SetUnloadTimeoutMilliSeconds ( ULONG a_UnloadTimeoutMilliSeconds ) { m_ComRegistration.SetUnloadTimeoutMilliSeconds ( a_UnloadTimeoutMilliSeconds ) ; }
|
|
|
|
ULONG GetInitializationTimeoutMilliSeconds () { return m_ComRegistration.GetInitializationTimeoutMilliSeconds () ; }
|
|
|
|
HRESULT GetResult () { return m_Result ; }
|
|
|
|
BOOL ObjectProvider () ;
|
|
BOOL EventProvider () ;
|
|
};
|
|
|
|
#endif // _Server_ProviderRegistrationInfo_H
|