Estructura SESSION
[Esta estructura contiene información necesaria solo cuando se usan las funciones DeleteExtractedFiles y Extract , que no se admiten. Esta documentación se proporciona únicamente con fines informativos.]
La estructura SESSION contiene información sobre la sesión actual.
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
-
la acción que se va a realizar. Este miembro puede ser uno de los valores del siguiente tipo enumerado.
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
-
Identificador de una lista de archivos especificados en la línea de comandos. Este tipo de datos se declara de la siguiente manera:
typedef void *HFILELIST;
-
fAllCabinets
-
Marca que indica si se debe procesar más de un archivo de archivador. Si este valor es TRUE, se procesan los gabinetes de continuación.
-
fOverwrite
-
Marca que indica si se deben sobrescribir los archivos existentes. Si este valor es TRUE, se sobrescriben los archivos existentes.
-
fNoLineFeed
-
Marca que indica si la última
printf
llamada tiene los caracteres de nueva línea (\n
). Si este valor es TRUE, la últimaprintf
llamada no incluía los caracteres de nueva línea. -
fSelfExtract
-
Marca que indica si un gabinete es autoextraído. Si este valor es TRUE, el gabinete se extrae automáticamente.
-
cbSelfExtractSize
-
Longitud de la parte ejecutable (.exe) de un gabinete autoextraíble.
-
cbSelfExtractSize
-
Longitud de la parte CAB de un gabinete autoextrayendo.
-
ahfSelf
-
El archivo se encarga del archivador.
#define cMAX_CAB_FILE_OPEN 2
-
cErrors
-
Recuento de errores detectados durante la sesión de extracción.
-
hfdi
-
Un identificador para el contexto de la IED. Este tipo de datos se declara de la siguiente manera:
typedef void FAR *HFDI;
-
erf
-
Estructura de error de LAED. Consulte ERF.
-
cFiles
-
Recuento de archivos procesados.
-
cbTotalBytes
-
Número total de bytes extraídos.
-
perr
-
El paso a través de la IED.
-
se
-
Error del archivo de desbordamiento. Este miembro puede ser uno de los valores del siguiente tipo enumerado.
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
-
Tamaño del archivo de desbordamiento solicitado.
-
achSelf
-
Nombre del archivo ejecutable (.exe).
#define cbFILE_NAME_MAX 256
-
achMsg
-
Búfer de formato de mensaje.
#define cbMAX_LINE 256
-
achLine
-
Búfer de formato de línea.
-
achLocation
-
el directorio de salida.
-
achFile
-
Nombre de archivo actual que se va a extraer.
-
achDest
-
Nombre del archivo de destino forzado.
-
achCabPath
-
Ruta de acceso que se va a buscar en un archivo de archivador.
-
fContinuationCabinet
-
Marca que indica si el gabinete actual es el primero procesado. Si se establece en TRUE, no es el primer gabinete procesado.
-
fShowReserveInfo
-
Marca que indica si se debe proporcionar información de reserva. Si se establece en TRUE, la información está disponible.
-
fNextCabCalled
-
Este miembro proporciona una manera de determinar cuál de las entradas de acab que se van a usar si estamos procesando todos los archivos de un conjunto de gabinetes (fAllCabinet se establece en TRUE).
-
acab
-
Las dos últimas entradas del conjunto de gabinetes. Esta estructura se define de la siguiente manera:
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
-
Prefijo que se va a quitar del nombre de archivo.
#define cbFILE_NAME_MAX 256
-
achCabinetFile
-
El archivo de archivador actual.
#define cbFILE_NAME_MAX 256
-
cArgv
-
Argc de extracción automática predeterminada.
-
pArgv
-
Puntero a un puntero al argv autoextraer predeterminado[].
-
fDestructive
-
Marca que minimiza el espacio en disco necesario cuando se establece en TRUE.
-
iCurrentFolder
-
Si fDestructive está establecido en TRUE, extraiga solo la carpeta actual.