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.

Sintaxis

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;

Miembros

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 última printf 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.

Consulte también

DeleteExtractedFiles

Extracto