L
hast du dir das schonmal angeschaut: http://www.bytesandmore.de/rad/cpp/snipp/sc06001.php, läßt wahrscheinlich auch für SpecialBuild erweitern
[Edit]folgender Quellcode gibt bei mir auch das SpecialBuild aus:
DWORD DWD;
// Read size of info block.
DWORD VerInfoSize = GetFileVersionInfoSize(Application->ExeName.c_str(),&DWD);
if (VerInfoSize)
{
char *VerInfo = new char[VerInfoSize];
// Read info block.
if (!GetFileVersionInfo(Application->ExeName.c_str(),0,VerInfoSize,VerInfo)) RaiseLastWin32Error();
struct LANGANDCODEPAGE {
WORD wLanguage;
WORD wCodePage;
} *lpTranslate;
UINT cbTranslate;
// Read the list of languages and code pages.
VerQueryValue(VerInfo,
TEXT("\\VarFileInfo\\Translation"),
(LPVOID*)&lpTranslate,
&cbTranslate);
// Read the file description for each language and code page.
String SubBlock;
wchar_t *LangInfo;
UINT LangSize;
for( UINT i=0; i < (cbTranslate/sizeof(struct LANGANDCODEPAGE)); i++ )
{
SubBlock.printf(_T("\\StringFileInfo\\%04x%04x\\ProductName"),lpTranslate[i].wLanguage,lpTranslate[i].wCodePage);
VerQueryValue(VerInfo,SubBlock.c_str(),&(void*)LangInfo,&LangSize);
Label1->Caption = LangInfo;
SubBlock.printf(_T("\\StringFileInfo\\%04x%04x\\FileVersion"),lpTranslate[i].wLanguage,lpTranslate[i].wCodePage);
VerQueryValue(VerInfo,SubBlock.c_str(),&(void*)LangInfo,&LangSize);
Label2->Caption = LangInfo;
SubBlock.printf(_T("\\StringFileInfo\\%04x%04x\\SpecialBuild"),lpTranslate[i].wLanguage,lpTranslate[i].wCodePage);
VerQueryValue(VerInfo,SubBlock.c_str(),&(void*)LangInfo,&LangSize);
Label3->Caption = LangInfo;
}
delete[] VerInfo;
}