======================================================================= Tar32.DLL Ver x.xx API 説明ファイル ======================================================================= --------------注意------------ ・ひょっとしたらこの説明が正しくない部分,間違ってる部分があるかもしれません。 そのときは連絡してください。 ・また,tar32.hで/* NO IMPLEMENTED */というように書かれているものは,実際には動作しません。エラーを返すだけです。 ・TAR32.DLLではTarGetArchiveTypeを独自のAPIとしてもっています。 ----------------------------------------------------------------------- int WINAPI Tar(const HWND hWnd,LPCSTR szCmdLine,LPSTR szOutput, const DWORD dwSize); ----------------------------------------------------------------------- 順序数 1 機能 圧縮/解凍を行います。 引数 hWnd TAR32.DLL を呼び出すアプリのウィンドウ・ハンドル。 TAR32.DLL は実行時にこのウィンドウに対して EnableWin- dow() を実行しウィンドウの動作を抑制します。ウィンドウ が存在しないコンソールアプリの場合や,指定する必要のな い場合は NULL を渡します。 szCmdLine TAR32.DLL に渡すコマンド文字列。 szOutput TAR32.DLL が結果を返すためのバッファ。グローバルメモリー 等の場合はロックされている必要があります。 dwSize バッファのサイズ。結果が指定サイズを越える場合は、この サイズに切り詰められます。 結果がこのサイズより小さい場合は、最後に NULL 文字が 付加されます。(最低1文字のみが保証される) バッファのサイズいっぱいの場合等、NULL 文字がどこにもない 可能性がある点に留意のこと。 戻り値 正常終了の時 0。 エラーが発生した場合 0 以外の数(エラー値 >= 0x8000:後述)。 また,解凍先に既にファイルがあるなどの理由で解凍をスキップ した場合などはスキップされたファイルの数を返します。 ----------------------------------------------------------------------- BOOL WINAPI TarCheckArchive(LPCSTR szFileName,const int iMode); ----------------------------------------------------------------------- 順序数 12 機能 指定ファイルがサポートしているアーカイバファイルとして正しいかどうかを 返します。 [TAR32.DLL] Ver0.32以降ではTarGetArchiveType() APIが正の値を返したか どうか判定することで、サポートしました。 また、iModeは無視されます。 引数 szFileName チェックすべきアーカイブファイルのファイル名。 iMode チェックモード。 CHECKARCHIVE_RAPID(0) 簡易モード。ヘッダのみチェックします。 CHECKARCHIVE_BASIC(1) 簡易モード。0 の場合と違ってこちらは完全な ヘッダチェックをおこないます。 CHECKARCHIVE_FULLCRC 厳密モード。格納ファイルの CRC 等もチェック (2) する。 戻り値 TRUE 正しいアーカイブファイルの時。 FALSE ファイルが不正の時。 ----------------------------------------------------------------------- int WINAPI TarGetArchiveType(LPCSTR szFileName); ----------------------------------------------------------------------- 順序数 ?? 機能 指定したアーカイブファイルの形式を得ます。 [TAR32.DLL]独自のAPIです。 引数 szFileName チェックすべきアーカイブファイルのファイル名。 戻り値 ARCHIVETYPE_TAR (1) TAR形式 ARCHIVETYPE_TARGZ (2) TAR.GZ(TGZ)形式 ARCHIVETYPE_TARZ (3) TAR.Z(TAZ)形式 ARCHIVETYPE_GZ (4) GZ形式 ARCHIVETYPE_Z (5) Z形式 ARCHIVETYPE_TARBZ2 (6) TAR.BZ2形式 ARCHIVETYPE_BZ2 (7) BZ2形式 0 TAR32.DLLで利用できない形式 -1 エラー ----------------------------------------------------------------------- BOOL WINAPI TarConfigDialog(const HWND hWnd,LPSTR szOptionBuffer, const int iMode); ----------------------------------------------------------------------- 順序数 11 機能 圧縮/解凍のオプション指定ダイアログの表示。Tar() に渡すコマンドの オプションを対話的に設定する必要がある時に呼び出してください。 (Ver0.23で一応表示するようになった) [TAR32.DLL]ではszOptionBufferは無視されます。 引数 hWnd TAR32.DLL を呼び出すアプリのウィンドウ・ハンドル。 szOptionBuffer ダイアログで設定したコマンドラインを格納します。 また、呼び出し時にパラメータを設定すればダイアログの 初期値となります。 "" であれば、ARCHIVER.INI に設定されたパラメータが初 期値となります。 必ず513バイト以上の大きさを用意してください。 iMode 圧縮/解凍のどちらに関する設定かの指定。 UNPACK_CONFIG_MODE(1) 解凍(復元)系のコマンド PACK_CONFIG_MODE(2) 圧縮(作成)系のコマンド 戻り値 ERROR_ALREADY_RUNNING TAR32.DLL が既に実行中の時。 TRUE 設定が成功した時。 FALSE 設定が出来なかった(されなかった)時 または取消終了時。 その他 設定は ◎ Win16 の場合は ARCHIVER.INI に ◎ Win32 の場合は、レジストリの Software\ArchiverDll 以下に Tar のセクションが作られ書き込まれます。 アーカイバ DLL 間で共通に使われるオプションは Common セクション内に 書かれ、他のアーカイバ DLL での設定の影響を受けます。 ----------------------------------------------------------------------- WORD WINAPI TarGetVersion(VOID); ----------------------------------------------------------------------- 順序数 2 機能 TAR32.DLL の現在のバージョンを返します。 戻り値 現在のバージョン 30 -> Version 0.30 100 -> Version 1.00 その他 仕様変更などがあるかもしれませんので、かならずバージョンのチェック をおこなってください。 ----------------------------------------------------------------------- BOOL WINAPI TarGetRunning(VOID); ----------------------------------------------------------------------- 順序数 10 機能 現在 TAR32.DLL が動作中か否かを得ます。 アプリケーション側は必ず圧縮/解凍等のファイルアクセスを伴うAPI を実行する前には、これにより実行可能かをチェックする必要があります。 戻り値 TRUE 実行中です。 FALSE 実行中ではない(実行可能)。 ----------------------------------------------------------------------- BOOL WINAPI TarGetBackGroundMode(VOID); ----------------------------------------------------------------------- 順序数 5 機能 TAR32.DLL がバックグラウンドモードか否かを得ます。 [TAR32.DLL]では現在未実装で,常にFALSEを返します。 戻り値 TRUE バックグラウンドモード。 FALSE 非バックグラウンドモード(CPUタイムを占有します)。 ----------------------------------------------------------------------- BOOL WINAPI TarSetBackGroundMode(const BOOL bBackGroundMode); ----------------------------------------------------------------------- 順序数 6 機能 TAR32.DLL のバックグラウンドモードを設定します。 バックグラウンドで実行しない方が圧縮/解凍の速度は早いですがその場 合タスクを専有します。 Win16、Win32s 以外の環境の場合は非バックグラウンドでも専有しません ので、FALSE 設定で良いでしょう。 [TAR32.DLL]では現在未実装で,常にFALSEを返します。 引数 bBackGroundMode 設定するバックグラウンドモード。 TRUE バックグラウンドモード FALSE 非バックグラウンドモード 戻り値 TRUE 正常終了(設定できた)。 FALSE 動作中で変更できなかった場合や、引数が間違いの場合。 ----------------------------------------------------------------------- BOOL WINAPI TarGetCursorMode(VOID); ----------------------------------------------------------------------- 順序数 7 機能 TAR32.DLL の動作中にカーソルを表示するモードか否かを得ます。 [TAR32.DLL]では現在未実装で,常にFALSEを返します。 戻り値 TRUE カーソル表示モード。 FALSE カーソル非表示モード。 ----------------------------------------------------------------------- BOOL WINAPI TarSetCursorMode(const BOOL bCursorMode); ----------------------------------------------------------------------- 順序数 8 機能 TAR32.DLL の動作中にカーソルを表示するモードか否かを設定します。 [TAR32.DLL]では現在未実装で,常にFALSEを返します。 引数 bCursorMode 設定するカーソルモード。 TRUE カーソル表示モード。 FALSE カーソル非表示モード。 戻り値 TRUE 正常終了。 FALSE 動作中で変更できなかった場合や、引数が間違いの場合。 ----------------------------------------------------------------------- WORD WINAPI TarGetCursorInterval(VOID); ----------------------------------------------------------------------- 順序数 3 機能 カーソルの回転速度を得ます。 [TAR32.DLL]では現在未実装で,常に80を返します。 戻り値 カーソルの回転速度(msec) ----------------------------------------------------------------------- BOOL WINAPI TarSetCursorInterval(const WORD wInterval); ----------------------------------------------------------------------- 順序数 4 機能 カーソルの回転速度を設定します。 ただし、TAR32.DLL の動作中には変更できません。 [TAR32.DLL]では現在未実装で,常にFALSEを返します。 引数 wInterval カーソルの回転速度(msec) デフォルトは 80 (msec) です。 戻り値 TRUE 正常終了の場合。 FALSE 動作中で変更できなかった場合。 ----------------------------------------------------------------------- int WINAPI TarGetArcFileInfo(LPSTR szFileName, MAININFO *lpMainInfo); ----------------------------------------------------------------------- 順序数 16 機能 格納されているファイルの情報を得ます。 [TAR32.DLL]では現在未実装です。 引数 szFileName 情報を取得すべきアーカイブファイルのファイル名。 lpMainInfo 情報を格納する構造体の変数のアドレス。 戻り値 正常終了時に0、異常時にはエラーコード(0以外)が返る。 ----------------------------------------------------------------------- int WINAPI TarGetFileCount(LPCSTR szArcFile); ----------------------------------------------------------------------- 順序数 17 機能 指定された書庫ファイルに格納されているファイル数を得ます。 引数 szArcFile 格納ファイル数を得たい書庫ファイル名。 戻り値 格納ファイル数を得る。エラーのときは -1 を返す。 ----------------------------------------------------------------------- BOOL WINAPI TarQueryFunctionList(const int iFunction); ----------------------------------------------------------------------- 順序数 18 機能 指定された API が TAR32.DLL で使用可能かどうかを得ます。 アプリケーション側は目的の機能(API)が有効であるかどうか、事前に チェックするようにしてください。 引数 iFunction API を示す一意な数値。 具体的な数値については Tar32.H を参照して下さい。 戻り値 TRUE 使用可能。 FALSE 使用出来ない、または iFunction は無効な値。 ----------------------------------------------------------------------- HARC WINAPI TarOpenArchive(const HWND hWnd,LPCSTR szFileName, const DWORD dwMode); ----------------------------------------------------------------------- 順序数 21 機能 指定ファイルが TAR32.DLL に有効な書庫ファイルかどうか調べ、 有効であればオープンし、一意の数値(ハンドル)を返します。 以後の書庫ファイルへのアクセスはこのハンドルでおこないます。 アクセスを終了する時は TarCloseArchive 関数を呼ばなければ なりません。 [TAR32.DLL]では現在、dwModeはM_CHECK_ALL_PATH/M_CHECK_FILENAME_ONLYを サポートしています。他のモードは指定しても無視されます。 また、複数のハンドルを同時に使用することはできません。 さらに、GZ/Z形式のファイルに対しては現在のところ利用できません。 引数 hWnd TAR32.DLL を呼び出すアプリのウィンドウ・ハンドル。 szFileName 書庫ファイル名。 dwMode 処理モードを指定するフラグ。次の値を|(オア)で 組み合わせる。 M_INIT_FILE_USE ARCHIVER.INI の設定を利用する。 M_REGARDLESS_INIT_FILE ARCHIVER.INI の設定を無視する。 M_NOT_USE_TIME_STAMP タイムスタンプ検査を省略する。 M_EXTRACT_REPLACE_FILE 同名のファイルで且つファイルが 新しい場合に解凍する。 M_EXTRACT_NEW_FILE 解凍先にファイルが存在しない場合のみ 解凍する。 M_EXTRACT_UPDATE_FILE ファイルが存在しないか新しいときに 解凍する。 M_CHECK_ALL_PATH ファイル名の検索時に全パスを検索する。 --check-all-path=1と同じ。 M_CHECK_FILENAME_ONLY 検索時にファイル名のみを対象とする。 --check-all-path=0と同じ。(デフォルト) M_CHECK_PATH "-p1" と同様の検索方法を指定する。 M_CHECK_DISK_SIZE 解凍先のディスクの空き容量をチェックする。 M_REGARDLESS_DISK_SIZE 解凍先のディスクの空きをチェックしない。 M_USE_DRIVE_LETTER 格納ファイルのディレクトリ情報について ドライブ名も利用する。 M_NOT_USE_DRIVE_LETTER 格納ファイルのドライブ名を無視する。 M_INQUIRE_DIRECTORY 新規ディレクトリ作成の確認を行う。 M_NOT_INQUIRE_DIRECTORY 新規ディレクトリ作成の確認を行わない。 M_INQUIRE_WRITE 上書き確認を行う。 M_NOT_INQUIRE_WRITE 上書き確認を行わない。 M_CHECK_READONLY 読み込み専用ファイルを読み飛ばす。 M_REGARDLESS_READONLY 解凍先に読み込み専用ファイルがあっても 解凍を行う。 M_REGARD_E_COMMAND 'E' コマンドと互換の解凍動作とする。 M_REGARD_X_COMMAND 'X' コマンドと互換の解凍動作とする。 M_ERROR_MESSAGE_ON エラー時にメッセージを表示する。 M_ERROR_MESSAGE_OFF エラー時にメッセージを表示しない。 M_BAR_WINDOW_ON 解凍状況ダイアログを表示する。 M_BAR_WINDOWS_OFF 解凍状況ダイアログを表示しない。 M_MAKE_INDEX_FILE 索引ファイルを作成する。 M_NOT_MAKE_INDEX_FILE 索引ファイルを作成しない。 戻り値 指定の書庫ファイルに対応したハンドル。エラー時は NULL を返します。 その他 同時に複数のハンドルを利用する事ができるかどうかは、各DLLに依存。 ----------------------------------------------------------------------- int WINAPI TarCloseArchive(HARC hArc); ----------------------------------------------------------------------- 順序数 22 機能 TarOpenArchive() で割り付けたハンドルを解放する。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 正常終了時に0、異常時にはエラーコード(0以外)が返る。 ----------------------------------------------------------------------- int WINAPI TarFindFirst(HARC hArc, LPCSTR szWildName,LPINDIVIDUALINFO lpSubInfo); ----------------------------------------------------------------------- 順序数 23 機能 最初の格納ファイルの情報を得る。 引数 hArc TarOpenArchive() で返されたハンドル。 szWildName 検索するファイル名の指定。ワイルドカード指定が 可能とする。 ファイル名はスペース区切りで複数指定が可能。 lpSubInfo 結果を返すための INDIVIDUALINFO 型の構造体へのポイ ンタ。結果を必要としない場合は NULL を指定する事。 戻り値 0 正常終了。_lpSubInfo で指定された構造体に格納 ファイルの情報がセットされている。 -1 検索終了。 ----------------------------------------------------------------------- int WINAPI TarFindNext(HARC hArc,LPINDIVIDUALINFO lpSubInfo); ----------------------------------------------------------------------- 順序数 24 機能 直前の TarFindFirst() または xxxxxFindNext() の次の格納ファイルの 情報を得る。 引数 hArc TarOpenArchive() で返されたハンドル。 lpSubInfo 結果を返すための INDIVIDUALINFO 型の構造体へのポイ ンタ。結果を必要としない場合は NULL を指定する事。 戻り値 0 正常終了。_lpSubInfo で指定された構造体に格納 ファイルの情報がセットされている。 -1 検索終了。 ----------------------------------------------------------------------- int WINAPI TarExtract(HARC hArc,LPCSTR szFileName, LPCSTR szDirName, DWORD dwMode); ----------------------------------------------------------------------- 順序数 25 機能 指定されたファイルを解凍する。 [TAR32.DLL]では現在未実装です。 引数 hArc TarOpenArchive() で返されたハンドル。 szFileName 解凍するファイル名。 _dwMode で指定するモードにより意味が変わる。 szDirName 解凍先のディレクトリ。 最後を \ で終わる必要はない(あっても良い)。 dwMode TarOpenArchive() で指定可能なものの他に解凍モー ドとして、次の値も指定出来る。 EXTRACT_FOUND_FILE 直前の TarFindFirst() 等で マッチしたファイルを解凍。 EXTRACT_NAMED_FILE _szFileName で指定されたファイル を解凍。 戻り値 正常終了時に0、異常時にはエラーコード(0以外)が返る。 ----------------------------------------------------------------------- int WINAPI TarAdd(HARC hArc,LPCSTR szFileName,DWORD dwMode); ----------------------------------------------------------------------- 順序数 26 機能 指定されたファイルを圧縮、現在位置に追加する。 現在位置が同一ファイル名で、且つ古い場合は置き換える。 [TAR32.DLL]では現在未実装です。 引数 hArc TarOpenArchive() で返されたハンドル。 szFileName 圧縮するファイル名。 _dwMode で指定するモードにより意味が変わる。 dwMode TarOpenArchive() で指定可能なものの他に圧縮モー ドとして、次の値も指定出来る。 戻り値 正常終了時に0、異常時にはエラーコード(0以外)が返る。 ----------------------------------------------------------------------- int WINAPI TarMove(HARC hArc,LPCSTR szFileName,DWORD dwMode); ----------------------------------------------------------------------- 順序数 27 機能 ----------------------------------------------------------------------- int WINAPI TarDelete(HARC hArc,LPCSTR szFileName,DWORD dwMode); ----------------------------------------------------------------------- 順序数 28 機能 [TAR32.DLL]では現在未実装です。 ----------------------------------------------------------------------- int WINAPI TarGetArcFileName(HARC hArc,LPCSTR lpBuffer,int nSize); ----------------------------------------------------------------------- 順序数 31 機能 書庫ファイル名を得る。 引数 hArc TarOpenArchive() で返されたハンドル。 lpBuffer ファイル名を格納するバッファ。 nSize バッファのサイズ。 戻り値 正常終了時に0、異常時にはエラーコード(0以外)が返る。 ----------------------------------------------------------------------- DWORD WINAPI TarGetArcFileSize(HARC hArc); ----------------------------------------------------------------------- 順序数 32 機能 書庫ファイルのサイズを得る。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 書庫ファイルのサイズ。エラー時には -1 を返す。 ----------------------------------------------------------------------- DWORD WINAPI TarGetArcOriginalSize(HARC hArc); ----------------------------------------------------------------------- 順序数 33 機能 現時点までの検索(TarFindFirst() および xxxxxFindNext() )に マッチしたファイルの(解凍後の)サイズの合計を得る。 TarFindNext() の検索が終了した後では、書庫ファイル中の検索で 一致した全ファイルの合計値となる。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 合計サイズ。エラー時には -1 を返す。 ----------------------------------------------------------------------- DWORD WINAPI TarGetArcCompressedSize(HARC hArc); ----------------------------------------------------------------------- 順序数 34 機能 検索にマッチしたファイルの圧縮サイズの合計を得る。 その他詳細は TarGetArcOriginalSize() に準ずる。 [TAR32.DLL]では現在未実装です。常に0を返します。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 圧縮サイズの合計。エラー時には -1 を返す。 ----------------------------------------------------------------------- WORD WINAPI TarGetArcRatio(HARC hArc); ----------------------------------------------------------------------- 順序数 35 機能 検索にマッチしたファイルの全体の圧縮率を得る。 その他詳細は TarGetArcOriginalSize() に準ずる。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 全体の圧縮率(パーミル)。エラー時には -1。 ----------------------------------------------------------------------- WORD WINAPI TarGetArcDate(HARC hArc); ----------------------------------------------------------------------- 順序数 36 機能 書庫ファイルの日付を得る。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 書庫ファイルの日付。エラー時には -1。 形式は MSDOS のタイムスタンプに準ずる。 ----------------------------------------------------------------------- WORD WINAPI TarGetArcTime(HARC hArc); ----------------------------------------------------------------------- 順序数 37 機能 書庫ファイルの時刻を得る。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 書庫ファイルの時刻。エラー時には -1。 形式は MSDOS のタイムスタンプに準ずる。 ----------------------------------------------------------------------- UINT WINAPI TarGetArcOSType(HARC hArc); ----------------------------------------------------------------------- 順序数 38 機能 書庫ファイル作成に使用されたOSの種類を得る。 [TAR32.DLL]では現在未実装で,常に-1を返します。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 OSの種類を示す数値。 0 : MS-DOS 1 : PRIMOS 2 : UNIX 3 : AMIGA 4 : MAC-OS 5 : OS/2 6 : APPLE GS 7 : ATARI ST 8 : NEXT 9 : VAX VMS 10: その他。 11: OS9 12: OS/68K 13: OS/386 14: HUMAN 15: CP/M 16: FLEX 17: Runser 18: VM CMS 19: Z SYSTEM 20: TOPS20 21: Windows NTFS -1: エラー。 ----------------------------------------------------------------------- int WINAPI TarIsSFXFile(HARC hArc); ----------------------------------------------------------------------- 順序数 39 機能 書庫ファイルが自己解凍ファイルかどうかを調べる。 [TAR32.DLL]では現在未実装です。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 0 通常の書庫ファイル。 1 自己解凍ファイル。 -1 エラー。 ----------------------------------------------------------------------- int WINAPI TarGetFileName(HARC hArc,LPCSTR lpBuffer,int nSize); ----------------------------------------------------------------------- 順序数 40 機能 格納ファイルのファイル名を得る。 引数 hArc TarOpenArchive() で返されたハンドル。 lpBuffer ファイル名を格納するバッファ。 nSize バッファのサイズ。 戻り値 正常終了時には0が返され,_lpBuffer にファイル名が格納される。 その他 「格納ファイル」とは、直前の検索(TarFindFirst() または TarFindNext() )にマッチしたファイルを示す。 以下の各APIでも同様。 ----------------------------------------------------------------------- DWORD WINAPI TarGetOriginalSize(HARC hArc); ----------------------------------------------------------------------- 順序数 41 機能 格納ファイルの(解凍後の)サイズを得る。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 格納ファイルのサイズ。エラー時は -1。 ----------------------------------------------------------------------- DWORD WINAPI TarGetCompressedSize(HARC harc); ----------------------------------------------------------------------- 順序数 42 機能 格納ファイルの圧縮サイズを得る。 [TAR32.DLL]では現在未実装です。常に0を返します。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 格納ファイルの圧縮サイズ。エラー時は -1。 ----------------------------------------------------------------------- WORD WINAPI TarGetRatio(HARC hArc); ----------------------------------------------------------------------- 順序数 43 機能 格納ファイルの圧縮率を得る。 [TAR32.DLL]では現在未実装です。常に0を返します。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 格納ファイルの圧縮率(パーミル)。エラー時は -1。 ----------------------------------------------------------------------- WORD WINAPI TarGetDate(HARC hArc); ----------------------------------------------------------------------- 順序数 44 機能 格納ファイルの日付を得る。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 格納ファイルの日付。エラー時は -1。 形式は MSDOS のタイムスタンプに準ずる。 ----------------------------------------------------------------------- WORD WINAPI TarGetTime(HARC hArc); ----------------------------------------------------------------------- 順序数 45 機能 格納ファイルの時刻を得る。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 格納ファイルの時刻。エラー時は -1。 形式は MSDOS のタイムスタンプに準ずる。 ----------------------------------------------------------------------- DWORD WINAPI TarGetCRC(HARC hArc); ----------------------------------------------------------------------- 順序数 46 機能 格納ファイルのチェックコード(CRCやチェックサム等)を得る。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 格納ファイルのチェックコード。エラー時は -1。 ----------------------------------------------------------------------- int WINAPI TarGetAttribute(HARC hArc); ----------------------------------------------------------------------- 順序数 47 機能 格納ファイルの属性を得る。 [TAR32.DLL]では未実装です。常に-1を返します。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 格納ファイルの属性。以下の各ビットをオア(|)接続したもの。 エラー時は -1。 0x01 FA_RDONLY 読み込み専用ファイル。 0x02 FA_HIDDEN 不可視属性ファイル。 0x04 FA_SYSTEM システムファイル。 0x08 FA_LABEL ボリュームラベル。 0x10 FA_DIREC ディレクトリ。 0x20 FA_ARCH 保存ビット。 ----------------------------------------------------------------------- UINT WINAPI TarGetOSType(HARC hArc); ----------------------------------------------------------------------- 順序数 48 機能 格納ファイルが作成されたOSを得る。 [TAR32.DLL]では未実装です。常に-1を返します。 引数 hArc TarOpenArchive() で返されたハンドル。 戻り値 OSを示す数値。 詳細は TarGetArcOSType() を参照。 ----------------------------------------------------------------------- int WINAPI TarExtractMem(const HWND hWnd,LPCSTR szCmdLine, LPBYTE szBuffer,const DWORD dwSize,time_t *lpTime, LPWORD lpwAttr,LPDWORD lpdwWriteSize); ----------------------------------------------------------------------- 順序数 機能 メモリバッファへ解凍します。 [TAR32.DLL]では未実装です。常にFALSEを返します。 引数 hWnd TAR32.DLL を呼び出すアプリのウィンドウのハンドル。 TAR32.DLL は実行時にこのウィンドウに対して EnableWindow() を実行しウィンドウの動作を抑制します。 ウィンドウが存在しないコンソールアプリの場合や,指定 する必要のない場合は NULL を渡します。 szCmdLine TAR32.DLL に渡すコマンドの文字列。xxxxx() と同じもの が指定できますが,コマンドは無視されます。 lpBuffer 展開イメージを格納するバッファ。 dwSize バッファのサイズ。TAR32.DLL が返す結果のサイズより指 定されたサイズが小さい場合は指定サイズまで出力されます。 lpTime 解凍されたファイルの UTC でのタイムスタンプを得ます。 必要ない場合は NULL を指定します。 lpwAttr 解凍されたファイルの属性を得ます。 必要ない場合は NULL を指定します。 lpdwWriteSize 解凍の結果書き込まれたサイズを得ます。必要ない場合は NULL を指定します。 戻り値 正常終了の時 0。 エラーが発生した場合 0 以外の数。 その他 API の性格上,書庫やファイル名にワイルドカードを使うのは無意味と思 われます。 ----------------------------------------------------------------------- int WINAPI TarCompressMem(const HWND hWnd,LPCSTR szCmdLine, const LPBYTE szBuffer,const DWORD dwSize, const time_t *lpTime,const LPWORD lpwAttr, LPDWORD lpdwWriteSize); ----------------------------------------------------------------------- 順序数 機能 メモリバッファの内容を圧縮して書庫に格納します。 [TAR32.DLL]では未実装です。常に-1を返します。 引数 hWnd TAR32.DLL を呼び出すアプリのウィンドウのハンドル。 TAR32.DLL は実行時にこのウィンドウに対して EnableWindow() を実行しウィンドウの動作を抑制します。 ウィンドウが存在しないコンソールアプリの場合や,指定 する必要のない場合は NULL を渡します。 szCmdLine TAR32.DLL に渡すコマンドの文字列。ファイル名として指 定したものが格納時の名前になります。 lpBuffer 圧縮するイメージを格納したバッファ。 dwSize イメージのサイズ。 lpTime 格納する時刻を UTC で指定します。NULL を指定すると圧縮 を行った時点の時刻が使用されます。 lpwAttr 格納する属性を指定します。NULL を指定すると FA_ARCH と みなされます。 lpdwWriteSize 圧縮後のサイズを得ます。必要ないときは NULL を指定しま す。 戻り値 正常終了の時 0。 エラーが発生した場合 0 以外の数。 その他 API の性格上,書庫やファイル名にワイルドカードを使うのは無意味と思 われます。 ----------------------------------------------------------------------- BOOL WINAPI TarSetOwnerWindow(HWND hWnd); ----------------------------------------------------------------------- 順序数 90* 機能 TAR32.DLL が動作中にキー入力やマウス入力を中止したいウィンドウを 指定します。 処理としては単純に指定されたウィンドウを EnableWin- dow API で無効化するだけです。また,ここで指定したウィンドウが解 凍状況表示ウィンドウの親ウィンドウとなり,表示抑制されている場合 にはメッセージの送信先ウィンドウとなります。通常はアプリケーショ ンのメインウィンドウを指定して下さい。 引数 hWnd オーナーウィンドウに指定するウィンドウのハンドル 戻り値 正常終了の場合 TRUE を返します。 動作中で変更できなかった場合や, 既にこの API で別のウィンドウが 設定されている場合には FALSE を返します。 ----------------------------------------------------------------------- BOOL WINAPI TarClearOwnerWindow(VOID); ----------------------------------------------------------------------- 順序数 91* 機能 TarSetOwnerWindow() で設定したウィンドウの設定を解除します。 戻り値 正常終了の場合 TRUE を返します。 動作中で変更できなかった場合やには FALSE を返します。 ----------------------------------------------------------------------- BOOL WINAPI TarSetOwnerWindowEx(HWND hWnd,LPARCHIVERPROC lpArcProc) ----------------------------------------------------------------------- 順序数 92 機能 TAR32.DLL の解凍状況を受け取るためのコールバック関数の指定を行 います。lpArcProc に NULL を指定すると hWnd で指定したウィンドウ に メッセージを送出します(UnZipSetOwnerWindow(hWnd)と同じ)。 戻り値 正常終了の場合 TRUE を返します。 動作中で変更できなかった場合や, 既にこの API で別のウィンドウが 設定されている場合には FALSE を返します。 ----------------------------------------------------------------------- BOOL WINAPI TarKillOwnerWindowEx(HWND hWnd) ----------------------------------------------------------------------- 順序数 93 機能 TarSetOwnerWindowEx() で設定したウィンドウの設定を解除します。 戻り値 正常終了の場合 TRUE を返します。 動作中で変更できなかった場合や指定した hWnd が現在の設定と一致 しない場合には FALSE を返します。 ----------------------------------------------------------------------- INDIVIDUALINFO の構造 ----------------------------------------------------------------------- 構造体定義 typedef struct { char szFileName[FNAME_MAX + 1]; UINT uFlag; DWORD dwOriginalSize; DWORD dwCompressedSize; WORD wRatio; WORD wDate; WORD wTime; DWORD dwCRC; char szAttribute[5]; char szMode[8]; UINT uOSType; } INDIVIDUALINFO; メンバの説明 szFileName アーカイブファイル名。 uFlag 解凍やテストを行った場合,格納ファイル毎の 処理結果が返される。 コードは Unarj() が返 すものと同じ。その他の場合は0。 dwOriginalSize ファイルのサイズ。 dwCompressedSize 圧縮後のサイズ。 wRatio 圧縮率。ただし,パーミルで表してある。 wDate 格納ファイルの日付。 wTime 格納ファイルの時刻。 dwCRC 格納ファイルのチェックサム用 CRC。 szAttribute 格納ファイルの属性。LHA.DLL と同じ。 szMode 格納ファイルの格納モード。 uOSType このファイルの作成に使われたOS。 ----------------------------------------------------------------------- ウィンドウズ・メッセージ ----------------------------------------------------------------------- ●wm_arcextract wm_arcextract nMode = (int)wParam /* 通知モードを表す */ lpEis = (LPEXTRACTINGINFO)lParam /* 構造体を指すポインタ */  wm_arcextract メッセージは,TarSetOwnerWindow() で設定したウィンドウ に TAR32.DLL から送られます。 このメッセージを受け取ることにより TAR32.DLL がこれから処理する格納ファ イル名やファイルサイズ等を得ることができます。 nMode wParam の値です。TAR32.DLL の処理の状態を表します。 0 : 該当ファイルの処理を開始することを表します。 1 : 該当ファイルの展開中であることを表します。 2 : 処理を終え,lpEis のメモリを開放しようとしていることを表します。 lpEis lParam の値です。 ファイル名等を格納する EXTRACTINGINFO 構造体を指すポインタです。 戻り値  このメッセージを処理するアプリケーションは,0を返さなければなりません。 …といっても TAR32.DLL はメッセージをポストするだけで, 返り値はとくにチ ェックしていません。 ----------------------------------------------------------------------- EXTRACTINGINFO の構造 ----------------------------------------------------------------------- 構造体定義 typedef struct { char szSourceFileName[FNAME_MAX + 1]; char szDestFileName[FNAME_MAX + 1]; DWORD dwFileSize; DWORD dwWriteSize; } EXTRACTINGINFO メンバの説明 szSourceFileName 処理を行う格納ファイル名。 szDestFileName 実際に書き込まれるパス名。 dwFileSize 格納ファイルのサイズ。 dwWriteSize 解凍処理で書き込んだサイズ。 ------------------------------------------------------------------------ 処理の流れ ------------------------------------------------------------------------  解凍される格納ファイルごとに次の1・2を繰り返す。 1.nMode 0 でメッセージを送出。ファイル名等を得られる。 2.nMode 1 でメッセージを送出。書き込みサイズが得られる。そのファイルに ついての解凍処理が終了するまで,このメッセージを送出し続ける。  すべての処理が終了した時点で(解凍状況表示を消すタイミング), 3.nMode 2 でメッセージを送出。 ----------------------------------------------------------------------- API の返すエラーコード ----------------------------------------------------------------------- [TAR32.DLL]では、現在未実装です。0以外がエラーだと考えてください。 展開関係については結構実装できてきたはずです。 ■警告 :該当ファイルについての処理をスキップするだけで実行を中止する事 はない。 ERROR_DISK_SPACE 解凍する為のディスクの空きが足りません。 ERROR_READ_ONLY 解凍先のファイルはリードオンリーです。 ERROR_USER_SKIP ユーザーによって解凍をスキップされました。 ERROR_UNKOWN_TYPE 格納ファイルの種類が MS-DOS で扱える形式(BINARY 及び TEXT)以外で す。 ERROR_METHOD TAR32.DLL で扱えない格納モードで格納されています。 ERROR_PASSWORD_FILE 格納ファイルにパスワードがかかっています。 ERROR_VERSION 格納ファイルが TAR32.DLL が対応していないバージョンの形式です。 ERROR_FILE_CRC 格納ファイルのチェックサムが合っていません。 ERROR_FILE_OPEN 解凍時にファイルを開けませんでした。 ERROR_MORE_FRESH より新しいファイルが解凍先に存在しています。 ERROR_NOT_EXIST ファイルは解凍先に存在していません。 ERROR_ALREADY_EXIT ファイルが解凍先に既に存在しています。 ERROR_TOO_MANY_FILES 格納ファイル数が限界を越えている。処理は正常に行われているが,限界 を越えた部分については情報は得られていない。 ■エラー :致命的なエラーでその時点で実行を中止する。 ERROR_DIRECTORY ディレクトリが作成できません。 ERROR_CANNOT_WRITE 解凍中に書き込みエラーが生じました。 ERROR_HUFFMAN_CODE アーカイブファイルのハフマンコードが壊れています。 ERROR_COMMENT_HEADER アーカイブファイルのコメントヘッダが壊れています。 ERROR_HEADER_CRC アーカイブファイルのヘッダのチェックサムが合っていません。 ERROR_HEADER_BROKEN アーカイバファイルのヘッダが壊れています。 ERROR_ARCHIVE_FILE_OPEN アーカイブファイルを開く事が出来ません。 ERROR_NOT_ARCHIVE_FILE 指定したファイルは、アーカイブファイルではありません。 ERROR_CANNOT_READ アーカイブファイルの読み込み時に読み込みエラーが出ました。 ERROR_FILE_STYLE 指定されたファイルは、アーカイブファイルではありません。 ERROR_COMMAND_NAME コマンド指定が間違っています。 ERROR_MORE_HEAP_MEMORY 作業用のためのヒープメモリが不足しています。 ERROR_ENOUGH_MEMORY グローバルメモリが不足しています。 ERROR_ALREADY_RUNNING 既に別のプロセスから TAR32.DLL が呼ばれています。 ----------------------------------------------------------------------- レジストリの設定 ----------------------------------------------------------------------- TAR32.DLL は明示的にオプションが指定されなかった場合に、もし レジストリに該当の省略値が設定されていればそれを使用します。 コマンドラインで明示的に指定された場合は,コマンド指定が優先的に 使用されます。レジストリにも指定されていない場合は、TAR32.DLL 本来のデフォルトの動作となります。 ---------------------------------------------- HKEY_CURRENT_USER\Software\ArchiverDll\COMMON\ ---------------------------------------------- [TAR32.DLL]ではCOMMON設定は使用していません。 DefaultDir= 基準ディレクトリ。最後は '\' か ':' で終わ ること。また,絶対ディレクトリを使用する場 合は,"" とすること。 DirectoryMode= 解凍時に絶対ディレクトリを使用するか,相対 ディレクトリを使用するかのフラグ。 0 : 相対ディレクトリ。(デフォルト) 1 : 絶対ディレクトリ。 OverWriteMode= 解凍ファイルの上書き時の動作。 0 : 常に上書きする。 1 : 上書きするか確認する。(デフォルト) 2 : 上書きしない(スキップ)。 ExtractAttribute= アトリビュートも展開するかどうかのフラグ。 0 : 展開しない。 1 : 展開する。(デフォルト) JunkDirectory= ディレクトリを有効として解凍した場合でも ディレクトリパスを無視するかどうかのフラグ。 0 : ディレクトリパスは有効とする。(デフォルト) 1 : ディレクトリパスを無視する。 --------------------------------------------- HKEY_CURRENT_USER\Software\ArchiverDll\TAR32\ --------------------------------------------- CompressAtributeType= 圧縮時に圧縮するファイルの属性。(HIDDEN & SYSTEM) (デフォルト)0 DisplayDialog= 圧縮展開時にダイアログ表示を行うか? 0: 表示しない 1: 表示する(デフォルト) GnuHeader= GNU tar互換ヘッダを用いるか? 0: GNU tar互換 1: POSIX形式(デフォルト) GzipLevel= GZIPでの圧縮レベル(1-9) (デフォルト)6 BzipLevel= BZIP2での圧縮レベル(1-9) (デフォルト)9 NkfGetFilenameConversion= --nkf-get-filename-conversionオプションと同じ NkfSetFilenameConversion= --nkf-set-filename-conversionオプションと同じ ----------------------------------------------------------------------- 注意 ----------------------------------------------------------------------- 今後仕様変更される事があります。 =======================================================================