Bio si blizu rješenja - trebalo je uključiti još samo par funkcija.
Postiraću ti na brzinu sklepan kod, koji kod mene radi (provjereno).
Code:
#include <windows.h>
#include <iostream>
using namespace std;
void main()
{
DWORD dwSize = GetFileVersionInfoSize("brisime.exe", 0);
void* pFileInfo;
UINT size;
void* pData = (void*)new unsigned char[dwSize];
char chBuff[1024];
GetFileVersionInfo("brisime.exe", NULL, dwSize, pData);
DWORD* ptr;
VerQueryValue(pData, "\\VarFileInfo\\Translation",
(void**)&ptr, &size);
sprintf(chBuff, "\\StringFileInfo\\%04x%04x\\ProductName",
((*ptr) & 0xFFFF), ((*ptr) & 0xFFFF0000) >> 16);
VerQueryValue(pData, chBuff, &pFileInfo, &size);
char* chName = (char*)pFileInfo;
cout << chName << endl;
}
Važno je da uključiš version.lib u projekat.
Ovo nije baš "najsrećnije" rješenje, treba provjeravati povratne vrijednosti iz funkcija, itd., ali radi i može ti poslužiti kao pomoć. Na ovaj način možeš izvući i ostale informacije o fajlu koje te interesuju, a koje je proizvođač dokumentovao u resursima.