다음을 통해 공유


SESSION 구조

[이 구조에는 지원되지 않는 DeleteExtractedFilesExtract 함수를 사용하는 경우에만 필요한 정보가 포함되어 있습니다. 이 설명서는 정보 제공 목적으로만 제공됩니다.]

SESSION 구조에는 현재 세션에 대한 정보가 포함됩니다.

구문

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

수행할 작업입니다. 이 멤버는 다음 열거형 형식의 값 중 하나일 수 있습니다.

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

명령줄에 지정된 파일 목록에 대한 핸들입니다. 이 데이터 형식은 다음과 같이 선언됩니다.

typedef void *HFILELIST;

fAllCabinets

둘 이상의 캐비닛 파일을 처리해야 하는지 여부를 나타내는 플래그입니다. 이 값이 TRUE이면 연속 캐비닛이 처리됩니다.

fOverwrite

기존 파일을 덮어쓸지 여부를 나타내는 플래그입니다. 이 값이 TRUE이면 기존 파일을 덮어씁니다.

fNoLineFeed

마지막 printf 호출에 줄 바꿈(\n) 문자가 있는지 여부를 나타내는 플래그입니다. 이 값이 TRUE이면 마지막 printf 호출에 줄 바꿈 문자가 포함되지 않았습니다.

fSelfExtract

캐비닛이 자체 추출 중인지 여부를 나타내는 플래그입니다. 이 값이 TRUE이면 캐비닛이 자체 추출됩니다.

cbSelfExtractSize

자체 추출 캐비닛의 실행 파일(.exe) 부분의 길이입니다.

cbSelfExtractSize

자체 추출 캐비닛의 CAB 부분 길이입니다.

ahfSelf

파일은 캐비닛에 대한 핸들입니다.

#define cMAX_CAB_FILE_OPEN 2

cErrors

추출 세션 중에 발생한 오류 수입니다.

hfdi

FDI 컨텍스트에 대한 핸들입니다. 이 데이터 형식은 다음과 같이 선언됩니다.

typedef void FAR *HFDI;

Erf

FDI 오류 구조입니다. ERF를 참조하세요.

cFiles

처리된 파일 수입니다.

cbTotalBytes

추출된 총 바이트 수입니다.

perr

FDI를 통과하는 입니다.

Se

유출 파일 오류입니다. 이 멤버는 다음 열거형 형식의 값 중 하나일 수 있습니다.

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

요청된 유출 파일의 크기입니다.

achSelf

실행 파일(.exe) 파일의 이름입니다.

#define cbFILE_NAME_MAX 256

achMsg

메시지 서식 버퍼입니다.

#define cbMAX_LINE 256

achLine

줄 서식 버퍼입니다.

achLocation

출력 디렉터리입니다.

achFile

추출되는 현재 파일 이름입니다.

achDest

강제 대상 파일 이름입니다.

achCabPath

캐비닛 파일을 찾을 경로입니다.

fContinuationCabinet

현재 캐비닛이 처리된 첫 번째 캐비닛인지 여부를 나타내는 플래그입니다. TRUE로 설정하면 처리된 첫 번째 캐비닛이 아닙니다.

fShowReserveInfo

예약 정보를 제공해야 하는지 여부를 나타내는 플래그입니다. TRUE로 설정하면 정보를 사용할 수 있습니다.

fNextCabCalled

이 멤버는 캐비닛 집합의 모든 파일을 처리하는 경우 사용할 acab 항목을 결정하는 방법을 제공합니다(fAllCabinetTRUE로 설정됨).

acab

캐비닛 집합의 마지막 두 항목입니다. 이 구조체는 다음과 같이 정의됩니다.

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

파일 이름에서 제거할 접두사입니다.

#define cbFILE_NAME_MAX 256

achCabinetFile

현재 캐비닛 파일입니다.

#define cbFILE_NAME_MAX 256

cArgv

기본 자체 추출 인수입니다.

pArgv

기본 자체 추출 argv[]에 대한 포인터에 대한 포인터입니다.

fDestructive

TRUE로 설정할 때 필요한 디스크 공간을 최소화하는 플래그입니다.

iCurrentFolder

fDestructiveTRUE로 설정된 경우 현재 폴더만 추출합니다.

추가 정보

DeleteExtractedFiles

추출