Use SHDeleteKey to remove leftover keys from the shreg tests.

This commit is contained in:
James Hawkins 2004-11-10 01:30:59 +00:00 committed by Alexandre Julliard
parent b98b7dd65d
commit 0fec65d6a7
1 changed files with 14 additions and 16 deletions

View File

@ -51,24 +51,22 @@ static unsigned sExpLen2;
static const char * sEmptyBuffer ="0123456789";
/* delete key and all its subkeys */
static DWORD delete_key( HKEY hkey )
static DWORD delete_key( HKEY hkey, LPSTR parent, LPSTR keyname )
{
WCHAR name[MAX_PATH];
HKEY parentKey;
DWORD ret;
while (!(ret = RegEnumKeyW(hkey, 0, name, sizeof(name))))
{
HKEY tmp;
if (!(ret = RegOpenKeyExW( hkey, name, 0, KEY_ENUMERATE_SUB_KEYS, &tmp )))
{
ret = delete_key( tmp );
RegCloseKey( tmp );
}
if (ret) break;
}
if (ret != ERROR_NO_MORE_ITEMS) return ret;
RegDeleteKeyA( hkey, NULL );
return 0;
RegCloseKey(hkey);
/* open the parent of the key to close */
ret = RegOpenKeyEx( HKEY_CURRENT_USER, parent, 0, KEY_ALL_ACCESS, &parentKey);
if (ret != ERROR_SUCCESS)
return ret;
ret = SHDeleteKey( parentKey, keyname );
RegCloseKey(parentKey);
return ret;
}
static HKEY create_test_entries(void)
@ -321,5 +319,5 @@ START_TEST(shreg)
test_SHGetRegPath();
test_SHCopyKey();
test_SHDeleteKey();
delete_key( hkey );
delete_key( hkey, "Software\\Wine", "Test" );
}