Estrazione delle informazioni sui file dal file INF
Dopo aver aperto il file INF, è possibile raccogliere informazioni da esso per compilare l'interfaccia utente o per indirizzare il processo di installazione. Le funzioni di installazione forniscono diversi livelli di funzionalità per raccogliere informazioni da un file INF.
Per raccogliere informazioni... | Usare queste funzioni... |
---|---|
Informazioni sul file INF | SetupGetInfInformation |
SetupQueryInfFileInformation | |
SetupQueryInfVersionInformation. | |
Informazioni sui file di origine e di destinazione | SetupGetSourceFileLocation |
SetupGetSourceFileSize | |
SetupGetTargetPath | |
SetupGetSourceInfo | |
Da una riga di un file INF | SetupGetLineText |
SetupFindNextLine | |
SetupFindNextMatchLine | |
SetupGetLineByIndex | |
SetupFindFirstLine | |
Da un campo di una riga in un file INF | SetupGetStringField |
SetupGetIntField | |
SetupGetBinaryField | |
SetupGetMultiSzField |
Nell'esempio seguente viene utilizzata la funzione SetupGetSourceInfo per recuperare la descrizione leggibile di un supporto di origine da un file 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;
}
Nell'esempio MyInf è l'handle per il file INF aperto. SourceId è l'identificatore di un supporto di origine specifico. Il valore SRCINFO_DESCRIPTION specifica che la funzione SetupGetSourceInfo deve recuperare la descrizione del supporto di origine. Buffer punta a una stringa che riceverà la descrizione, MaxBufSize indica le risorse allocate al buffer e BufSize indica le risorse necessarie per archiviare il buffer.
Se BufSize è maggiore di MaxBufSize, la funzione restituirà FALSE e una chiamata successiva a GetLastError restituirà ERROR_INSUFFICIENT_BUFFER.