wine/dlls/shlwapi shlwapi.spec reg.c

Alexandre Julliard julliard at wine.codeweavers.com
Mon Nov 7 14:14:27 CST 2005


ChangeSet ID:	21147
CVSROOT:	/opt/cvs-commit
Module name:	wine
Changes by:	julliard at winehq.org	2005/11/07 14:14:27

Modified files:
	dlls/shlwapi   : shlwapi.spec reg.c 

Log message:
	Uwe Bonnes <bon at elektron.ikp.physik.tu-darmstadt.de>
	Semi-stub implementation for SHRegGetValue(A|W).

Patch: http://cvs.winehq.org/patch.py?id=21147

Old revision  New revision  Changes     Path
 1.111         1.112         +2 -0       wine/dlls/shlwapi/shlwapi.spec
 1.63          1.64          +62 -0      wine/dlls/shlwapi/reg.c

Index: wine/dlls/shlwapi/shlwapi.spec
diff -u -p wine/dlls/shlwapi/shlwapi.spec:1.111 wine/dlls/shlwapi/shlwapi.spec:1.112
--- wine/dlls/shlwapi/shlwapi.spec:1.111	7 Nov 2005 20:14:27 -0000
+++ wine/dlls/shlwapi/shlwapi.spec	7 Nov 2005 20:14:27 -0000
@@ -726,6 +726,8 @@
 @ stdcall SHRegGetPathW(long wstr wstr ptr long)
 @ stdcall SHRegGetUSValueA ( str str ptr ptr ptr long ptr long )
 @ stdcall SHRegGetUSValueW ( wstr wstr ptr ptr ptr long ptr long )
+@ stdcall SHRegGetValueA ( long str str long ptr ptr ptr )
+@ stdcall SHRegGetValueW ( long wstr wstr long ptr ptr ptr )
 @ stdcall SHRegOpenUSKeyA ( str long long long long )
 @ stdcall SHRegOpenUSKeyW ( wstr long long long long )
 @ stdcall SHRegQueryInfoUSKeyA ( long ptr ptr ptr ptr long )
Index: wine/dlls/shlwapi/reg.c
diff -u -p wine/dlls/shlwapi/reg.c:1.63 wine/dlls/shlwapi/reg.c:1.64
--- wine/dlls/shlwapi/reg.c:1.63	7 Nov 2005 20:14:27 -0000
+++ wine/dlls/shlwapi/reg.c	7 Nov 2005 20:14:27 -0000
@@ -1140,6 +1140,68 @@ DWORD WINAPI SHGetValueA(HKEY hKey, LPCS
 }
 
 /*************************************************************************
+ * SHRegGetValueA   [SHLWAPI.@]
+ *
+ * Get a value from the registry.
+ *
+ * PARAMS
+ *   hKey       [I] Handle to registry key
+ *   lpszSubKey [I] Name of sub key containing value to get
+ *   lpszValue  [I] Name of value to get
+ *   srrf       [I] Flags for restricting returned data
+ *   pwType     [O] Pointer to the values type
+ *   pvData     [O] Pointer to the values data
+ *   pcbData    [O] Pointer to the values size
+ *
+ * RETURNS
+ *   Success: ERROR_SUCCESS. Output parameters contain the details read.
+ *   Failure: An error code from RegOpenKeyExA() or SHQueryValueExA().
+ */
+DWORD WINAPI SHRegGetValueA(HKEY hKey, LPCSTR lpszSubKey, LPCSTR lpszValue, DWORD srrfFlags,
+                         LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
+{
+  DWORD dwRet = 0;
+  HKEY hSubKey = 0;
+
+  TRACE("(hkey=%p,%s,%s,%p,%p,%p)\n", hKey, debugstr_a(lpszSubKey),
+        debugstr_a(lpszValue), pwType, pvData, pcbData);
+  FIXME("Semi-Stub: Find meaning and implement handling of SRFF Flags 0x%08lx\n", srrfFlags);
+
+  dwRet = RegOpenKeyExA(hKey, lpszSubKey, 0, KEY_QUERY_VALUE, &hSubKey);
+  if (! dwRet)
+  {
+    /* SHQueryValueEx expands Environment strings */
+    dwRet = SHQueryValueExA(hSubKey, lpszValue, 0, pwType, pvData, pcbData);
+    RegCloseKey(hSubKey);
+  }
+  return dwRet;
+}
+
+/*************************************************************************
+ * SHReg GetRegValueW   [SHLWAPI.@]
+ *
+ * See SHGetValueA.
+ */
+DWORD WINAPI SHRegGetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, DWORD srrfFlags,
+                         LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
+{
+  DWORD dwRet = 0;
+  HKEY hSubKey = 0;
+
+  TRACE("(hkey=%p,%s,%s,0x%08lx, %p,%p,%p)\n", hKey, debugstr_w(lpszSubKey),
+        debugstr_w(lpszValue), srrfFlags,pwType, pvData, pcbData);
+  FIXME("Semi-Stub: Find meaning and implement handling of SRFF Flags 0x%08lx\n", srrfFlags);
+
+  dwRet = RegOpenKeyExW(hKey, lpszSubKey, 0, KEY_QUERY_VALUE, &hSubKey);
+  if (! dwRet)
+  {
+    dwRet = SHQueryValueExW(hSubKey, lpszValue, 0, pwType, pvData, pcbData);
+    RegCloseKey(hSubKey);
+  }
+  return dwRet;
+}
+
+/*************************************************************************
  * SHGetValueW   [SHLWAPI.@]
  *
  * See SHGetValueA.



More information about the wine-cvs mailing list