Extraindo informações de arquivo do arquivo INF
Depois que o arquivo INF for aberto, você poderá coletar informações dele para criar a interface do usuário ou direcionar o processo de instalação. As funções de instalação fornecem vários níveis de funcionalidade para coletar informações de um arquivo INF.
Para coletar informações... | Use essas funções... |
---|---|
Sobre o arquivo INF | SetupGetInfInformation |
SetupQueryInfFileInformation | |
SetupQueryInfVersionInformation. | |
Sobre arquivos de origem e de destino | SetupGetSourceFileLocation |
SetupGetSourceFileSize | |
SetupGetTargetPath | |
SetupGetSourceInfo | |
De uma linha de um arquivo INF | SetupGetLineText |
SetupFindNextLine | |
SetupFindNextMatchLine | |
SetupGetLineByIndex | |
SetupFindFirstLine | |
De um campo de uma linha em um arquivo INF | SetupGetStringField |
SetupGetIntField | |
SetupGetBinaryField | |
SetupGetMultiSzField |
O exemplo a seguir usa a função SetupGetSourceInfo para recuperar a descrição legível por humanos de uma mídia de origem de um arquivo 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;
}
No exemplo, MyInf é o identificador para o arquivo INF aberto. SourceId é o identificador de uma mídia de origem específica. O valor SRCINFO_DESCRIPTION especifica que a função SetupGetSourceInfo deve recuperar a descrição da mídia de origem. O buffer aponta para uma cadeia de caracteres que receberá a descrição, MaxBufSize indica os recursos alocados para o buffer e BufSize indica os recursos necessários para armazenar o buffer.
Se BufSize for maior que MaxBufSize, a função retornará FALSE e uma chamada subsequente para GetLastError retornará ERROR_INSUFFICIENT_BUFFER.