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.

Sintassi

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;

Members

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'ultima printf 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.

Vedi anche

DeleteExtractedFiles

Estrarre