- 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,