On 23 Feb 2005 13:57:08 +0100, Alexandre Julliard julliard@winehq.org wrote:
James Hawkins truiken@gmail.com writes:
- /* a key cannot be created directly beneath HKEY_LOCAL_MACHINE or HKEY_USERS */
- if ((hkey == HKEY_LOCAL_MACHINE || hkey == HKEY_USERS) && !strchr(name, '\')) {
*retkey = NULL;
return ERROR_INVALID_PARAMETER;
- }
- if (!(ret = RegOpenKeyExW( hkey, name, 0, KEY_ENUMERATE_SUB_KEYS, &tmp ))) {
/* check for any subkeys
* a key cannot be deleted if it has any subkeys
*/
RegQueryInfoKeyW(tmp, NULL, NULL, NULL, &numSubKeys, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
if (numSubKeys != 0) {
if (*name) RegCloseKey(tmp);
return ERROR_ACCESS_DENIED;
}
These kinds of checks should be done in the lower level functions, not in advapi32 (and in the case of the delete, are done already AFAICT).
-- Alexandre Julliard julliard@winehq.org
By lower level functions do you mean the ntdll reg functions?