
// © 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
		
		);
		      
};                                                                 

