Compartir a través de


Función VerQueryValueA (winver.h)

Recupera la información de versión especificada del recurso de información de versión especificado. Para recuperar el recurso adecuado, antes de llamar a VerQueryValue, primero debe llamar a la función GetFileVersionInfoSize y, a continuación, a la función GetFileVersionInfo.

Sintaxis

BOOL VerQueryValueA(
  [in]  LPCVOID pBlock,
  [in]  LPCSTR  lpSubBlock,
  [out] LPVOID  *lplpBuffer,
  [out] PUINT   puLen
);

Parámetros

[in] pBlock

Tipo: LPCVOID

El recurso version-information devuelto por la función GetFileVersionInfo.

[in] lpSubBlock

Tipo: LPCTSTR de

Valor de la información de versión que se va a recuperar. La cadena debe constar de nombres separados por barras diagonales inversas (\) y debe tener una de las formas siguientes.

\

Bloque raíz. La función recupera un puntero a la estructura VS_FIXEDFILEINFO del recurso de información de versión.

\VarFileInfo\Translation

Matriz de traducción en una estructura de información de variable var var: el miembro Value de esta estructura. La función recupera un puntero a esta matriz de identificadores de idioma y página de códigos. Una aplicación puede usar estos identificadores para acceder a una estructura de stringTable específica del lenguaje (mediante el miembro szKey) en el recurso de información de versión.

\StringFileInfo\lang-codepage\string-name

Valor de una estructura StringTable específica del lenguaje. El nombre de la página de códigos lang es una concatenación de un par de identificadores de página de códigos y idioma que se encuentra como un DWORD en la matriz de traducción del recurso. Aquí el nombre de la página de códigos lang debe especificarse como una cadena hexadecimal. El nombre de cadena debe ser una de las cadenas predefinidas descritas en la sección Comentarios siguiente. La función recupera un valor de cadena específico del idioma y la página de códigos indicado.

[out] lplpBuffer

Tipo: LPVOID*

Cuando este método vuelve, contiene la dirección de un puntero a la información de versión solicitada en el búfer al que apunta pBlock. La memoria a la que apunta lplpBuffer se libera cuando se libera la memoria pBlock asociada.

[out] puLen

Tipo: PUINT

Cuando este método devuelve, contiene un puntero al tamaño de los datos solicitados a los que apunta lplpBuffer: para los valores de información de versión, la longitud en caracteres de la cadena almacenada en lplpBuffer; para los valores de matriz de traducción, el tamaño en bytes de la matriz almacenada en lplpBuffer; y para el bloque raíz, el tamaño en bytes de la estructura.

Valor devuelto

Tipo: BOOL de

Si existe la estructura de información de versión especificada y la información de versión está disponible, el valor devuelto es distinto de cero. Si la dirección del búfer de longitud es cero, no hay ningún valor disponible para el nombre de información de versión especificado.

Si el nombre especificado no existe o el recurso especificado no es válido, el valor devuelto es cero.

Observaciones

Esta función funciona en imágenes de archivo de 16, 32 y 64 bits.

A continuación se muestran cadenas Unicode de información de versión predefinidas.

Comentarios InternalName ProductName
CompanyName LegalCopyright ProductVersion
FileDescription LegalTrademarks PrivateBuild
FileVersion OriginalFilename SpecialBuild
 

Ejemplos

En el ejemplo siguiente se muestra cómo enumerar los idiomas de versión disponibles y recuperar el valor de cadena FileDescription para cada idioma.

Asegúrese de llamar a las funciones GetFileVersionInfoSize y GetFileVersionInfo antes de llamar a VerQueryValue para inicializar correctamente el búfer de pBlock.

// Structure used to store enumerated languages and code pages.

HRESULT hr;

struct LANGANDCODEPAGE {
  WORD wLanguage;
  WORD wCodePage;
} *lpTranslate;

// Read the list of languages and code pages.

VerQueryValue(pBlock, 
              TEXT("\\VarFileInfo\\Translation"),
              (LPVOID*)&lpTranslate,
              &cbTranslate);

// Read the file description for each language and code page.

for( i=0; i < (cbTranslate/sizeof(struct LANGANDCODEPAGE)); i++ )
{
  hr = StringCchPrintf(SubBlock, 50,
            TEXT("\\StringFileInfo\\%04x%04x\\FileDescription"),
            lpTranslate[i].wLanguage,
            lpTranslate[i].wCodePage);
	if (FAILED(hr))
	{
	// TODO: write error handler.
	}

  // Retrieve file description for language and code page "i". 
  VerQueryValue(pBlock, 
                SubBlock, 
                &lpBuffer, 
                &dwBytes); 
}

Nota

El encabezado winver.h define VerQueryValue 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 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de winver.h (incluya Windows.h)
biblioteca de Version.lib
DLL de Api-ms-win-core-version-l1-1-0.dll

Consulte también

conceptual de

GetFileVersionInfo

GetFileVersionInfoSize

de referencia de

cadena

StringFileInfo

StringTable

VS_FIXEDFILEINFO

VS_VERSIONINFO

var

varFileInfo de

de información de versión de