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.
166 lines
5.0 KiB
166 lines
5.0 KiB
// support.h: interface for the CEnumPrivileges and CEnumRegistryValues.
|
|
//
|
|
// Copyright (c)1997-1999 Microsoft Corporation
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_SUPPORT_H__BD7570F7_9F0E_4C6B_B525_E078691B6D0E__INCLUDED_)
|
|
#define AFX_SUPPORT_H__BD7570F7_9F0E_4C6B_B525_E078691B6D0E__INCLUDED_
|
|
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif // _MSC_VER >= 1000
|
|
|
|
#include "GenericClass.h"
|
|
|
|
/*
|
|
|
|
Class description
|
|
|
|
Naming:
|
|
|
|
CEnumRegistryValues stands for Registry Values Enumerator.
|
|
|
|
Base class:
|
|
|
|
CGenericClass, because it is a class representing a WMI
|
|
object - its WMI class name is Sce_KnownRegistryValues
|
|
|
|
Purpose of class:
|
|
|
|
(1) Implement Sce_KnownRegistryValues WMI class.
|
|
|
|
(2) Help to find out if a particular registry is one of the known registry values.
|
|
|
|
Design:
|
|
|
|
(1) Almost trivial other than implementing necessary method as a concrete class
|
|
|
|
Use:
|
|
|
|
(1) Almost never used directly. Alway through the common interface defined by
|
|
CGenericClass.
|
|
|
|
*/
|
|
|
|
class CEnumRegistryValues : public CGenericClass
|
|
{
|
|
public:
|
|
CEnumRegistryValues (
|
|
ISceKeyChain *pKeyChain,
|
|
IWbemServices *pNamespace,
|
|
IWbemContext *pCtx = NULL
|
|
);
|
|
|
|
virtual ~CEnumRegistryValues ();
|
|
|
|
virtual HRESULT PutInst (
|
|
IWbemClassObject *pInst,
|
|
IWbemObjectSink *pHandler,
|
|
IWbemContext *pCtx
|
|
);
|
|
|
|
virtual HRESULT CreateObject (
|
|
IWbemObjectSink *pHandler,
|
|
ACTIONTYPE atAction
|
|
);
|
|
|
|
private:
|
|
HRESULT EnumerateInstances (
|
|
IWbemObjectSink *pHandler
|
|
);
|
|
|
|
HRESULT ConstructInstance (
|
|
IWbemObjectSink *pHandler,
|
|
LPCWSTR wszRegKeyName,
|
|
LPCWSTR wszRegPath,
|
|
HKEY hKeyRoot
|
|
);
|
|
|
|
HRESULT DeleteInstance (
|
|
IWbemObjectSink *pHandler,
|
|
LPCWSTR wszRegKeyName
|
|
);
|
|
|
|
HRESULT SavePropertyToReg (
|
|
LPCWSTR wszKeyName,
|
|
int RegType,
|
|
int DispType,
|
|
LPCWSTR wszDispName,
|
|
LPCWSTR wszUnits,
|
|
PSCE_NAME_LIST pnlChoice,
|
|
PSCE_NAME_LIST pnlResult
|
|
);
|
|
|
|
};
|
|
|
|
//================================================================================
|
|
|
|
/*
|
|
|
|
Class description
|
|
|
|
Naming:
|
|
|
|
CEnumPrivileges stands for Supported Privilege Enumerator.
|
|
|
|
Base class:
|
|
|
|
CGenericClass, because it is a class representing a WMI
|
|
object - its WMI class name is Sce_SupportedPrivileges
|
|
|
|
Purpose of class:
|
|
|
|
(1) Implement Sce_SupportedPrivileges WMI class.
|
|
|
|
(2) Help to determine if a certain privilege is supported or not.
|
|
|
|
Design:
|
|
|
|
(1) Almost trivial other than implementing necessary method as a concrete class
|
|
|
|
(2) We don't allow supported privileges to grow. So, not PutInstance support.
|
|
|
|
Use:
|
|
|
|
(1) Almost never used directly. Alway through the common interface defined by
|
|
CGenericClass.
|
|
|
|
*/
|
|
|
|
|
|
class CEnumPrivileges : public CGenericClass
|
|
{
|
|
public:
|
|
CEnumPrivileges (
|
|
ISceKeyChain *pKeyChain,
|
|
IWbemServices *pNamespace,
|
|
IWbemContext *pCtx = NULL
|
|
);
|
|
|
|
virtual ~CEnumPrivileges ();
|
|
|
|
virtual HRESULT PutInst (
|
|
IWbemClassObject *pInst,
|
|
IWbemObjectSink *pHandler,
|
|
IWbemContext *pCtx
|
|
)
|
|
{
|
|
return WBEM_E_NOT_SUPPORTED;
|
|
}
|
|
|
|
virtual HRESULT CreateObject (
|
|
IWbemObjectSink *pHandler,
|
|
ACTIONTYPE atAction
|
|
);
|
|
|
|
private:
|
|
|
|
HRESULT ConstructInstance (
|
|
IWbemObjectSink *pHandler,
|
|
LPCWSTR PrivName
|
|
);
|
|
|
|
};
|
|
|
|
#endif // !defined(AFX_SUPPORT_H__BD7570F7_9F0E_4C6B_B525_E078691B6D0E__INCLUDED_)
|