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