Struttura SESSION
[Questa struttura contiene informazioni necessarie solo quando si usano le funzioni DeleteExtractedFiles ed Extract , che non sono supportate. Questa documentazione viene fornita solo a scopo informativo.
La struttura SESSION contiene informazioni sulla sessione corrente.
typedef struct {
ACTION act;
HFILELIST hflist;
BOOL fAllCabinets;
BOOL fOverwrite;
BOOL fNoLineFeed;
BOOL fSelfExtract;
long cbSelfExtractSize;
long cbSelfExtractSize;
int ahfSelf[cMAX_CAB_FILE_OPEN];
int cErrors;
HFDI hfdi;
ERF erf;
long cFiles;
long cbTotalBytes;
PERROR perr;
SPILLERR se;
long cbSpill;
char achSelf[cbFILE_NAME_MAX];
char achMsg[cbMAX_LINE*2];
char achLine;
char achLocation;
char achFile;
char achDest;
char achCabPath;
BOOL fContinuationCabinet;
BOOL fShowReserveInfo;
BOOL fNextCabCalled;
CABINET acab[2];
char achZap[cbFILE_NAME_MAX];
char achCabinetFile[cbFILE_NAME_MAX];
int cArgv;
char **pArgv;
int fDestructive;
USHORT iCurrentFolder;
} SESSION, *PSESSION;
-
Atto
-
l'azione da eseguire. Questo membro può essere uno dei valori del tipo enumerato seguente.
typedef enum { actBAD, // Invalid action actHELP, // Show help actDEFAULT, // Perform default action based on command line arguments actDIRECTORY, // Force display of cabinet directory actEXTRACT, // Force file extraction actCOPY, // Do single file-to-file copy } ACTION;
-
hflist
-
Handle a un elenco di file specificati nella riga di comando. Questo tipo di dati viene dichiarato come segue:
typedef void *HFILELIST;
-
fAllCabinets
-
Flag che indica se è necessario elaborare più file di gabinetto. Se questo valore è TRUE, i contenitori di continuazione vengono elaborati.
-
fOverwrite
-
Flag che indica se i file esistenti devono essere sovrascritti. Se questo valore è TRUE, i file esistenti vengono sovrascritti.
-
fNoLineFeed
-
Flag che indica se l'ultima
printf
chiamata ha i caratteri newline (\n
). Se questo valore è TRUE, l'ultimaprintf
chiamata non includeva i caratteri di nuova riga. -
fSelfExtract
-
Flag che indica se un armadio è autoestrato. Se questo valore è TRUE, il gabinetto viene estratto automaticamente.
-
cbSelfExtractSize
-
Lunghezza del file eseguibile (.exe) parte di un armadio auto-estrazione.
-
cbSelfExtractSize
-
Lunghezza della parte CAB di un armadio auto-estrazione.
-
ahfSelf
-
Il file gestisce l'archivio.
#define cMAX_CAB_FILE_OPEN 2
-
cErrors
-
Conteggio degli errori rilevati durante la sessione di estrazione.
-
hfdi
-
Handle al contesto FDI. Questo tipo di dati viene dichiarato come segue:
typedef void FAR *HFDI;
-
erf
-
Struttura di errore FDI. Vedere ERF.
-
cFiles
-
Numero di file elaborati.
-
cbTotalBytes
-
Numero totale di byte estratti.
-
perr
-
Passaggio tramite FDI.
-
se
-
Errore del file di perdita. Questo membro può essere uno dei valori del tipo enumerato seguente.
typedef enum { seNONE, // No error seNOT_ENOUGH_MEMORY, // Not enough RAM seCANNOT_CREATE, // Cannot create spill file seNOT_ENOUGH_SPACE, // Not enough space for spill file } SPILLERR;
-
cbSpill
-
Dimensioni del file di spill richiesto.
-
achSelf
-
Nome del file eseguibile (.exe).
#define cbFILE_NAME_MAX 256
-
achMsg
-
Buffer di formattazione del messaggio.
#define cbMAX_LINE 256
-
achLine
-
Buffer di formattazione della riga.
-
achLocation
-
La directory di output.
-
achFile
-
Nome del file corrente estratto.
-
achDest
-
Nome del file di destinazione forzato.
-
achCabPath
-
Percorso da esaminare per un file di cabinet.
-
fContinuationCabinet
-
Flag che indica se il gabinetto corrente è il primo elaborato. Se impostato su TRUE, non è il primo gabinetto elaborato.
-
fShowReserveInfo
-
Flag che indica se devono essere fornite informazioni sulla riserva. Se impostato su TRUE, le informazioni sono rese disponibili.
-
fNextCabCalled
-
Questo membro consente di determinare quale delle voci acab da usare se si elaborano tutti i file in un set di archivi (fAllCabinet è impostato su TRUE).
-
acab
-
Le ultime due voci nel set di gabinetto. Questa struttura è definita come segue:
typedef struct { char achCabPath[cbFILE_NAME_MAX]; // Cabinet file path char achCabFilename[cbFILE_NAME_MAX]; // Cabinet file name.ext char achDiskName[cbFILE_NAME_MAX]; // User readable disk label USHORT setID; USHORT iCabinet; } CABINET; typedef CABINET *PCABINET;
-
achZap
-
Prefisso da stripare dal nome del file.
#define cbFILE_NAME_MAX 256
-
achCabinetFile
-
File di cabinet corrente.
#define cbFILE_NAME_MAX 256
-
cArgv
-
Argc auto-estrazione predefinito.
-
pArgv
-
Puntatore a un puntatore al valore predefinito di argv[].
-
fDestructive
-
Flag che riduce al minimo lo spazio su disco necessario quando impostato su TRUE.
-
iCurrentFolder
-
Se fDestructive è impostato su TRUE, estrarre solo la cartella corrente.