次の方法で共有


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;

メンバー

行為

実行するアクション。 このメンバーには、次の列挙型の値のいずれかを指定できます。

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

キャビネット セット内の最後の 2 つのエントリ。 この構造体は次のように定義されます。

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

既定の自己抽出 argc。

pArgv

既定の自己解凍型 argv[] へのポインターへのポインター。

fDestructive

TRUE に設定した場合に必要なディスク領域を最小限に抑えるフラグ。

iCurrentFolder

fDestructiveTRUE に設定されている場合は、現在のフォルダーのみを抽出します。

関連項目

DeleteExtractedFiles

抽出