beketata
|
Posted: Thu Mar 03, 2005 19:17 Post subject: |
|
|
При попытке считать данные о файле какого-либо плагина (комментарий или хотя бы копирайт) - в ответ получаю пустое поле.
... а в результате получаю только FileType...
FileType - это элемент структуры VS_FIXEDFILEINFO, в ней отсутствует "...комментарий или хотя бы копирайт" ...
Вот выдержка из MSDN:
Описание второго параметра функции VerQueryValue( , , , )
lpSubBlock
...[in] Pointer to a zero-terminated string specifying which version-information value to retrieve. The string must consist of names separated by backslashes (\) and it must have one of the following forms.
..........
\StringFileInfo\lang-codepage\string-name
Specifies a value in a language-specific StringTable structure.
..........
The string-name name must be one of the predefined strings described in the following Remarks section.
..........
А вот те самые "predefined strings":
Comments
InternalName
ProductName
CompanyName
LegalCopyright
ProductVersion
FileDescription
LegalTrademarks
PrivateBuild
FileVersion
OriginalFilename
SpecialBuild
Сначала в lpSubBlock нужно передать строку "\VarFileInfo\Translation"
struct LANGANDCODEPAGE {
WORD wLanguage;
WORD wCodePage;
} *lpTranslate;
// Read the list of languages and code pages.
VerQueryValue(pBlock,
TEXT("\\VarFileInfo\\Translation"),
(LPVOID*)&lpTranslate,
&cbTranslate);
и получив результат о lang-codepage, последовательно разбирать необходимые "predefined strings":
StringCchPrintf(SubBlock, 50,
TEXT("\\StringFileInfo\\%04x%04x\\predefined string"),
lpTranslate.wLanguage,
lpTranslate.wCodePage);
VerQueryValue(pBlock,
SubBlock,
&lpBuffer,
&dwBytes); |
|