Commit c51e9964 authored by Uwe Bonnes's avatar Uwe Bonnes Committed by Alexandre Julliard

Semi-stub implementation for SHRegGetValue(A|W).

parent 217e499d
......@@ -1140,6 +1140,68 @@ DWORD WINAPI SHGetValueA(HKEY hKey, LPCSTR lpszSubKey, LPCSTR lpszValue,
}
/*************************************************************************
* SHRegGetValueA [SHLWAPI.@]
*
* Get a value from the registry.
*
* PARAMS
* hKey [I] Handle to registry key
* lpszSubKey [I] Name of sub key containing value to get
* lpszValue [I] Name of value to get
* srrf [I] Flags for restricting returned data
* pwType [O] Pointer to the values type
* pvData [O] Pointer to the values data
* pcbData [O] Pointer to the values size
*
* RETURNS
* Success: ERROR_SUCCESS. Output parameters contain the details read.
* Failure: An error code from RegOpenKeyExA() or SHQueryValueExA().
*/
DWORD WINAPI SHRegGetValueA(HKEY hKey, LPCSTR lpszSubKey, LPCSTR lpszValue, DWORD srrfFlags,
LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
{
DWORD dwRet = 0;
HKEY hSubKey = 0;
TRACE("(hkey=%p,%s,%s,%p,%p,%p)\n", hKey, debugstr_a(lpszSubKey),
debugstr_a(lpszValue), pwType, pvData, pcbData);
FIXME("Semi-Stub: Find meaning and implement handling of SRFF Flags 0x%08lx\n", srrfFlags);
dwRet = RegOpenKeyExA(hKey, lpszSubKey, 0, KEY_QUERY_VALUE, &hSubKey);
if (! dwRet)
{
/* SHQueryValueEx expands Environment strings */
dwRet = SHQueryValueExA(hSubKey, lpszValue, 0, pwType, pvData, pcbData);
RegCloseKey(hSubKey);
}
return dwRet;
}
/*************************************************************************
* SHReg GetRegValueW [SHLWAPI.@]
*
* See SHGetValueA.
*/
DWORD WINAPI SHRegGetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, DWORD srrfFlags,
LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
{
DWORD dwRet = 0;
HKEY hSubKey = 0;
TRACE("(hkey=%p,%s,%s,0x%08lx, %p,%p,%p)\n", hKey, debugstr_w(lpszSubKey),
debugstr_w(lpszValue), srrfFlags,pwType, pvData, pcbData);
FIXME("Semi-Stub: Find meaning and implement handling of SRFF Flags 0x%08lx\n", srrfFlags);
dwRet = RegOpenKeyExW(hKey, lpszSubKey, 0, KEY_QUERY_VALUE, &hSubKey);
if (! dwRet)
{
dwRet = SHQueryValueExW(hSubKey, lpszValue, 0, pwType, pvData, pcbData);
RegCloseKey(hSubKey);
}
return dwRet;
}
/*************************************************************************
* SHGetValueW [SHLWAPI.@]
*
* See SHGetValueA.
......
......@@ -726,6 +726,8 @@
@ stdcall SHRegGetPathW(long wstr wstr ptr long)
@ stdcall SHRegGetUSValueA ( str str ptr ptr ptr long ptr long )
@ stdcall SHRegGetUSValueW ( wstr wstr ptr ptr ptr long ptr long )
@ stdcall SHRegGetValueA ( long str str long ptr ptr ptr )
@ stdcall SHRegGetValueW ( long wstr wstr long ptr ptr ptr )
@ stdcall SHRegOpenUSKeyA ( str long long long long )
@ stdcall SHRegOpenUSKeyW ( wstr long long long long )
@ stdcall SHRegQueryInfoUSKeyA ( long ptr ptr ptr ptr long )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment