Module: wine Branch: master Commit: 52bd8542b7d22b5093f67dacd79e92e35d07fec7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=52bd8542b7d22b5093f67dacd7...
Author: Piotr Caban piotr@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