Je comprends que le premier argument doit être le résultat de GetFileVersionInfo ().
Le troisième et le quasortingème sont les tampons cibles et la taille
Quel est le deuxième argument, lpSubBlock?
Merci d’avance
Lorsque vous affichez les informations de version via l’éditeur de ressources, vous remarquerez peut-être qu’il existe une section initiale avec FILEVERSION, PRODUCTVERISON etc., puis un ou plusieurs blocs contenant des parameters spécifiques à la langue.
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 "SsortingngFileInfo" 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
Pour obtenir un VS_FIXEDFILEINFO avec l’utilisation des détails non spécifiques à la langue
VS_FIXEDFILEINFO *versionInfo; PUINT versionInfoSize; VerQueryValue(buffer.get(), TEXT("\\"), (void**) &versionInfo, &versionInfoSize))
Pour savoir quelles langues sont sockets en charge
Var *translationsInfo; PUINT transaltionInfoSize; VerQueryValue(buffer.get(), TEXT("\\VarFileInfo\\Translation"), (void**) &translationsInfo, &transaltionInfoSize))
Pour obtenir les détails de la version spécifique à la langue, utilisez
SsortingngTable *ssortingngTable; PUINT ssortingngTableSize; std::wssortingng path( L"\\SsortingngFileInfo\\" ); path += L"040904b0"; // get this value from the language support list path += L"\\FileVersion"; VerQueryValue(buffer.get(), path.c_str(), (void**) &ssortingngTable, &ssortingngTableSize))
Ce doit être une chaîne dont vous pouvez trouver le format ici:
http://www.hep.wisc.edu/~pinghc/books/apirefeng/v/verqueryvalue.html
Il y a un autre exemple d’utilisation (en VB, facile à lire):
http://support.microsoft.com/kb/160042
Vous pouvez également consulter l’intégralité de l’article CodeProject pour un exemple de travail en C ++:
http://www.codeproject.com/KB/cpp/GetLocalVersionInfos.aspx
Un autre article sur le sujet de la récupération des informations de version:
http://www.microsoft.com/msj/0498/c0498.aspx