Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

745 lines
48 KiB

// © 1998-1999 Microsoft Corporation. All rights reserved.
#pragma autorecover
Qualifier Description : ToSubClass Amended;
#pragma namespace ("\\\\.\\Root\\Default")
class RegistryEvent : __ExtrinsicEvent
{
};
class RegistryKeyChangeEvent : RegistryEvent
{
string Hive;
string KeyPath;
};
class RegistryTreeChangeEvent : RegistryEvent
{
string Hive;
string RootPath;
};
class RegistryValueChangeEvent : RegistryEvent
{
string Hive;
string KeyPath;
string ValueName;
};
instance of __Win32Provider as $P
{
Name = "RegistryEventProvider";
Clsid = "{fa77a74e-e109-11d0-ad6e-00c04fd8fdff}";
HostingModel = "LocalSystemHost";
};
instance of __EventProviderRegistration
{
Provider = $P;
EventQueryList = {"select * from RegistryEvent"};
};
instance of __Win32Provider as $PINST
{
Name = "RegProv" ;
ClsId = "{fe9af5c0-d3b6-11ce-a5b6-00aa00680c3f}" ;
ImpersonationLevel = 1;
HostingModel = "LocalSystemHost";
};
instance of __MethodProviderRegistration
{
Provider = $PINST;
};
instance of __InstanceProviderRegistration
{
Provider = $PINST;
SupportsPut = TRUE;
SupportsGet = TRUE;
SupportsDelete = FALSE;
SupportsEnumeration = TRUE;
};
instance of __Win32Provider as $PPROP
{
Name = "RegPropProv";
Clsid = "{72967901-68EC-11d0-B729-00AA0062CBB7}";
ImpersonationLevel = 1;
PerUserInitialization = TRUE;
HostingModel = "LocalSystemHost";
};
instance of __PropertyProviderRegistration
{
Provider = $PPROP;
SupportsGet = TRUE;
SupportsPut = TRUE;
};
/////////////////////////////////////////////////////////////////////
//
// Declare a class whose methods are executed by the sample provider.
[Locale(0x409), Description("The StdRegProv class contains methods that "
"interact with the system registry. You can use these methods to: \n"
"Verify the access permissions for a user \n"
"Create, enumerate, and delete registry keys \n"
"Create, enumerate, and delete named values \n"
"Read, write, and delete data values "),
dynamic: ToInstance,
provider("RegProv")]
class StdRegProv
{
[Description("The CreateKey method creates a subkey in the "
"specified tree. "),
implemented,
static]
uint32 CreateKey(
[Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[Description("Contains the key to be created. The "
"CreateKey method creates all subkeys specified in "
"the path that do not exist. For example, if MyKey "
"and MySubKey do not exist in the following path, "
"CreateKey creates both keys: \n"
"HKEY_LOCAL_MACHINE\\SOFTWARE\\MyKey\\MySubKey "),
IN]
string sSubKeyName
);
[ Description("The DeleteKey method deletes a subkey in the specified tree. "),
implemented,
static]
uint32 DeleteKey(
[ Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[ Description("Contains the key to be deleted. "),
IN]
string sSubKeyName
);
[ Description("The EnumKey method enumerates the "
"subkeys for the given path. "),
implemented,
static]
uint32 EnumKey(
[ Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[ Description("Specifies the path that contains the "
"subkeys to be enumerated. "),
IN]
string sSubKeyName,
[ Description("Contains an array of subkey strings. "),
out]
string sNames[]
);
[ Description("The EnumValues method enumerates the named "
"values of the given subkey. "),
implemented,
static]
uint32 EnumValues(
[ Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[ Description("Specifies the path that contains the named "
"values to be enumerated. "),
IN]
string sSubKeyName,
[ Description("Contains an array of named value "
"strings. The elements of this array correspond "
"directly with the elements of iTypes. "),
out]
string sNames[],
[ Description("Contains an array of data value types "
"(integers). You can use these types to determine "
"which Get method to call. For example, if the data "
"value type is REG_SZ, you would call GetStringValue "
"to retrieve the named value's data value. The "
"elements of this array correspond directly with "
"the elements of sNames. The following data value "
"types are defined in Winnt.h: \n"
"REG_SZ (1) \n"
"REG_EXPAND_SZ (2) \n"
"REG_BINARY (3) \n"
"REG_DWORD (4) \n"
"REG_MULTI_SZ (7) \n"),
out]
sint32 Types[]
);
[ Description("The DeleteValue method deletes "
"a named value in the specified subkey."),
implemented,
static]
uint32 DeleteValue(
[ Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[ Description("Specifies the key that contains the named "
"value to be deleted. "),
IN]
string sSubKeyName,
[ Description("Specifies the named value to be deleted "
"from the subkey. Specify an empty string to delete "
"the default named value (the default named value "
"is not deleted its value is set to \"value not set\""),
in]
string sValueName
);
[ Description("The SetDWORDValue method sets the data value "
"for a named value whose data type is REG_BINARY. "),
implemented,
static]
uint32 SetDWORDValue(
[ Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[ Description("Specifies the key that contains the named "
"value to be set. "),
IN]
string sSubKeyName,
[ Description("Specifies the named value whose data value "
"you are setting. You can specify an existing named "
"value (update) or a new named value (create). Specify "
"an empty string to set the data value for the default "
"named value. "),
in]
string sValueName,
[ Description("Specifies a double word data value. "),
in]
uint32 uValue=3
);
[ Description("The GetDWORDValue method returns the data value "
"for a named value whose data type is REG_DWORD. "),
implemented,
static]
uint32 GetDWORDValue(
[ Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[ Description("Specifies the path that contains the named "
"values. "),
IN]
string sSubKeyName,
[ Description("Specifies the named value whose data value "
"you are retrieving. Specify an empty string to get the "
"default named value."),
in]
string sValueName,
[ Description("Contains the DWORD data value for the "
"named value. "),
out]
uint32 uValue
);
[ Description("The SetStringValue method sets the data "
"value for a named value whose data type is REG_MULTI_SZ."),
implemented,
static]
uint32 SetStringValue(
[ Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[ Description("Specifies the key that contains the "
"named value to be set. "),
IN]
string sSubKeyName,
[ Description("Specifies the named value whose data "
"value you are setting. You can specify an existing "
"named value (update) or a new named value (create). "
"Specify an empty string to set the data value for the "
"default named value. "),
in]
string sValueName,
[ Description("Specifies a string data value."),
in]
string sValue="hello"
);
[ Description("The GetStringValue method returns the data "
"value for a named value whose data type is REG_SZ. "),
implemented,
static]
uint32 GetStringValue(
[ Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[ Description("Specifies the path that contains the named"
" values. "),
IN]
string sSubKeyName,
[ Description("Specifies the named value whose data "
"value you are retrieving. Specify an empty string to "
"get the default named value. "),
in]
string sValueName,
[ Description("Contains the string data value for the "
"named value. "),
out]
string sValue
);
[ Description("The SetMultiStringValue method sets the data "
"value for a named value whose data type is REG_MULTI_SZ. "
"The SetMultiStringValue method returns a uint32 which is "
"0 if successful or some other value if any other error occurred."),
implemented,
static]
uint32 SetMultiStringValue(
[ Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[ Description("Specifies the key that contains the "
"named value to be set. "),
IN]
string sSubKeyName,
[ Description("Specifies the named value whose data "
"value you are setting. You can specify an existing "
"named value (update) or a new named value (create). "
"Specify an empty string to set the data value for "
"the default named value. "),
in]
string sValueName,
[ Description("Specifies an array of string data values. "),
in]
string sValue[] = {"hello", "there"}
);
[ Description("The GetMultiStringValue method returns the data "
"value for a named value whose data type is REG_MULTI_SZ. "
"The GetMultiStringValue method returns a uint32 which "
"is 0 if successful or some other value if any other error "
"occurred."),
implemented,
static]
uint32 GetMultiStringValue(
[ Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[ Description("Specifies the path that contains the "
"named values. "),
IN]
string sSubKeyName,
[ Description("Specifies the named value whose data "
"value you are retrieving. Specify an empty string to "
"get the default named value. "),
in]
string sValueName,
[ Description("Contains an array of string data values "
"for the named value. "),
out]
string sValue[]
);
[ Description("The SetExpandedStringValue method sets the data "
"value for a named value whose data type is REG_EXPAND_SZ. "
"The SetExpandedStringValue method returns a uint32 which is "
"0 if successful or some other value if any other error occurred."),
implemented,
static]
uint32 SetExpandedStringValue(
[ Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[ Description("Specifies the key that contains the named "
"value to be set. "),
IN]
string sSubKeyName,
[ Description("Specifies the named value whose data "
"value you are setting. You can specify an existing "
"named value (update) or a new named value (create). "
"Specify an empty string to set the data value for the "
"default named value. "),
in]
string sValueName,
[ Description("Specifies an expanded string data value. "
"The environment variable specified in the string must "
"exist for the string to be expanded when you "
"call GetExpandedStringValue. "),
in]
string sValue="%path%"
);
[ Description("The GetExpandedStringValue method returns the "
"data value for a named value whose data type is REG_EXPAND_SZ. "),
implemented,
static]
uint32 GetExpandedStringValue(
[ Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[ Description("Specifies the path that contains the "
"named values. "),
IN]
string sSubKeyName,
[ Description("Specifies the named value whose data "
"value you are retrieving. Specify an empty string to "
"get the default named value. "),
in]
string sValueName,
[ Description("Contains the expanded string data value "
"for the named value. The string is only expanded if "
"the environment variable (for example, %Path%) is defined. "),
out]
string sValue
);
[ Description("The SetBinaryValue method sets the data value "
"for a named value whose data type is REG_BINARY. "
"The SetBinaryValue method returns a uint32 which is 0 if "
"successful or some other value if any other error occurred."),
implemented,
static]
uint32 SetBinaryValue(
[ Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[ Description("Specifies the key that contains the named "
"value to be set. "),
IN]
string sSubKeyName,
[ Description("Specifies the named value whose data "
"value you are setting. You can specify an existing "
"named value (update) or a new named value (create). "
"Specify an empty string to set the data value for "
"the default named value. "),
in]
string sValueName,
[ Description("Specifies an array of binary data values. "),
in]
uint8 uValue[]={1,2}
);
[ Description("The GetBinaryValue method returns the data "
"value for a named value whose data type is REG_BINARY. "
"The GetBinaryValue method returns a uint32 which is 0 if "
"successful or some other value if any other error occurred."),
implemented,
static]
uint32 GetBinaryValue(
[ Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[ Description("Specifies the path that contains the "
"named values. "),
IN]
string sSubKeyName,
[ Description("Specifies the named value whose data "
"value you are retrieving. Specify an empty string "
"to get the default named value. "),
in]
string sValueName,
[ Description("Contains an array of binary bytes. "),
out]
uint8 uValue[]
);
[ Description("The CheckAccess method verifies that the user "
"possesses the specified permissions. "
"The method returns a uint32 which is 0 if successful or "
"some other value if any other error occurred."),
implemented,
static]
uint32 CheckAccess(
[ Description("Optional parameter that specifies the "
"tree that contains the sSubKeyName path. The default "
"value is HKEY_LOCAL_MACHINE (0x80000002). The following "
"trees are defined in Winreg.h: \n"
"HKEY_CLASSES_ROOT (0x80000000) \n"
"HKEY_CURRENT_USER (0x80000001) \n"
"HKEY_LOCAL_MACHINE (0x80000002) \n"
"HKEY_USERS (0x80000003) \n"
"HKEY_CURRENT_CONFIG (0x80000005) \n"
"HKEY_DYN_DATA (0x80000006) \n"
"Note that HKEY_DYN_DATA is a valid tree for "
"Windows 95 and Windows 98 computers only. "),
IN]
uint32 hDefKey = 0x80000002,
[ Description("Contains the key to be verified. "),
IN]
string sSubKeyName,
[ Description("Optional parameter that specifies "
"the access permissions to be verified. You can "
"add these values together to verify more than one "
"access permission. The default value is 3. The "
"following access permission values are defined "
"in Winnt.h: \n"
"KEY_QUERY_VALUE (0X0001) \n"
"KEY_SET_VALUE (0X0002) \n"
"KEY_CREATE_SUB_KEY (0X0004) \n"
"KEY_ENUMERATE_SUB_KEYS (0X0008) \n"
"KEY_NOTIFY (0X0010) \n"
"KEY_CREATE_LINK (0X0020) \n"
"DELETE (0x00010000) \n"
"READ_CONTROL (0x00020000) \n"
"WRITE_DAC (0X00040000) \n"
"WRITE_OWNER (0X00080000) "),
in]
uint32 uRequired = 3,
[ Description("This parameter is True if user possesses "
"the specified access permissions. Otherwise, the "
"parameter is False. "),
out]
boolean bGranted
);
};