- Implement HUSKEY design.
- Implement functions: SHRegOpenUSKey{A|W}, SHRegCloseUSKey,
  SHRegGetUSValue{A|W}, SHRegQueryInfoUSKey{A|W}

diff --git a/include/shlwapi.h b/include/shlwapi.h
index 1de8c38..e403fb2 100644
--- a/include/shlwapi.h
+++ b/include/shlwapi.h
@@ -214,6 +214,9 @@
 HRESULT WINAPI StrRetToBufW(struct _STRRET *src, const struct _ITEMIDLIST *pidl, LPWSTR dest, DWORD len);
 #define StrRetToBuf WINELIB_NAME_AW(StrRetToBuf)
 
+
+/* Shell Registry interfaces */
+
 HRESULT WINAPI SHQueryValueExA(HKEY hkey, LPSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData);
 HRESULT WINAPI SHQueryValueExW(HKEY hkey, LPWSTR pszValue, LPDWORD pdwReserved, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData);
 #define SHQueryValueEx WINELIB_NAME_AW(SHQueryValueEx)
@@ -226,6 +229,26 @@
 DWORD WINAPI SHDeleteEmptyKeyW(HKEY hKey, LPCWSTR lpszSubKey);
 #define  SHDeleteEmptyKey WINELIB_NAME_AW(SHDeleteEmptyKey)
 
+
+typedef HANDLE HUSKEY;
+typedef HUSKEY *PHUSKEY;
+
+typedef enum {
+    SHREGDEL_DEFAULT = 0,   /* delete HKCU if found or HKLM if not */
+    SHREGDEL_HKCU = 0x01,   /* delete HKCU */
+    SHREGDEL_HKLM = 0x10,   /* delete HKLM */
+    SHREGDEL_BOTH = 0x11,   /* delete HKCU *and* HKLM */
+} SHREGDEL_FLAGS; 
+
+typedef enum {
+    SHREGENUM_DEFAULT = 0,  /* do HKCU or HKLM if not found */
+    SHREGENUM_HKCU = 0x01,  /* do HKCU only  */
+    SHREGENUM_HKLM = 0x10,  /* do HKLM only  */
+    SHREGENUM_BOTH = 0x11,  /* do both HKCU and HKLM without dups */
+} SHREGENUM_FLAGS; 
+
+
+
 HRESULT WINAPI UrlCanonicalizeA(LPCSTR pszUrl, LPSTR pszCanonicalized, 
 				LPDWORD pcchCanonicalized, DWORD dwFlags);
 HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized,