Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>When you view the version info through the resource editor you might notice that there is an initial section with FILEVERSION, PRODUCTVERISON etc. and then one or more blocks which contain language specific settings.</p> <pre><code>VS_VERSION_INFO VERSIONINFO FILEVERSION 5,0,0,0 PRODUCTVERSION 5,0,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN VALUE "CompanyName", "" VALUE "FileVersion", "5, 0, 0, 0" VALUE "ProductName", "" VALUE "ProductVersion", "5, 0, 0, 0" END BLOCK "000004b0" BEGIN VALUE "CompanyName", "" VALUE "FileVersion", "5, 0, 0, 0" VALUE "ProductName", "" VALUE "ProductVersion", "5, 0, 0, 0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x0, 1200, 0x409, 1200 END END </code></pre> <p>To get a VS_FIXEDFILEINFO with the non language specific detail use</p> <pre><code>VS_FIXEDFILEINFO *versionInfo; PUINT versionInfoSize; VerQueryValue(buffer.get(), TEXT("\\"), (void**) &amp;versionInfo, &amp;versionInfoSize)) </code></pre> <p>To find out what languages are supported use </p> <pre><code>Var *translationsInfo; PUINT transaltionInfoSize; VerQueryValue(buffer.get(), TEXT("\\VarFileInfo\\Translation"), (void**) &amp;translationsInfo, &amp;transaltionInfoSize)) </code></pre> <p>To get the language specific version detail then use</p> <pre><code>StringTable *stringTable; PUINT stringTableSize; std::wstring path( L"\\StringFileInfo\\" ); path += L"040904b0"; // get this value from the language support list path += L"\\FileVersion"; VerQueryValue(buffer.get(), path.c_str(), (void**) &amp;stringTable, &amp;stringTableSize)) </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload