Implements SHRegSetUSValue{A|W}

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Oups with the attachement this time

In shlwapi/reg.c there are many duplicated functions A/W, I think we can
change that to A -> W calls, but it will be another patch.

ChangeLog:
    - Implements SHRegSetUSValueA and SHRegSetUSValueW
-- 
Maxime Bellengé <maxime.bellenge@laposte.net>
Index: dlls/shlwapi/reg.c
===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/reg.c,v
retrieving revision 1.35
diff -u -r1.35 reg.c
--- dlls/shlwapi/reg.c	2 Dec 2002 18:10:58 -0000	1.35
+++ dlls/shlwapi/reg.c	8 Mar 2003 11:53:24 -0000
@@ -396,7 +396,67 @@
 	if (ret == ERROR_SUCCESS) {
 	    ret = SHRegQueryUSValueW(myhuskey, pValue, pwType, pvData,
 				     pcbData, flagIgnoreHKCU, pDefaultData,
-				     wDefaultDataSize);
+				     wDefaultDataSize);	    
+	    SHRegCloseUSKey(myhuskey);
+	}
+	return ret;
+}
+
+/*************************************************************************
+ * SHRegSetUSValueA   [SHLWAPI.@]
+ */
+LONG WINAPI SHRegSetUSValueA(
+	LPCSTR pszSubKey,
+	LPCSTR pszValue,
+	DWORD   dwType,
+	LPVOID  pvData,
+	DWORD   cbData,
+	DWORD   dwFlags)
+{
+        HUSKEY myhuskey;
+	LONG   ret;
+	BOOL   ignoreHKCU;
+
+        if (!pvData) return ERROR_INVALID_FUNCTION;
+	TRACE("key '%s', value '%s', datalen %ld\n",
+	      debugstr_a(pszSubKey), debugstr_a(pszValue), cbData);
+	
+	ignoreHKCU = ((dwFlags == SHREGSET_HKLM) || (dwFlags == SHREGSET_FORCE_HKLM));
+
+	ret = SHRegOpenUSKeyA(pszSubKey, 0x1, 0, &myhuskey, ignoreHKCU);
+	if (ret == ERROR_SUCCESS) {
+ 	  ret = SHRegWriteUSValueA(myhuskey, pszValue, dwType, pvData, 
+				   cbData, dwFlags);
+	    SHRegCloseUSKey(myhuskey);
+	}
+	return ret;
+}
+
+/*************************************************************************
+ * SHRegSetUSValueW   [SHLWAPI.@]
+ */
+LONG WINAPI SHRegSetUSValueW(
+	LPCWSTR pszSubKey,
+	LPCWSTR pszValue,
+	DWORD   dwType,
+	LPVOID  pvData,
+	DWORD   cbData,
+	DWORD   dwFlags)
+{
+        HUSKEY myhuskey;
+	LONG   ret;
+	BOOL   ignoreHKCU;
+
+        if (!pvData) return ERROR_INVALID_FUNCTION;
+	TRACE("key '%s', value '%s', datalen %ld\n",
+	      debugstr_w(pszSubKey), debugstr_w(pszValue), cbData);
+	
+	ignoreHKCU = ((dwFlags == SHREGSET_HKLM) || (dwFlags == SHREGSET_FORCE_HKLM));
+
+	ret = SHRegOpenUSKeyW(pszSubKey, 0x1, 0, &myhuskey, ignoreHKCU);
+	if (ret == ERROR_SUCCESS) {
+ 	  ret = SHRegWriteUSValueW(myhuskey, pszValue, dwType, pvData, 
+				   cbData, dwFlags);
 	    SHRegCloseUSKey(myhuskey);
 	}
 	return ret;
Index: dlls/shlwapi/shlwapi.spec
===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/shlwapi.spec,v
retrieving revision 1.66
diff -u -r1.66 shlwapi.spec
--- dlls/shlwapi/shlwapi.spec	15 Jan 2003 00:53:39 -0000	1.66
+++ dlls/shlwapi/shlwapi.spec	8 Mar 2003 11:53:25 -0000
@@ -594,8 +594,8 @@
 @ stdcall SHRegQueryInfoUSKeyW ( long ptr ptr ptr ptr long ) SHRegQueryInfoUSKeyW
 @ stdcall SHRegQueryUSValueA ( long str ptr ptr ptr long ptr long ) SHRegQueryUSValueA
 @ stdcall SHRegQueryUSValueW ( long wstr ptr ptr ptr long ptr long ) SHRegQueryUSValueW
-@ stub    SHRegSetUSValueA
-@ stub    SHRegSetUSValueW
+@ stdcall SHRegSetUSValueA ( str str long ptr long long) SHRegSetUSValueA
+@ stdcall SHRegSetUSValueW ( wstr wstr long ptr long long) SHRegSetUSValueW
 @ stdcall SHRegWriteUSValueA (long str long ptr long long) SHRegWriteUSValueA
 @ stdcall SHRegWriteUSValueW (long str long ptr long long) SHRegWriteUSValueW
 @ stdcall SHSetValueA (long  str  str long ptr long) SHSetValueA

[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux