Newsgroup: it.comp.lang.visual-basic
Titolo: Aiuto su RegCreateKeyEx

Salve a tutti!
La mia domanda è la seguente:
Qual'è il significato dei parametri passati alla suddetta procedura?
Declare Function RegCreateKeyEx Lib "advapi32.dll" _
    Alias "RegCreateKeyExA" (ByVal hKey As Long, _
    ByVal lpSubKey As String, ByVal Reserved As Long, _
    ByVal lpClass As String, ByVal dwOptions As Long, _
    ByVal samDesired As Long, _
    ByVal lpSecurityAttributes As Long, _
    phkResult As Long, lpdwDisposition As Long) As Long
Dalla dichiarazione non riesco a capire molto su ciò che devo passare e non
ho trovato docs che mi aiutino... :(((
Help, please!!! :)
Ciao,
Mauro

...

Un bel copia/incolla:
The RegCreateKeyEx function creates the specified key. If the key already
exists in the registry, the function opens it.
LONG RegCreateKeyEx(
    HKEY  hKey, // handle of an open key
    LPCTSTR  lpszSubKey, // address of subkey name
    DWORD  dwReserved, // reserved
    LPTSTR  lpszClass, // address of class string
    DWORD  fdwOptions, // special options flag
    REGSAM  samDesired, // desired security access
    LPSECURITY_ATTRIBUTES  lpSecurityAttributes, // address of key security
structure
    PHKEY  phkResult, // address of buffer for opened handle
    LPDWORD  lpdwDisposition  // address of disposition value buffer
   );
Parameters
hKey
Identifies a currently open key or any of the following predefined reserved
handle values:
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
The key opened or created by the RegCreateKeyEx function is a subkey of the
key identified by the hKey parameter.
lpszSubKey
Points to a null-terminated string specifying the name of a subkey that this
function opens or creates. The subkey specified must be a subkey of the key
identified by the hKey parameter. This subkey must not begin with the
backslash character ('\'). This parameter cannot be NULL.
dwReserved
Reserved; must be zero.
lpszClass
Points to a null-terminated string that specifies the class (object type) of
this key. This parameter is ignored if the key already exists.
fdwOptions
Specifies special options for the key. Currently, this parameter can be one
of the following values:
Value Meaning
REG_OPTION_VOLATILE Windows 95: This value is ignored in Windows 95. That
is, even if REG_OPTION_VOLATILE is specified, the RegCreateKeyEx function
creates a nonvolatile key and returns ERROR_SUCCESS.Windows NT: This key is
volatile; the information is stored in memory and is not preserved when the
system is restarted. The RegSaveKey function does not save volatile keys.
REG_OPTION_NON_VOLATILE This key is not volatile; the information is stored
in a file and is preserved when the system is restarted. The RegSaveKey
function saves keys that are not volatile.
By default, keys are not volatile. This option is ignored if the key already
exists.
The RegSaveKey function only saves nonvolatile keys. It does not save
volatile keys.
samDesired
Specifies an access mask that specifies the desired security access for the
new key. This parameter can be a combination of the following values:
Value Meaning
KEY_ALL_ACCESS Combination of KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS,
KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, and KEY_SET_VALUE access.
KEY_CREATE_LINK Permission to create a symbolic link.
KEY_CREATE_SUB_KEY Permission to create subkeys.
KEY_ENUMERATE_SUB_KEYS Permission to enumerate subkeys.
KEY_EXECUTE Permission for read access.
KEY_NOTIFY Permission for change notification.
KEY_QUERY_VALUE Permission to query subkey data.
KEY_READ Combination of KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, and
KEY_NOTIFY access.
KEY_SET_VALUE Permission to set subkey data.
KEY_WRITE Combination of KEY_SET_VALUE and KEY_CREATE_SUB_KEY access.
lpSecurityAttributes
Points to a SECURITY_ATTRIBUTES structure that specifies the security
attributes for the new key.
If this parameter is NULL, the key receives a default security descriptor.
If the operating system does not support security, this parameter is
ignored.
phkResult
Points to a variable that receives the handle of the opened or created key.
lpdwDisposition
Points to a variable that receives one of the following disposition values:
Value Meaning
REG_CREATED_NEW_KEY The key did not exist and was created.
REG_OPENED_EXISTING_KEY The key existed and was simply opened without being
changed.
Return Value
If the function succeeds, the return value is ERROR_SUCCESS.
If the function fails, the return value is an error value.
Remarks
The key that the RegCreateKeyEx function creates has no values. An
application can use the RegSetValue or RegSetValueEx function to set key
values.
The key identified by the hKey parameter must have been opened with
KEY_CREATE_SUB_KEY access. To open the key, use the RegCreateKeyEx or
RegOpenKeyEx function.
An application cannot create a key under HKEY_USERS or HKEY_MACHINE.
An application can use RegCreateKeyEx to temporarily lock a portion of the
registry. When the locking process creates a new key, it receives the
disposition value REG_CREATED_NEW_KEY, indicating that it "owns" the lock.
Another process attempting to create the same key receives the disposition
value REG_OPENED_EXISTING_KEY, indicating that another process already owns
the lock.
See Also
RegCreateKey, RegDeleteKey, RegOpenKey, RegOpenKeyEx, RegSaveKey,
SECURITY_ATTRIBUTES
... ma non chiedermi cosa ci sia scritto o cosa faccia la funzione.
Ciao
--
G.Paolo Bizzaro - 
g...@rsadvnet.NOSPAM.it

Declare Function RegCreateKeyEx Lib "advapi32.dll" _
Eccoti un pezzo di documentazione
RegCreateKeyEx
The RegCreateKeyEx function creates the specified key. If the key already
exists in the registry, the function opens it.
LONG RegCreateKeyEx(
  HKEY hKey,                // handle of an open key
  LPCTSTR lpSubKey,         // address of subkey name
  DWORD Reserved,           // reserved
  LPTSTR lpClass,           // address of class string
  DWORD dwOptions,          // special options flag
  REGSAM samDesired,        // desired security access
  LPSECURITY_ATTRIBUTES lpSecurityAttributes,
                            // address of key security structure
  PHKEY phkResult,          // address of buffer for opened handle
  LPDWORD lpdwDisposition   // address of disposition value buffer
);
Parameters
hKey
Identifies a currently open key or one of the following predefined reserved
handle values:
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
Windows NT only: HKEY_PERFORMANCE_DATA
Windows 95 only: HKEY_DYN_DATA
The key opened or created by the RegCreateKeyEx function is a subkey of the
key identified by the hKey parameter.
lpSubKey
Pointer to a null-terminated string specifying the name of a subkey that
this function opens or creates. The subkey specified must be a subkey of the
key identified by the hKey parameter. This subkey must not begin with the
backslash character ('\'). This parameter cannot be NULL.
Reserved
Reserved; must be zero.
lpClass
Pointer to a null-terminated string that specifies the class (object type)
of this key. This parameter is ignored if the key already exists.
dwOptions
Specifies special options for the key. This parameter can be one of the
following values. Value Meaning
REG_OPTION_NON_VOLATILE This key is not volatile; this is the default. The
information is stored in a file and is preserved when the system is
restarted. The RegSaveKey function saves keys that are not volatile.
REG_OPTION_VOLATILE Windows NT: This key is volatile; the information is
stored in memory and is not preserved when the system is restarted. The
RegSaveKey function does not save volatile keys. This flag is ignored if the
key already exists.
Windows 95: This value is ignored in Windows 95. If REG_OPTION_VOLATILE is
specified, the RegCreateKeyEx function creates a nonvolatile key and returns
ERROR_SUCCESS.
REG_OPTION_BACKUP_RESTORE  Windows NT: If this flag is set, the function
ignores the samDesired parameter and attempts to open the key with the
access required to backup or restore the key. If the calling thread has the
SE_BACKUP_NAME privilege enabled, the key is opened with
ACCESS_SYSTEM_SECURITY and KEY_READ access. If the calling thread has the
SE_RESTORE_NAME privilege enabled, the key is opened with
ACCESS_SYSTEM_SECURITY and KEY_WRITE access. If both privileges are enabled,
the key has the combined accesses for both privileges.
Windows 95: This flag is ignored. Windows 95 does not support security in
its registry.
samDesired
Specifies an access mask that specifies the desired security access for the
new key. This parameter can be a combination of the following values: Value
Meaning
KEY_ALL_ACCESS Combination of KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS,
KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, and KEY_SET_VALUE access.
KEY_CREATE_LINK Permission to create a symbolic link.
KEY_CREATE_SUB_KEY Permission to create subkeys.
KEY_ENUMERATE_SUB_KEYS Permission to enumerate subkeys.
KEY_EXECUTE Permission for read access.
KEY_NOTIFY Permission for change notification.
KEY_QUERY_VALUE Permission to query subkey data.
KEY_READ Combination of KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, and
KEY_NOTIFY access.
KEY_SET_VALUE Permission to set subkey data.
KEY_WRITE Combination of KEY_SET_VALUE and KEY_CREATE_SUB_KEY access.
lpSecurityAttributes
Pointer to a SECURITY_ATTRIBUTES structure that determines whether the
returned handle can be inherited by child processes. If lpSecurityAttributes
is NULL, the handle cannot be inherited.
Windows NT: The lpSecurityDescriptor member of the structure specifies a
security descriptor for the new key. If lpSecurityAttributes is NULL, the
key gets a default security descriptor.
Windows 95: The lpSecurityDescriptor member of the structure is ignored.
phkResult
Pointer to a variable that receives the handle of the opened or created key.
When you no longer need the returned handle, call the RegCloseKey function
to close it.
lpdwDisposition
Pointer to a variable that receives one of the following disposition values:
Value Meaning
REG_CREATED_NEW_KEY The key did not exist and was created.
REG_OPENED_EXISTING_KEY The key existed and was simply opened without being
changed.
Return Values
If the function succeeds, the return value is ERROR_SUCCESS.
If the function fails, the return value is a nonzero error code defined in
WINERROR.H. You can use the FormatMessage function with the
FORMAT_MESSAGE_FROM_SYSTEM flag to get a generic description of the error.
Remarks
The key that the RegCreateKeyEx function creates has no values. An
application can use the RegSetValue or RegSetValueEx function to set key
values.
The key identified by the hKey parameter must have been opened with
KEY_CREATE_SUB_KEY access. To open the key, use the RegCreateKeyEx or
RegOpenKeyEx function.
An application cannot create a key under HKEY_USERS or HKEY_LOCAL_MACHINE.
An application can use RegCreateKeyEx to temporarily lock a portion of the
registry. When the locking process creates a new key, it receives the
disposition value REG_CREATED_NEW_KEY, indicating that it "owns" the lock.
Another process attempting to create the same key receives the disposition
value REG_OPENED_EXISTING_KEY, indicating that another process already owns
the lock.
Windows CE: The dwOptions and samDesired parameters are ignored and should
be set to zero to ensure compatibility with future versions of Windows CE.
The lpSecurityAttributes parameter should be set to NULL. Windows CE
automatically assigns the key a default security descriptor.
QuickInfo
  Windows NT: Use version 3.1 or later.
  Windows: Use Windows 95 or later.
  Windows CE: Use version 1.0 or later.
  Header: Declared in winreg.h.
  Import Library: Use advapi32.lib.
See Also
Registry Overview, Registry Functions, RegCloseKey, RegCreateKey,




Eccoti un pezzo di documentazione
Scusami, ti posso chiedere dove hai trovato questa documentazione? Sarei
mooooooooolto interessato... :)
Caio,
Mauro

mooooooooolto interessato... :)
Abbonandoti a Microsoft Developers Network (MSDN) ti verranno forniti tra
l'alto anche i CD di Library dove potrai trovare molto (forse troppo) dello
scibile sui prodotti MicroSoft
Puoi avere le stesse informazioni anche collegandoti a:
http://www.microsoft.com/msdn/
ma puo` darsi che per accedere alla documentazione tu debba essere
registrato (ovvero abbonato).
Ciao.
----------------------------------------------------------------------------
--
Gobbato Stefano
stefano@XYZ_lead.it
*** togliere XYZ_ per ottenere l'indirizzo corretto ***
----------------------------------------------------------------------------
--