shlwapi: Added SKAllocValueW implementation.

This commit is contained in:
Piotr Caban 2010-10-12 16:37:08 +02:00 committed by Alexandre Julliard
parent c2f25a2206
commit 0ce727e433
2 changed files with 38 additions and 1 deletions

View File

@ -4603,6 +4603,43 @@ HRESULT WINAPI IUnknown_OnFocusChangeIS(LPUNKNOWN lpUnknown, LPUNKNOWN pFocusObj
return hRet;
}
/***********************************************************************
* 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)
*/

View File

@ -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