Извлечение сведений о файле из INF-файла
После открытия INF-файла можно собрать из него сведения для создания пользовательского интерфейса или для направления процесса установки. Функции установки предоставляют несколько уровней функциональности для сбора сведений из INF-файла.
Для сбора информации... | Используйте эти функции... |
---|---|
Сведения о INF-файле | SetupGetInfInformation |
SetupQueryInfFileInformation | |
SetupQueryInfVersionInformation. | |
Сведения об исходных и целевых файлах | SetupGetSourceFileLocation |
SetupGetSourceFileSize | |
SetupGetTargetPath | |
SetupGetSourceInfo | |
Из строки INF-файла | SetupGetLineText |
SetupFindNextLine | |
SetupFindNextMatchLine | |
SetupGetLineByIndex | |
SetupFindFirstLine | |
Из поля строки в INF-файле | SetupGetStringField |
SetupGetIntField | |
SetupGetBinaryField | |
SetupGetMultiSzField |
В следующем примере функция SetupGetSourceInfo используется для получения удобочитаемого описания исходного носителя из INF-файла.
#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;
}
В этом примере MyInf — это дескриптор открытого INF-файла. SourceId — это идентификатор для определенного исходного носителя. Значение SRCINFO_DESCRIPTION указывает, что функция SetupGetSourceInfo должна получить описание исходного носителя. Buffer указывает на строку, которая получит описание, MaxBufSize — ресурсы, выделенные буферу, а BufSize — ресурсы, необходимые для хранения буфера.
Если значение BufSize больше MaxBufSize, функция вернет значение FALSE, а последующий вызов GetLastError вернет ERROR_INSUFFICIENT_BUFFER.