shlwapi: Forward SHGetValue() to shcore.dll.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
eed50a780a
commit
ec58bd31f7
|
@ -30,8 +30,8 @@
|
||||||
@ stdcall SHEnumValueA(long long str ptr ptr ptr ptr) shlwapi.SHEnumValueA
|
@ stdcall SHEnumValueA(long long str ptr ptr ptr ptr) shlwapi.SHEnumValueA
|
||||||
@ stdcall SHEnumValueW(long long wstr ptr ptr ptr ptr) shlwapi.SHEnumValueW
|
@ stdcall SHEnumValueW(long long wstr ptr ptr ptr ptr) shlwapi.SHEnumValueW
|
||||||
@ stdcall SHGetThreadRef(ptr) shlwapi.SHGetThreadRef
|
@ stdcall SHGetThreadRef(ptr) shlwapi.SHGetThreadRef
|
||||||
@ stdcall SHGetValueA( long str str ptr ptr ptr ) shlwapi.SHGetValueA
|
@ stdcall SHGetValueA(long str str ptr ptr ptr) shlwapi.SHGetValueA
|
||||||
@ stdcall SHGetValueW( long wstr wstr ptr ptr ptr ) shlwapi.SHGetValueW
|
@ stdcall SHGetValueW(long wstr wstr ptr ptr ptr) shlwapi.SHGetValueW
|
||||||
@ stdcall SHOpenRegStream2A(long str str long) shlwapi.SHOpenRegStream2A
|
@ stdcall SHOpenRegStream2A(long str str long) shlwapi.SHOpenRegStream2A
|
||||||
@ stdcall SHOpenRegStream2W(long wstr wstr long) shlwapi.SHOpenRegStream2W
|
@ stdcall SHOpenRegStream2W(long wstr wstr long) shlwapi.SHOpenRegStream2W
|
||||||
@ stdcall SHOpenRegStreamA(long str str long) shlwapi.SHOpenRegStreamA
|
@ stdcall SHOpenRegStreamA(long str str long) shlwapi.SHOpenRegStreamA
|
||||||
|
|
|
@ -47,72 +47,6 @@ static const WCHAR szExtensionW[] = { 'E', 'x', 't','e','n','s','i','o','n','\0'
|
||||||
INT WINAPI SHStringFromGUIDW(REFGUID,LPWSTR,INT);
|
INT WINAPI SHStringFromGUIDW(REFGUID,LPWSTR,INT);
|
||||||
HRESULT WINAPI SHRegGetCLSIDKeyW(REFGUID,LPCWSTR,BOOL,BOOL,PHKEY);
|
HRESULT WINAPI SHRegGetCLSIDKeyW(REFGUID,LPCWSTR,BOOL,BOOL,PHKEY);
|
||||||
|
|
||||||
/*************************************************************************
|
|
||||||
* SHGetValueA [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
|
|
||||||
* 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 SHGetValueA(HKEY hKey, LPCSTR lpszSubKey, LPCSTR lpszValue,
|
|
||||||
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);
|
|
||||||
|
|
||||||
/* lpszSubKey can be 0. In this case the value is taken from the
|
|
||||||
* current key.
|
|
||||||
*/
|
|
||||||
if(lpszSubKey)
|
|
||||||
dwRet = RegOpenKeyExA(hKey, lpszSubKey, 0, KEY_QUERY_VALUE, &hSubKey);
|
|
||||||
|
|
||||||
if (! dwRet)
|
|
||||||
{
|
|
||||||
/* SHQueryValueEx expands Environment strings */
|
|
||||||
dwRet = SHQueryValueExA(hSubKey ? hSubKey : hKey, lpszValue, 0, pwType, pvData, pcbData);
|
|
||||||
if (hSubKey) RegCloseKey(hSubKey);
|
|
||||||
}
|
|
||||||
return dwRet;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*************************************************************************
|
|
||||||
* SHGetValueW [SHLWAPI.@]
|
|
||||||
*
|
|
||||||
* See SHGetValueA.
|
|
||||||
*/
|
|
||||||
DWORD WINAPI SHGetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue,
|
|
||||||
LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
|
|
||||||
{
|
|
||||||
DWORD dwRet = 0;
|
|
||||||
HKEY hSubKey = 0;
|
|
||||||
|
|
||||||
TRACE("(hkey=%p,%s,%s,%p,%p,%p)\n", hKey, debugstr_w(lpszSubKey),
|
|
||||||
debugstr_w(lpszValue), pwType, pvData, pcbData);
|
|
||||||
|
|
||||||
if(lpszSubKey)
|
|
||||||
dwRet = RegOpenKeyExW(hKey, lpszSubKey, 0, KEY_QUERY_VALUE, &hSubKey);
|
|
||||||
|
|
||||||
if (! dwRet)
|
|
||||||
{
|
|
||||||
dwRet = SHQueryValueExW(hSubKey ? hSubKey : hKey, lpszValue, 0, pwType, pvData, pcbData);
|
|
||||||
if (hSubKey) RegCloseKey(hSubKey);
|
|
||||||
}
|
|
||||||
return dwRet;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* SHSetValueA [SHLWAPI.@]
|
* SHSetValueA [SHLWAPI.@]
|
||||||
*
|
*
|
||||||
|
|
|
@ -702,8 +702,8 @@
|
||||||
@ stdcall SHEnumValueW(long long wstr ptr ptr ptr ptr) shcore.SHEnumValueW
|
@ stdcall SHEnumValueW(long long wstr ptr ptr ptr ptr) shcore.SHEnumValueW
|
||||||
@ stdcall SHGetInverseCMAP ( ptr long )
|
@ stdcall SHGetInverseCMAP ( ptr long )
|
||||||
@ stdcall SHGetThreadRef(ptr) shcore.SHGetThreadRef
|
@ stdcall SHGetThreadRef(ptr) shcore.SHGetThreadRef
|
||||||
@ stdcall SHGetValueA ( long str str ptr ptr ptr )
|
@ stdcall -import SHGetValueA(long str str ptr ptr ptr)
|
||||||
@ stdcall SHGetValueW ( long wstr wstr ptr ptr ptr )
|
@ stdcall -import SHGetValueW(long wstr wstr ptr ptr ptr)
|
||||||
@ stdcall SHIsLowMemoryMachine(long)
|
@ stdcall SHIsLowMemoryMachine(long)
|
||||||
@ stdcall SHOpenRegStream2A(long str str long) shcore.SHOpenRegStream2A
|
@ stdcall SHOpenRegStream2A(long str str long) shcore.SHOpenRegStream2A
|
||||||
@ stdcall SHOpenRegStream2W(long wstr wstr long) shcore.SHOpenRegStream2W
|
@ stdcall SHOpenRegStream2W(long wstr wstr long) shcore.SHOpenRegStream2W
|
||||||
|
|
Loading…
Reference in New Issue