Extrahieren von Dateiinformationen aus der INF-Datei
Nachdem die INF-Datei geöffnet wurde, können Sie Informationen daraus sammeln, um die Benutzeroberfläche zu erstellen oder den Installationsprozess zu leiten. Die Setupfunktionen bieten mehrere Funktionen zum Sammeln von Informationen aus einer INF-Datei.
Um Informationen zu sammeln... | Verwenden Sie diese Funktionen... |
---|---|
Informationen zur INF-Datei | SetupGetInfInformation |
SetupQueryInfFileInformation | |
SetupQueryInfVersionInformation. | |
Informationen zu Quell- und Zieldateien | SetupGetSourceFileLocation |
SetupGetSourceFileSize | |
SetupGetTargetPath | |
SetupGetSourceInfo | |
Aus einer Zeile einer INF-Datei | SetupGetLineText |
SetupFindNextLine | |
SetupFindNextMatchLine | |
SetupGetLineByIndex | |
SetupFindFirstLine | |
Aus einem Feld einer Zeile in einer INF-Datei | SetupGetStringField |
SetupGetIntField | |
SetupGetBinaryField | |
SetupGetMultiSzField |
Im folgenden Beispiel wird die SetupGetSourceInfo-Funktion verwendet, um die lesbare Beschreibung eines Quellmediums aus einer INF-Datei abzurufen.
#include <windows.h>
#include <setupapi.h>
BOOL test;
HINF MyInf;
UINT SourceId;
PTSTR Buffer;
DWORD MaxBufSize;
DWORD BufSize;
int main()
{
test = SetupGetSourceInfo (
MyInf, //Handle to the INF file to access
SourceId, //Id of the source media
SRCINFO_DESCRIPTION, //which information to retrieve
Buffer, //a pointer to the buffer to receive the information
MaxBufSize, //the size allocated for the buffer
&BufSize //buffer size actually needed
);
return 0;
}
Im Beispiel ist MyInf das Handle für die geöffnete INF-Datei. SourceId ist der Bezeichner für ein bestimmtes Quellmedium. Der Wert SRCINFO_DESCRIPTION gibt an, dass die SetupGetSourceInfo-Funktion die Quellmedienbeschreibung abrufen soll. Puffer verweist auf eine Zeichenfolge, die die Beschreibung empfängt, MaxBufSize gibt die dem Puffer zugeordneten Ressourcen an, und BufSize gibt die ressourcen an, die zum Speichern des Puffers erforderlich sind.
Wenn BufSize größer als MaxBufSize ist, gibt die Funktion FALSE zurück, und ein späterer Aufruf von GetLastError gibt ERROR_INSUFFICIENT_BUFFER zurück.