Piotr Caban : shlwapi: Added SKSetValueW implementation.

Alexandre Julliard julliard at winehq.org
Tue Oct 12 11:27:02 CDT 2010


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Tue Oct 12 16:37:28 2010 +0200

shlwapi: Added SKSetValueW implementation.

---

 dlls/shlwapi/ordinal.c    |   25 +++++++++++++++++++++++++
 dlls/shlwapi/shlwapi.spec |    4 ++--
 2 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/dlls/shlwapi/ordinal.c b/dlls/shlwapi/ordinal.c
index aad8475..b04fd9e 100644
--- a/dlls/shlwapi/ordinal.c
+++ b/dlls/shlwapi/ordinal.c
@@ -4673,9 +4673,34 @@ HRESULT WINAPI SKGetValueW(DWORD flags, LPCWSTR subkey, LPCWSTR value, DWORD *ty
         debugstr_w(value), type, data, count);
 
     hkey = SHGetShellKey(flags, subkey, FALSE);
+    if (!hkey)
+        return HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND);
+
     ret = SHQueryValueExW(hkey, value, NULL, type, data, count);
+
     RegCloseKey(hkey);
+    return HRESULT_FROM_WIN32(ret);
+}
+
+/***********************************************************************
+ *		SKSetValueW (SHLWAPI.516)
+ */
+HRESULT WINAPI SKSetValueW(DWORD flags, LPCWSTR subkey, LPCWSTR value,
+        DWORD type, void *data, DWORD count)
+{
+    DWORD ret;
+    HKEY hkey;
 
+    TRACE("(0x%x, %s, %s, %x, %p, %d)\n", flags, debugstr_w(subkey),
+            debugstr_w(value), type, data, count);
+
+    hkey = SHGetShellKey(flags, subkey, TRUE);
+    if (!hkey)
+        return HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND);
+
+    ret = RegSetValueExW(hkey, value, 0, type, data, count);
+
+    RegCloseKey(hkey);
     return HRESULT_FROM_WIN32(ret);
 }
 
diff --git a/dlls/shlwapi/shlwapi.spec b/dlls/shlwapi/shlwapi.spec
index 04609b0..4a4f594 100644
--- a/dlls/shlwapi/shlwapi.spec
+++ b/dlls/shlwapi/shlwapi.spec
@@ -509,8 +509,8 @@
 513 stub -noname IStream_WritePidl
 514 stdcall -noname IUnknown_ProfferService(ptr ptr ptr ptr)
 515 stdcall -noname SHGetViewStatePropertyBag(ptr wstr long ptr ptr)
-516 stdcall -noname SKGetValueW(long wstr wstr long long long)
-517 stub -noname SKSetValueW
+516 stdcall -noname SKGetValueW(long wstr wstr ptr ptr ptr)
+517 stdcall -noname SKSetValueW(long wstr wstr long ptr long)
 518 stdcall -noname SKDeleteValueW(long wstr wstr)
 519 stdcall -noname SKAllocValueW(long wstr wstr ptr ptr ptr)
 520 stub -noname SHPropertyBag_ReadBSTR




More information about the wine-cvs mailing list