Leaked source code of windows server 2003
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

/*++
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