Función SHRegGetUSValueA (shlwapi.h)

Recupera un valor de una subclave del Registro en un subárbol específico del usuario (HKEY_CURRENT_USER o HKEY_LOCAL_MACHINE).

Sintaxis

LSTATUS SHRegGetUSValueA(
  [in]                LPCSTR pszSubKey,
  [in, optional]      LPCSTR pszValue,
  [in, out, optional] DWORD  *pdwType,
  [out, optional]     void   *pvData,
  [in, out, optional] DWORD  *pcbData,
  [in]                BOOL   fIgnoreHKCU,
  [in, optional]      void   *pvDefaultData,
  [in]                DWORD  dwDefaultDataSize
);

Parámetros

[in] pszSubKey

Tipo: LPCTSTR

Puntero a una cadena terminada en null con el nombre de la subclave relativa a HKEY_LOCAL_MACHINE y HKEY_CURRENT_USER. Por ejemplo: "Software\MyCompany\MyProduct".

[in, optional] pszValue

Tipo: LPCTSTR

Puntero a una cadena terminada en null con el nombre del valor. Este valor puede ser NULL.

[in, out, optional] pdwType

Tipo: DWORD*

Puntero a un DWORD que recibe el tipo de datos almacenados en el valor recuperado. Cuando se usan valores predeterminados, la entrada pdwType es el tipo del valor predeterminado. Para conocer los valores posibles, consulte Tipos de datos del Registro. Si no se requiere información de tipo, este parámetro puede ser NULL.

[out, optional] pvData

Tipo: void*

Puntero a un búfer que recibe los datos del valor.

[in, out, optional] pcbData

Tipo: DWORD*

Puntero a una variable que especifica el tamaño, en bytes, del búfer al que apunta pvData. Cuando se devuelve SHRegGetUSValue , pcbData contiene el tamaño de los datos copiados en pvData.

[in] fIgnoreHKCU

Tipo: BOOL

Variable que especifica la clave que se va a buscar. Cuando se establece en TRUE, SHRegGetUSValue omite HKEY_CURRENT_USER y devuelve el valor de la clave en HKEY_LOCAL_MACHINE.

[in, optional] pvDefaultData

Tipo: void*

Puntero a un búfer que recibe los datos predeterminados del valor.

[in] dwDefaultDataSize

Tipo: DWORD

Longitud, en bytes, del búfer al que apunta pvDefaultData.

Valor devuelto

Tipo: LSTATUS

Devuelve ERROR_SUCCESS si se ejecuta correctamente o si un código de error distinto de cero definido en Winerror.h de lo contrario. Puede usar la función FormatMessage con la marca FORMAT_MESSAGE_FROM_SYSTEM para recuperar una descripción genérica del error.

Comentarios

Cuando fIgnoreHKCU se establece en TRUE, SHRegGetUSValue devuelve el valor de la clave en HKEY_LOCAL_MACHINE. Cuando se establece en FALSE, SHRegGetUSValue primero intenta devolver el valor de la clave en HKEY_CURRENT_USER. Sin embargo, si la clave no se encuentra en HKEY_CURRENT_USER, el valor se devuelve de la clave en HKEY_LOCAL_MACHINE. Si ninguna clave está presente o si se produjo un error y dwDefaultDataSize no es cero, los datos predeterminados se copian en pvData y ERROR_SUCCESS devuelve. ERROR_SUCCESS devuelve datos predeterminados y no predeterminados, y no hay ninguna manera de distinguir qué valor copia en pvData. Para evitar el uso de datos predeterminados, establezca pvDefaultData en NULL y dwDefaultDataSize en cero.

Esta función abre la clave cada vez que se usa. Si el código implica obtener una serie de valores de la misma clave, es más eficaz abrir la clave una vez con SHRegOpenUSKey y, a continuación, usar SHRegQueryUSValue para recuperar los datos.

Nota

El encabezado shlwapi.h define SHRegGetUSValue como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional, Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shlwapi.h
Library Shlwapi.lib
Archivo DLL Shlwapi.dll (versión 4.71 o posterior)