Estrutura SESSION
[Essa estrutura contém informações necessárias somente ao usar as funções DeleteExtractedFiles e Extract , que não têm suporte. Esta documentação é fornecida apenas para fins informativos.]
A estrutura SESSION contém informações sobre a sessão atual.
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;
-
act
-
a ação a ser executada. Esse membro pode ser um dos valores do tipo enumerado a seguir.
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
-
O identificador para uma lista de arquivos especificados na linha de comando. Esse tipo de dados é declarado da seguinte maneira:
typedef void *HFILELIST;
-
fAllCabinets
-
Um sinalizador que indica se mais de um arquivo de gabinete deve ser processado. Se esse valor for TRUE, os gabinetes de continuação serão processados.
-
fOverwrite
-
Um sinalizador que indica se os arquivos existentes devem ser substituídos. Se esse valor for TRUE, os arquivos existentes serão substituídos.
-
fNoLineFeed
-
Um sinalizador que indica se a última
printf
chamada tem os caracteres newline (\n
). Se esse valor for TRUE, a últimaprintf
chamada não incluirá os caracteres de nova linha. -
fSelfExtract
-
Um sinalizador que indica se um gabinete é auto-extraindo. Se esse valor for TRUE, o gabinete será extraindo automaticamente.
-
cbSelfExtractSize
-
O comprimento da parte executável (.exe) de um gabinete auto-extrainte.
-
cbSelfExtractSize
-
O comprimento da parte CAB de um armário auto-extrainte.
-
ahfSelf
-
O arquivo manipula para o gabinete.
#define cMAX_CAB_FILE_OPEN 2
-
cErrors
-
A contagem de erros encontrados durante a sessão de extração.
-
hfdi
-
Um identificador para o contexto FDI. Esse tipo de dados é declarado da seguinte maneira:
typedef void FAR *HFDI;
-
erf
-
A estrutura de erro FDI. Consulte ERF.
-
cFiles
-
A contagem de arquivos processados.
-
cbTotalBytes
-
O número total de bytes extraídos.
-
Perr
-
A passagem por FDI.
-
se
-
O erro do arquivo de despejo. Esse membro pode ser um dos valores do tipo enumerado a seguir.
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
-
O tamanho do arquivo de despejo solicitado.
-
achSelf
-
O nome do arquivo executável (.exe).
#define cbFILE_NAME_MAX 256
-
achMsg
-
O buffer de formatação de mensagem.
#define cbMAX_LINE 256
-
achLine
-
O buffer de formatação de linha.
-
achLocation
-
O diretório de saída.
-
achFile
-
O nome do arquivo atual que está sendo extraído.
-
achDest
-
O nome do arquivo de destino forçado.
-
achCabPath
-
O caminho a ser olhado para um arquivo de gabinete.
-
fContinuationCabinet
-
Um sinalizador que indica se o gabinete atual é o primeiro processado. Se definido como TRUE, não será o primeiro gabinete processado.
-
fShowReserveInfo
-
Um sinalizador que indica se as informações de reserva devem ser fornecidas. Se definido como TRUE, as informações serão disponibilizadas.
-
fNextCabCalled
-
Esse membro fornece uma maneira de determinar qual das entradas de acab usar se estivermos processando todos os arquivos em um conjunto de gabinetes (fAllCabinet está definido como TRUE).
-
Acab
-
As duas últimas entradas no conjunto de gabinetes. Essa estrutura é definida da seguinte maneira:
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
-
O prefixo a ser retirado do nome do arquivo.
#define cbFILE_NAME_MAX 256
-
achCabinetFile
-
O arquivo de gabinete atual.
#define cbFILE_NAME_MAX 256
-
cArgv
-
O argc de extração automática padrão.
-
pArgv
-
Um ponteiro para um ponteiro para o argv de extração automática padrão[].
-
fDestructive
-
Um sinalizador que minimiza o espaço em disco necessário quando definido como TRUE.
-
iCurrentFolder
-
Se fDestructive for definido como TRUE, extraia apenas a pasta atual.