Fungsi VerQueryValueW (winver.h)
Mengambil informasi versi yang ditentukan dari sumber daya informasi versi yang ditentukan. Untuk mengambil sumber daya yang sesuai, sebelum Anda memanggil
Sintaksis
BOOL VerQueryValueW(
[in] LPCVOID pBlock,
[in] LPCWSTR lpSubBlock,
[out] LPVOID *lplpBuffer,
[out] PUINT puLen
);
Parameter
[in] pBlock
Jenis: LPCVOID
Sumber daya informasi versi yang dikembalikan oleh fungsi
[in] lpSubBlock
Jenis:
Nilai informasi versi yang akan diambil. String harus terdiri dari nama yang dipisahkan oleh garis miring terbelakang (\) dan harus memiliki salah satu formulir berikut.
\
Blok akar. Fungsi ini mengambil penunjuk ke struktur VS_FIXEDFILEINFO untuk sumber daya informasi versi.
\VarFileInfo\Translation
Array terjemahan dalam struktur informasi variabel Var
\StringFileInfo\lang-codepage\string-name
Nilai dalam struktur
[out] lplpBuffer
Jenis: LPVOID*
Ketika metode ini kembali, berisi alamat penunjuk ke informasi versi yang diminta dalam buffer yang ditunjukkan oleh pBlock. Memori yang ditujukkan oleh
[out] puLen
Jenis: PUINT
Ketika metode ini kembali, berisi penunjuk ke ukuran data yang diminta yang diacu oleh lplpBuffer: untuk nilai informasi versi, panjang karakter string yang disimpan di lplpBuffer; untuk nilai array terjemahan, ukuran dalam byte array yang disimpan di lplpBuffer; dan untuk blok akar, ukuran dalam byte struktur.
Mengembalikan nilai
Jenis: BOOL
Jika struktur informasi versi yang ditentukan ada, dan informasi versi tersedia, nilai pengembaliannya bukan nol. Jika alamat buffer panjang adalah nol, tidak ada nilai yang tersedia untuk nama informasi versi yang ditentukan.
Jika nama yang ditentukan tidak ada atau sumber daya yang ditentukan tidak valid, nilai pengembaliannya adalah nol.
Komentar
Fungsi ini berfungsi pada gambar file 16-, 32-, dan 64-bit.
Berikut ini adalah string Unicode informasi versi yang telah ditentukan sebelumnya.
Komentar | InternalName | ProductName |
CompanyName | LegalCopyright | ProductVersion |
FileDescription | LegalTrademarks | PrivateBuild |
FileVersion | OriginalFilename | SpecialBuild |
Contoh
Contoh berikut menunjukkan cara menghitung bahasa versi yang tersedia dan mengambil nilai string FileDescription untuk setiap bahasa.
Pastikan untuk memanggil fungsi
// 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
Header winver.h mendefinisikan VerQueryValue sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosedur UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Platform Target |
Windows |
Header |
winver.h (termasuk Windows.h) |
Pustaka |
Version.lib |
DLL |
Api-ms-win-core-version-l1-1-0.dll |
Lihat juga
Konseptual
Referensi
String
Informasi Versi