Piotr Caban : shlwapi: Added SKAllocValueW implementation.
Alexandre Julliard
julliard at winehq.org
Tue Oct 12 11:27:02 CDT 2010
Module: wine
Branch: master
Commit: 0ce727e433db14225a6d9869b918500461ceb7b2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0ce727e433db14225a6d9869b918500461ceb7b2
Author: Piotr Caban <piotr at codeweavers.com>
Date: Tue Oct 12 16:37:08 2010 +0200
shlwapi: Added SKAllocValueW implementation.
---
dlls/shlwapi/ordinal.c | 37 +++++++++++++++++++++++++++++++++++++
dlls/shlwapi/shlwapi.spec | 2 +-
2 files changed, 38 insertions(+), 1 deletions(-)
diff --git a/dlls/shlwapi/ordinal.c b/dlls/shlwapi/ordinal.c
index 63fffb2..8cd9eaa 100644
--- a/dlls/shlwapi/ordinal.c
+++ b/dlls/shlwapi/ordinal.c
@@ -4604,6 +4604,43 @@ HRESULT WINAPI IUnknown_OnFocusChangeIS(LPUNKNOWN lpUnknown, LPUNKNOWN pFocusObj
}
/***********************************************************************
+ * SKAllocValueW (SHLWAPI.519)
+ */
+HRESULT WINAPI SKAllocValueW(DWORD flags, LPCWSTR subkey, LPCWSTR value, DWORD *type,
+ LPVOID *data, DWORD *count)
+{
+ DWORD ret, size;
+ HKEY hkey;
+
+ TRACE("(0x%x, %s, %s, %p, %p, %p)\n", flags, debugstr_w(subkey),
+ 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, NULL, &size);
+ if (ret) {
+ RegCloseKey(hkey);
+ return HRESULT_FROM_WIN32(ret);
+ }
+
+ size += 2;
+ *data = LocalAlloc(0, size);
+ if (!*data) {
+ RegCloseKey(hkey);
+ return E_OUTOFMEMORY;
+ }
+
+ ret = SHQueryValueExW(hkey, value, NULL, type, *data, &size);
+ if (count)
+ *count = size;
+
+ RegCloseKey(hkey);
+ return HRESULT_FROM_WIN32(ret);
+}
+
+/***********************************************************************
* SKGetValueW (SHLWAPI.516)
*/
HRESULT WINAPI SKGetValueW(DWORD flags, LPCWSTR subkey, LPCWSTR value, DWORD *type,
diff --git a/dlls/shlwapi/shlwapi.spec b/dlls/shlwapi/shlwapi.spec
index 53dc250..dcd9989 100644
--- a/dlls/shlwapi/shlwapi.spec
+++ b/dlls/shlwapi/shlwapi.spec
@@ -512,7 +512,7 @@
516 stdcall -noname SKGetValueW(long wstr wstr long long long)
517 stub -noname SKSetValueW
518 stub -noname SKDeleteValueW
-519 stub -noname SKAllocValueW
+519 stdcall -noname SKAllocValueW(long wstr wstr ptr ptr ptr)
520 stub -noname SHPropertyBag_ReadBSTR
521 stub -noname SHPropertyBag_ReadPOINTL
522 stub -noname SHPropertyBag_WritePOINTL
More information about the wine-cvs
mailing list