Scroll to navigation

SHQueryValueExA(3w) Wine API SHQueryValueExA(3w)


SHQueryValueExA (SHLWAPI.@)


HKEY hKey,
LPCSTR lpszValue,
LPDWORD lpReserved,
LPVOID pvData,


Get a value from the registry, expanding environment variable strings.


hKey [In] Handle to registry key.
lpszValue [In] Name of value to query.
lpReserved [Out] Reserved for future use; must be NULL.
pwType [Out] Optional pointer updated with the values type.
pvData [Out] Optional pointer updated with the values data.
pcbData [Out] Optional pointer updated with the values size.


Success: ERROR_SUCCESS. Any non NULL output parameters are updated with information about the value.
Failure: ERROR_OUTOFMEMORY if memory allocation fails, or the type of the data is REG_EXPAND_SZ and pcbData is NULL. Otherwise an error code from RegQueryValueExA(3w) or ExpandEnvironmentStringsA(3w).


Either pwType, pvData or pcbData may be NULL if the caller doesn't want the type, data or size information for the value.
If the type of the data is REG_EXPAND_SZ, it is expanded to REG_SZ. The value returned will be truncated if it is of type REG_SZ and bigger than the buffer given to store it.
REG_EXPAND_SZ: case-1: the unexpanded string is smaller than the expanded one subcase-1: the buffer is too small to hold the unexpanded string: function fails and returns the size of the unexpanded string.
subcase-2: buffer is too small to hold the expanded string: the function return success (!!) and the result is truncated *** This is clearly an error in the native implementation. ***.
case-2: the unexpanded string is bigger than the expanded one The buffer must have enough space to hold the unexpanded string even if the result is smaller.


Declared in "shlwapi.h".
Implemented in "dlls/shlwapi/reg.c".
Debug channel "shell".
Oct 2012 Wine API