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