Compartir a través de


Función OREnumValue

Enumera los valores de la clave del Registro abierta especificada en un subárbol del Registro sin conexión. La función recupera información de un valor bajo la clave especificada cada vez que se llama a la función.

Sintaxis

DWORD OREnumValue(
  _In_        ORHKEY Handle,
  _In_        DWORD  dwIndex,
  _Out_       PWSTR  lpValueName,
  _Inout_     PDWORD lpcValueName,
  _Out_opt_   PDWORD lpType,
  _Out_opt_   PBYTE  lpData,
  _Inout_opt_ PDWORD lpcbData
);

Parámetros

Identificador [in]

Identificador de una clave del Registro abierta en un subárbol del registro sin conexión.

dwIndex [in]

Índice del valor que se va a recuperar. Este parámetro debe ser cero para la primera llamada a la función y, a continuación, incrementarse para las llamadas posteriores.

Dado que los valores no están ordenados, ningún nuevo valor tendrá un índice arbitrario. Esto significa que la función puede devolver valores en cualquier orden.

lpValueName [out]

Puntero a un búfer que recibe el nombre del valor como una cadena terminada en NULL. Este búfer debe ser lo suficientemente grande como para incluir el carácter nulo de terminación.

Para obtener más información, vea Límites de tamaño de elemento del Registro.

lpcValueName [in, out]

Puntero a una variable que especifica el tamaño del búfer al que apunta el parámetro lpValueName , en caracteres. Cuando se devuelve la función, la variable recibe el número de caracteres almacenados en el búfer, sin incluir el carácter nulo de terminación.

lpType [out, optional]

Puntero a una variable que recibe un código que indica el tipo de datos almacenados en el valor especificado. Para obtener una lista de los posibles códigos de tipo, vea Tipos de valor del Registro. El parámetro lpType puede ser NULL si el código de tipo no es necesario.

lpData [out, optional]

Puntero a un búfer que recibe los datos de la entrada de valor. Este parámetro puede ser NULL si los datos no son necesarios.

Si lpData es NULL y lpcbData no es NULL, la función almacena el tamaño de los datos, en bytes, en la variable a la que apunta lpcbData. Esto permite a una aplicación determinar la mejor manera de asignar un búfer para los datos.

lpcbData [in, out, optional]

Puntero a una variable que especifica el tamaño del búfer al que apunta el parámetro lpData , en bytes. Cuando se devuelve la función, la variable recibe el número de bytes almacenados en el búfer.

Este parámetro solo puede ser NULL si lpData es NULL.

Si los datos tienen el REG_SZ, REG_MULTI_SZ o REG_EXPAND_SZ tipo, este tamaño incluye cualquier carácter o caracteres nulos de terminación. Para obtener más información, vea la sección Comentarios.

Si el búfer especificado por lpData no es lo suficientemente grande como para contener los datos, la función devuelve ERROR_MORE_DATA y almacena el tamaño de búfer necesario en la variable a la que apunta lpcbData. En este caso, el contenido de lpData no está definido.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS.

Si la función no se ejecuta correctamente, el valor devuelto es un código de error distinto de cero definido en Winerror.h. Puede usar la función FormatMessage con la marca FORMAT_MESSAGE_FROM_SYSTEM para obtener una descripción genérica del error.

Si el búfer lpData es demasiado pequeño para recibir el valor, la función devuelve ERROR_MORE_DATA.

Comentarios

Para enumerar los valores, una aplicación debe llamar inicialmente a la función OREnumValue con el parámetro dwIndex establecido en cero. A continuación, la aplicación debe incrementar dwIndex y llamar a la función OREnumValue hasta que no haya más valores (hasta que la función devuelva ERROR_NO_MORE_ITEMS).

La aplicación también puede establecer dwIndex en el índice del último valor de la primera llamada a la función y reducir el índice hasta que se enumera el valor con el índice 0. Para recuperar el índice del último valor, use la función ORQueryInfoKey .

Al usar OREnumValue, una aplicación no debe llamar a ninguna función del Registro sin conexión que pueda cambiar la clave que se está consultando.

Si los datos tienen el REG_SZ, REG_MULTI_SZ o REG_EXPAND_SZ tipo, es posible que la cadena no se haya almacenado con los caracteres de terminación null adecuados. Por lo tanto, incluso si la función devuelve ERROR_SUCCESS, la aplicación debe asegurarse de que la cadena finaliza correctamente antes de usarla; de lo contrario, puede sobrescribir un búfer. (Tenga en cuenta que REG_MULTI_SZ cadenas deben tener dos caracteres de terminación NULL).

Para determinar el tamaño máximo de los búferes de nombres y datos, use la función ORQueryInfoKey .

Requisitos

Requisito Value
Redistribuible
Biblioteca del Registro sin conexión de Windows versión 1.0 o posterior
Encabezado
Offreg.h
Archivo DLL
Offreg.dll

Consulte también

ORCreateKey

OREnumKey

OROpenKey

ORQueryInfoKey