Version String auslesen

Frarr

Mitglied
Hallo,
ich habe ein Problem beim Auslesen von Versionstrings aus Dateien.
Ohne Probleme kann ich mir auf folgende Art und weise die File und Produktversion besorgen. Auch die Art der Datei und Betriebssysteminformationen der Datei sind kein Problem

dwSize= GetFileVersionInfoSize(pFileName,lpdwHandle);
if(dwSize==0)
{
DWORD dwError = GetLastError();
}
else
{
bool bResult = GetFileVersionInfo(pFileName,dwHandle,(dwSize),lpData);
LPVOID *lplpBuffer=new LPVOID; // address of buffer for version value pointer
PUINT puLen=new UINT; // address of length buffer
bResult=VerQueryValue(lpData,"\\",lplpBuffer,puLen);
VS_FIXEDFILEINFO* pMyFileInfo=(VS_FIXEDFILEINFO*)*lplpBuffer;

Über pmyFileInfo habe ich Zugriff auf die beschriebenen Elemente.
Doch wie komme ich an die String Informationen?
z.B.: an Comment
in der Hilfe von VerQueryValue steht das man statt VS_FIXEDFILEINFO auch StringTable erhalten kann.
Leider habe ich keine Ahnung wie ich auf diese Zugreife. Über Hilfe würde ich mich sehr freuen. Ein Beispiel wäre wohl die beste Erklärung.

im Vorfeld vielen Dank
 
die Lösung

Hallo ihr,
nach langen langen suchen und probieren bin ich nun zu einer Lösung gekommen wie die Versionsstrings ausgelesen werden.
Danke für die Tips von codeguru.com!

Für alle die es interessiert wie Versionsnummern und Versionsstrings ausgelesen werden habe ich ein kleines Visulal C++ 6.0 Konsolen Programm geschrieben wo die Produktversion und der Firmenname ausglesen und auf der Oberfläche dargestellt werden. Das Programm ist ein kleiner quick hack und nicht sonderlich umfassend aber es werden die benötigten Schritte beschrieben.

Wenn es nicht klappt dann schaut bitte nach ob ihr die version.lib eingebunden habt.

viel spaß ;)
 

Anhänge

  • version32.zip
    12,7 KB · Aufrufe: 66
Zurück