Vincent Povirk : shlwapi: Implement SHRegEnumUSValue.

Alexandre Julliard julliard at winehq.org
Wed May 19 10:34:14 CDT 2010


Module: wine
Branch: master
Commit: bea0daa281dd184c3f3e5fc5ac93a3723b4b3707
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=bea0daa281dd184c3f3e5fc5ac93a3723b4b3707

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Tue May 18 15:45:17 2010 -0500

shlwapi: Implement SHRegEnumUSValue.

---

 dlls/shlwapi/reg.c |   42 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 38 insertions(+), 4 deletions(-)

diff --git a/dlls/shlwapi/reg.c b/dlls/shlwapi/reg.c
index d641955..09fce55 100644
--- a/dlls/shlwapi/reg.c
+++ b/dlls/shlwapi/reg.c
@@ -331,8 +331,25 @@ LONG WINAPI SHRegEnumUSValueA(HUSKEY hUSKey, DWORD dwIndex, LPSTR pszValueName,
                               LPDWORD pcchValueNameLen, LPDWORD pdwType, LPVOID pvData,
                               LPDWORD pcbData, SHREGENUM_FLAGS enumRegFlags)
 {
-    FIXME("(%p, 0x%08x, %s, %p, %p, %p, %p, 0x%08x) stub\n", hUSKey, dwIndex,
-          debugstr_a(pszValueName), pcchValueNameLen, pdwType, pvData, pcbData, enumRegFlags);
+    HKEY dokey;
+
+    TRACE("(%p, 0x%08x, %p, %p, %p, %p, %p, 0x%08x)\n", hUSKey, dwIndex,
+          pszValueName, pcchValueNameLen, pdwType, pvData, pcbData, enumRegFlags);
+
+    if (((enumRegFlags == SHREGENUM_HKCU) ||
+         (enumRegFlags == SHREGENUM_DEFAULT)) &&
+        (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKCU))) {
+        return RegEnumValueA(dokey, dwIndex, pszValueName, pcchValueNameLen,
+                             NULL, pdwType, pvData, pcbData);
+    }
+
+    if (((enumRegFlags == SHREGENUM_HKLM) ||
+         (enumRegFlags == SHREGENUM_DEFAULT)) &&
+        (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKLM))) {
+        return RegEnumValueA(dokey, dwIndex, pszValueName, pcchValueNameLen,
+                             NULL, pdwType, pvData, pcbData);
+    }
+    FIXME("no support for SHREGENUM_BOTH\n");
     return ERROR_INVALID_FUNCTION;
 }
 
@@ -345,8 +362,25 @@ LONG WINAPI SHRegEnumUSValueW(HUSKEY hUSKey, DWORD dwIndex, LPWSTR pszValueName,
                               LPDWORD pcchValueNameLen, LPDWORD pdwType, LPVOID pvData,
                               LPDWORD pcbData, SHREGENUM_FLAGS enumRegFlags)
 {
-    FIXME("(%p, 0x%08x, %s, %p, %p, %p, %p, 0x%08x) stub\n", hUSKey, dwIndex,
-          debugstr_w(pszValueName), pcchValueNameLen, pdwType, pvData, pcbData, enumRegFlags);
+    HKEY dokey;
+
+    TRACE("(%p, 0x%08x, %p, %p, %p, %p, %p, 0x%08x)\n", hUSKey, dwIndex,
+          pszValueName, pcchValueNameLen, pdwType, pvData, pcbData, enumRegFlags);
+
+    if (((enumRegFlags == SHREGENUM_HKCU) ||
+         (enumRegFlags == SHREGENUM_DEFAULT)) &&
+        (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKCU))) {
+        return RegEnumValueW(dokey, dwIndex, pszValueName, pcchValueNameLen,
+                             NULL, pdwType, pvData, pcbData);
+    }
+
+    if (((enumRegFlags == SHREGENUM_HKLM) ||
+         (enumRegFlags == SHREGENUM_DEFAULT)) &&
+        (dokey = REG_GetHKEYFromHUSKEY(hUSKey,REG_HKLM))) {
+        return RegEnumValueW(dokey, dwIndex, pszValueName, pcchValueNameLen,
+                             NULL, pdwType, pvData, pcbData);
+    }
+    FIXME("no support for SHREGENUM_BOTH\n");
     return ERROR_INVALID_FUNCTION;
 }
 




More information about the wine-cvs mailing list