SHQueryValueExA.3w

Langue: en

Version: Jun 2009 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

SHQueryValueExA (SHLWAPI.@)

SYNOPSIS

DWORD SHQueryValueExA
 (
  HKEY    hKey,
  LPCSTR  lpszValue,
  LPDWORD lpReserved,
  LPDWORD pwType,
  LPVOID  pvData,
  LPDWORD pcbData
 )

DESCRIPTION

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

PARAMS

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.

RETURNS

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).

NOTES

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.

IMPLEMENTATION

Defined in "shlwapi.h".

Implemented in "dlls/shlwapi/reg.c".

Debug channel "shell".