Funzione VerQueryValueA (winver.h)
Recupera le informazioni sulla versione specificate dalla risorsa di informazioni sulla versione specificata. Per recuperare la risorsa appropriata, prima di chiamare
Sintassi
BOOL VerQueryValueA(
[in] LPCVOID pBlock,
[in] LPCSTR lpSubBlock,
[out] LPVOID *lplpBuffer,
[out] PUINT puLen
);
Parametri
[in] pBlock
Tipo: LPCVOID
Risorsa delle informazioni sulla versione restituita dalla funzione GetFileVersionInfo
[in] lpSubBlock
Tipo: LPCTSTR
Valore delle informazioni sulla versione da recuperare. La stringa deve essere costituita da nomi separati da barre rovesciate (\) e deve avere uno dei formati seguenti.
\
Blocco radice. La funzione recupera un puntatore alla struttura VS_FIXEDFILEINFO per la risorsa delle informazioni sulla versione.
\VarFileInfo\Translation
Matrice di conversione in una struttura di informazioni sulle variabili Var
\StringFileInfo\lang-codepage\string-name
Valore in una struttura di StringTable specifica del linguaggio
[out] lplpBuffer
Tipo: LPVOID*
Quando termina, questo metodo contiene l'indirizzo di un puntatore alle informazioni sulla versione richieste nel buffer a cui punta pBlock. La memoria a cui punta
[out] puLen
Tipo: PUINT
Quando termina, questo metodo contiene un puntatore alle dimensioni dei dati richiesti a cui punta lplpBuffer: per i valori delle informazioni sulla versione, la lunghezza in caratteri della stringa archiviata in lplpBuffer; per i valori della matrice di traduzione, le dimensioni in byte della matrice archiviate in lplpBuffer; e per il blocco radice, le dimensioni in byte della struttura.
Valore restituito
Tipo: bool
Se la struttura di informazioni sulla versione specificata esiste e le informazioni sulla versione sono disponibili, il valore restituito è diverso da zero. Se l'indirizzo del buffer di lunghezza è zero, non è disponibile alcun valore per il nome delle informazioni sulla versione specificato.
Se il nome specificato non esiste o la risorsa specificata non è valida, il valore restituito è zero.
Osservazioni
Questa funzione funziona su immagini di file a 16, 32 e 64 bit.
Di seguito sono riportate le informazioni sulla versione predefinite delle stringhe Unicode.
Commenti | InternalName | ProductName |
CompanyName | LegalCopyright | ProductVersion |
FileDescription | LegalTrademarks | PrivateBuild |
FileVersion | OriginalFilename | SpecialBuild |
Esempi
Nell'esempio seguente viene illustrato come enumerare le lingue di versione disponibili e recuperare il valore stringa FileDescription per ogni linguaggio.
Assicurarsi di chiamare le funzioni
// 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
L'intestazione winver.h definisce VerQueryValue come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional [solo app desktop] |
server minimo supportato | Windows 2000 Server [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
winver.h (include Windows.h) |
libreria |
Version.lib |
dll | Api-ms-win-core-version-l1-1-0.dll |
Vedere anche
concettuale
riferimento