Compartilhar via


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.

Sintaxe

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;

Membros

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

Confira também

DeleteExtractedFiles

Extrair