From 0fec65d6a7abc84dc0f40af09dac09488467a19f Mon Sep 17 00:00:00 2001 From: James Hawkins Date: Wed, 10 Nov 2004 01:30:59 +0000 Subject: [PATCH] Use SHDeleteKey to remove leftover keys from the shreg tests. --- dlls/shlwapi/tests/shreg.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/dlls/shlwapi/tests/shreg.c b/dlls/shlwapi/tests/shreg.c index edfe97433c..f6bae12faa 100644 --- a/dlls/shlwapi/tests/shreg.c +++ b/dlls/shlwapi/tests/shreg.c @@ -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" ); } -- 2.33.8