SESSION-Struktur
[Diese Struktur enthält informationen, die nur bei Verwendung der Funktionen DeleteExtractedFiles und Extract erforderlich sind, die nicht unterstützt werden. Diese Dokumentation dient nur zu Informationszwecken.]
Die SESSION-Struktur enthält Informationen zur aktuellen Sitzung.
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;
-
Handeln
-
Die auszuführende Aktion. Dieser Member kann einer der Werte aus dem folgenden aufgezählten Typ sein.
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
-
Das Handle für eine Liste von Dateien, die in der Befehlszeile angegeben sind. Dieser Datentyp wird wie folgt deklariert:
typedef void *HFILELIST;
-
fAllCabinets
-
Ein Flag, das angibt, ob mehrere Ablagedateien verarbeitet werden sollen. Wenn dieser Wert TRUE ist, werden Fortsetzungsschränke verarbeitet.
-
FOverwrite
-
Ein Flag, das angibt, ob vorhandene Dateien überschrieben werden sollen. Wenn dieser Wert TRUE ist, werden vorhandene Dateien überschrieben.
-
fNoLineFeed
-
Ein Flag, das angibt, ob der letzte
printf
Aufruf die Zeilenumbruchzeichen (\n
) aufweist. Wenn dieser Wert TRUE ist, enthält der letzteprintf
Aufruf die Zeilenumbruchzeichen nicht. -
fSelfExtract
-
Ein Flag, das angibt, ob eine Ablage selbst extrahierend ist. Wenn dieser Wert TRUE ist, ist die Ablage selbstextrahierend.
-
cbSelfExtractSize
-
Die Länge des ausführbaren Teils (.exe) einer selbstextrahierenden Ablage.
-
cbSelfExtractSize
-
Die Länge des CAB-Teils eines selbstextrahierenden Schranks.
-
ahfSelf
-
Die Datei wird an die Ablage verarbeitet.
#define cMAX_CAB_FILE_OPEN 2
-
cErrors
-
Die Anzahl der Fehler, die während der Extraktionssitzung aufgetreten sind.
-
hfdi
-
Ein Handle für den FDI-Kontext. Dieser Datentyp wird wie folgt deklariert:
typedef void FAR *HFDI;
-
Erf
-
Die FDI-Fehlerstruktur. Siehe ERF.
-
cFiles
-
Die Anzahl der verarbeiteten Dateien.
-
cbTotalBytes
-
Die Gesamtanzahl der extrahierten Bytes.
-
Perr
-
Die Passthrough-FDI.
-
Se
-
Der Dateiüberlauffehler. Dieser Member kann einer der Werte aus dem folgenden aufgezählten Typ sein.
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
-
Die Größe der angeforderten Spilldatei.
-
achSelf
-
Der Name der ausführbaren Datei (.exe).
#define cbFILE_NAME_MAX 256
-
achMsg
-
Der Nachrichtenformatierungspuffer.
#define cbMAX_LINE 256
-
achLine
-
Der Zeilenformatierungspuffer.
-
achLocation
-
Das Ausgabeverzeichnis.
-
achFile
-
Der aktuelle Dateiname, der extrahiert wird.
-
achDest
-
Der Name der erzwungenen Zieldatei.
-
achCabPath
-
Der Pfad, der nach einer Ablagedatei gesucht werden soll.
-
fContinuationCabinet
-
Ein Flag, das angibt, ob die aktuelle Ablage die erste verarbeitete ist. Wenn dieser Wert auf TRUE festgelegt ist, handelt es sich nicht um die erste verarbeitete Ablage.
-
fShowReserveInfo
-
Ein Flag, das angibt, ob Reserveinformationen bereitgestellt werden sollen. Wenn diese Einstellung auf TRUE festgelegt ist, werden die Informationen zur Verfügung gestellt.
-
fNextCabCalled
-
Dieser Member bietet eine Möglichkeit, zu bestimmen, welche acab-Einträge verwendet werden sollen, wenn wir alle Dateien in einem Cabinet-Satz verarbeiten (fAllCabinet ist auf TRUE festgelegt).
-
Acab
-
Die letzten beiden Einträge im Ablagesatz. Diese Struktur ist wie folgt definiert:
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
-
Das Präfix, das aus dem Dateinamen entfernt werden soll.
#define cbFILE_NAME_MAX 256
-
achCabinetFile
-
Die aktuelle Cabinet-Datei.
#define cbFILE_NAME_MAX 256
-
cArgv
-
Die standardmäßige selbstextrahierende Argc.
-
pArgv
-
Ein Zeiger auf einen Zeiger auf den standardmäßigen selbstextrahierenden argv[].
-
fDestructive
-
Ein Flag, das den erforderlichen Speicherplatz auf dem Datenträger minimiert, wenn auf TRUE festgelegt ist.
-
iCurrentFolder
-
Wenn fDestructive auf TRUE festgelegt ist, extrahieren Sie nur den aktuellen Ordner.