Не удается получить минорную версию исполняемого файла
В файле ресурсов прописана версия исполняемого файла, мне нужно извлечь минорную, и мажорную версию, мажорная извлекается, но вот минорная увы:
char buffer[64] = { 0 };
VS_FIXEDFILEINFO version_info = { 0 };
DWORD verHandle = 0;
UINT size = 0;
LPBYTE lpBuffer = NULL;
DWORD verSize = GetFileVersionInfoSize("el.exe", &verHandle);
if (verSize != 0) {
LPSTR verData = malloc(verSize * sizeof(TCHAR));
if (GetFileVersionInfo(TEXT("el.exe"), verHandle, verSize, verData)) {
if (VerQueryValue(verData,"\\", (VOID FAR* FAR*) &lpBuffer, &size)) {
if (size) {
VS_FIXEDFILEINFO *verInfo = (VS_FIXEDFILEINFO *)lpBuffer;
if (verInfo->dwSignature == 0xfeef04bd) {
sprintf(buffer, "%d.%d",
( verInfo->dwFileVersionMS >> 16 ) & 0xffff,
( verInfo->dwFileVersionMS >> 0 ) & 0xffff);
version_info = (*verInfo);
}
}
}
}
free(verData);
}
Данный код отдает 1.0 вместо 1.10.
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "041904b0"
BEGIN
...
VALUE "FileVersion", "1.10.0.0"
VALUE "ProductVersion", "1.10.0.0"
...
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x419, 1200
END
END
Как правильно извлечь версию?