Compartir a través de


Función SHRegGetValueA (shlwapi.h)

[shRegGetValue puede modificarse o no estar disponible en versiones posteriores del sistema operativo o del producto. Use regGetValue en su lugar.]

Recupera un valor del Registro.

Sintaxis

LSTATUS SHRegGetValueA(
  [in]      HKEY   hkey,
  [in]      LPCSTR pszSubKey,
  [in]      LPCSTR pszValue,
  [in]      SRRF   srrfFlags,
  [in, out] DWORD  *pdwType,
  [out]     void   *pvData,
  [in, out] DWORD  *pcbData
);

Parámetros

[in] hkey

Tipo: HKEY de

Identificador de la clave abierta actualmente o cualquiera de los siguientes valores predefinidos.

HKEY_CLASSES_ROOT

HKEY_CURRENT_CONFIG

HKEY_CURRENT_USER

HKEY_LOCAL_MACHINE

HKEY_PERFORMANCE_DATA

HKEY_USERS

[in] pszSubKey

Tipo: LPCTSTR de

Puntero a un cadena terminada en nullque especifica la ruta de acceso relativa de clave hkey a la subclave para recuperar el valor. Este parámetro puede ser NULL o una cadena vacía, en cuyo caso los datos se recuperan de la ubicación de hkey de .

[in] pszValue

Tipo: LPCTSTR de

Puntero a un cadena terminada en nullque contiene el nombre del valor. Este parámetro puede ser NULL o una cadena vacía, en cuyo caso los datos se recuperan del valor Predeterminado.

[in] srrfFlags

Tipo: SRRF

Una o varias de las marcas srRF de que restringen los datos que se van a recuperar. Se debe especificar al menos un valor de restricción de tipo (SRRF_RT).

[in, out] pdwType

Tipo: LPDWORD de

Puntero a un DWORD que recibe el tipo de datos almacenados en el valor recuperado. Cuando se usan valores predeterminados, el pdwType de entrada es el tipo del valor predeterminado. Para conocer los valores posibles, consulte tipos de datos del Registro. Si no se establece la marca SRRF_NOEXPAND, los tipos de REG_EXPAND_SZ se expanden automáticamente y se devuelven como REG_SZ. Si no se requiere información de tipo, este parámetro puede ser NULL.

[out] pvData

Tipo: LPVOID de

Puntero a un búfer que recibe los datos del valor. Este parámetro puede ser null si no se necesitan los datos. Por ejemplo, si solo estaba probando para la existencia de un valor, los datos de valor específicos serían superfluos.

[in, out] pcbData

Tipo: LPDWORD de

Puntero a un DWORD que, en la entrada, contiene el tamaño del búfer de datos de destino pvData, en bytes. Este valor solo se puede NULL si pvData es NULL. Al salir, pcbData apunta a uno de estos valores.

pvData Valor devuelto pcbData
NULL ERROR_SUCCESS Tamaño en bytes suficiente para contener los datos del Registro. Tenga en cuenta que no se garantiza que sea el tamaño preciso, sino solo un tamaño suficiente.
No NULL ERROR_SUCCESS Número exacto de bytes escritos en pvData.
No NULL ERROR_MORE_DATA Tamaño en bytes necesarios para contener todos los datos. Tenga en cuenta que no se garantiza que sea el tamaño preciso, sino solo un tamaño suficiente.

Valor devuelto

Tipo: LSTATUS de

Devuelve ERROR_SUCCESS si se ejecuta correctamente o 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.

Observaciones

SHRegGetValue proporciona comprobación de tipos de datos, comprobación del modo de arranque, expansión automática de datos de REG_EXPAND_SZ y nulo-terminación de REG_SZ, REG_EXPAND_SZ y datos de REG_MULTI_SZ garantizados.

La clave identificada por hkey debe haberse abierto con KEY_QUERY_VALUE acceso de seguridad. Si pszSubKey no es null o una cadena vacía, esa clave también debe poder abrirse con KEY_QUERY_VALUE acceso de seguridad en el contexto de llamada actual.

Si el tipo de datos es REG_SZ, REG_EXPAND_SZ o REG_MULTI_SZ, los datos devueltos incluyen o tienen en cuenta el null de la cadena-termination. Por ejemplo, si pvData no es NULL, los datos devueltos en ese búfer se nuloterminado. Si pcbData no es null, el tamaño del búfer al que apunta incluye los bytes necesarios para contener el carácter de nulo de terminación.

A menos que se establezca la marca SRRF_NOEXPAND, los datos de cadena de tipo REG_EXPAND_SZ se expanden automáticamente antes de devolverse. El tipo de cadena expandida se notifica en pdwType como REG_SZ, el parámetro pcbData apunta al número de bytes escritos para la cadena expandida y el búfer al que apunta pvData contiene la versión expandida de la cadena.

Notas de rendimiento de

Si pszSubKey no es null o una cadena vacía, esa clave se abre y cierra con esta función cada vez que se accede a ella. Si la aplicación debe recuperar una serie de valores de la misma subclave, verá un mejor rendimiento abriendo la clave mediante RegOpenKeyEx antes de llamar a SHRegGetValue. Use la clave devuelta en el parámetro phkResult de RegOpenKeyEx como parámetro hkey de en esta función, con pszSubKey establecido en NULL.

La posibilidad de una llamada adicional al Registro para leer o volver a leer los datos existe cuando el tipo de datos es REG_EXPAND_SZ y no se ha establecido la marca SRRF_NOEXPAND. Las condiciones siguientes dan como resultado esa llamada adicional.

  • pvData es NULL , pcbData no es NULL. Aunque no se recuperan los datos, el Registro debe leerse para obtener la cadena y esa cadena expandida para determinar el tamaño necesario del búfer de datos.
  • pvData no es null, pero es demasiado pequeño para contener los datos. Los datos se vuelven a leer para obtener la cadena completa, la cadena se expande y se determina el tamaño total necesario.

Nota

El encabezado shlwapi.h define SHRegGetValue 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP con SP2 [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2003 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de shlwapi.h
biblioteca de Shlwapi.lib
DLL de Shlwapi.dll (versión 6.0 o posterior)

Consulte también

RegQueryValueEx