SESSION 구조
[이 구조에는 지원되지 않는 DeleteExtractedFiles 및 Extract 함수를 사용하는 경우에만 필요한 정보가 포함되어 있습니다. 이 설명서는 정보 제공 목적으로만 제공됩니다.]
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 항목을 결정하는 방법을 제공합니다(fAllCabinet 은 TRUE로 설정됨).
-
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
-
fDestructive가 TRUE로 설정된 경우 현재 폴더만 추출합니다.
추가 정보