Sorry, even if you are asked about the usage of this library to me using language other than Japanese, I cannot answer with regrettable. Please perform an inquiry using Japanese. ============================================================================ .CAB ファイルの作成・解凍をウィンドウズ上で! CAB32.DLL 開発用SDK Ver 0.96 宮内 邦昭 ============================================================================ 0.はじめに これは、マイクロソフト社がプログラム配布用などに用いるキャビネット ファイル(CABファイル)の作成・解凍を実現するDLL(ライブラリ)です。 32ビット版ですので、Windows 95/98/ME/NT/2000 でのみ動作可能です。 単独で使用することはできません。対応したアプリケーションが必要です。 また、現在 NIFTY-Serve FWINDC MES #3 にて進行中の『統合アーカイバ API仕様』(仮称)に準拠しています。 なお、「API仕様」は現在進行形のプロジェクトです。したがって、この CAB32.DLL に含まれる機能も、最終決定版ではないと言うことを充分に認識 の上ご使用ください。 それから貴方のソフトでこのDLLに対応する場合、出来るだけダイナミック リンク(LoadLibrary/GetProcAddress)で使用するようにして、CAB32.DLL が 無い環境でも、(CAB関係が使えないだけで)問題なく動作するような設計に してください。 1.ファイルについて CAB32xxx.EXE を実行すると以下のファイルが得られます。 WELCOME.TXT : このドキュメント CAB32.DLL : ライブラリ本体 CAB32CMD.TXT: CAB32.DLL でのコマンド等についての説明ファイル CAB32API.TXT: CAB32.DLL で使用できるAPIの説明書です。 CAB32API.H : CAB32.DLL を使用するためのヘッダファイル CAB32.LIB : CAB32.DLL を静的リンクするためのライブラリ なおこれはVC++用ですので、BC++等では使用出来ません。 また上記にも書いたように、出来ればこれは使わずにダイナミック にリンクする方法をお取りください。 2.使い方 これはライブラリのみですので、単独では使用できません。 A. プログラムから API については,CAB32API.TXT をご覧ください。 CAB32.DLL を使用するには CAB32API.H をインクルードし、リンク時に CAB32.LIB をリンクするか、LoadLibrary()/GetProcAddress() により ダイナミックにリンクすることが必要です(極力こちらの方法を)。 B. 一般ユーザーから このDLLを使用するためには、対応したアプリケーションが必要です。 また、このDLLはWindowsのシステムフォルダ(通常は Windows 95/98なら \Windows\system\、Windows NT/2000なら \Winnt\system32\)にコピーして お使いください。上記以外の場所に置くことは、今後の本DLLのバージョ ンアップなどによる仕様変更の際、重大な問題を引き起こす可能性も ありますので、十分注意が必要です。 3.著作権及び転載について CAB32.DLL は、本ライブラリを利用する権利を、必要とされる方々に無償で 貸与する、いわゆるフリーソフトウェアです。 キャビネットファイルの作成・解凍ルーチンについての著作権は、米国マイク ロソフト社が保有しています。 統合アーカイバ仕様に準じたDLLの作成および拡張機能の搭載についての著作権 は、私(宮内 邦昭)が保有しています。 またこのソフトを使用することによって生じた結果等について、作者は責任を 負わないこととさせていただきます。 転載・雑誌等の付録収録については事前の転載確認が必要です。 たとえフリーソフトウェアであっても、「何をしてもフリー」ということでは 決してありません。このソフトウェアには著作権で保護された権利があり、 著作権をもたない第三者が、その権利を無断で行使することはできません。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4.サポートは A. 会議室 NIFTY-Serve バグ報告・意見・要望 FWINDC MES( 3) 【仲間】共同開発仲間募集・ネタ#2 B. メール internet miyauchi@lightship.co.jp また、下記の URL に関連情報を公開していきたいと思いますので、合わせて ご覧いただければ幸いです。 http://www.lightship.co.jp/cab/cab32.html http://www.csdinc.co.jp/archiver/ 5.著作権・注意事項について キャビネットファイルを作成・解凍するために利用するエンジンは マイクロソフトより提供されたものであり、この部分については、す べての著作権を米国マイクロソフト社が留保しています。 DLL化において、CAB32.DLLに独自にインプリメントされたインタフェース と、キャビネットファイルの正当性検査および自己解凍形式プログラム化 については、私(宮内 邦昭)がその著作権を留保します。 CAB32.DLLを利用して作成したキャビネットファイルは、その内部仕様を 米国マイクロソフト社が定めるキャビネットファイルの仕様と同じもの でなければならないため、作成したキャビネットファイルを改竄して、 標準の仕様でないキャビネットファイル(*.cab)を作成してはいけません。 5.バージョン履歴 version 0.96 2002/03/04 ・解凍時のオプションだった "-j" スイッチを、圧縮時に指定された際に、 パス名を付加せずに格納するオプションとして利用するよう機能追加 ・解凍時にSHChangeNotifyを呼び出して、Windowsシェルにファイルの作成 が行われたことを通知するよう機能追加 version 0.95 2001/08/11 ・CabFindFirst/Nextの呼び出し時に、結果情報構造体へのポインタにNULL を渡すとアプリケーションエラーが発生していた不具合に対処 version 0.94 2001/06/13 ・書庫作成時に書庫ファイル名に日本語を利用した場合、書庫の作成が正常に おこなわれないことがあった不具合に対処 version 0.93 2001/06/08 ・解凍時のフォルダ作成で、フォルダ作成した旨の通知をOSに送るようにした ・作業フォルダを指定するオプション( -h )を追加 ・System/Hidden属性のついたファイルを格納しないオプション( -g )を追加 ・CabFindFirst/CabFindNextで、書庫の格納タイプ(stored/lzx/mszip)を返す ようにした version 0.92 2000/08/01 ・自己解凍形式キャビネットのリスト取得などの操作が不能になって しまっていた不具合に対処 version 0.91 2000/07/29 ・大容量サイズ(数百メガバイト)のキャビネット書庫の操作が できないことがあった不具合に対処 ・大きなサイズのファイルを格納・解凍する際に、進捗グラフバーが 正常に進捗状態を表示できないことがあった不具合に対処 version 0.90 2000/01/14 ・書庫ヘッダの簡易チェック命令 -c を追加 ・自己解凍形式書庫内の格納ファイル操作を可能とした ・特定のファイルを格納しないオプション( -ze )、特定の ファイルを圧縮せずに書庫へ格納するオプション( -zs ) を追加 ・ファイルの更新日時の範囲を指定して、範囲外のファイルをキャビネット へ格納しないオプションを追加。( -ys および -ye ) ・自己解凍形式書庫で自動実行プログラムを指定した場合に、アプリケー ションパスが正常に設定されない不具合に対処 ・書庫の正当性検査( -t 命令 )を、ヘッダトレースだけでなく、格納 データに対しても厳密に行うよう機能修正 ・マルチボリューム書庫作成で無限ループに陥ることがある不具合に対処 ・自己解凍形式書庫作成にて、解凍先フォルダを指定しないオプションで 解凍先フォルダ未設定にした場合、正常に解凍がおこなわれない不具合に対処 ・解凍状況のコールバックが正常でなかった不具合に対処 version 0.84 1999/04/26 ・ファイル名が全角文字で'5c'コードを含む場合に、そのファイルが正常に 格納されていなかった不具合に対処 version 0.83 1999/04/16 ・同一ファイルを二重に格納してしまうことがある不具合に対処 version 0.82 1999/04/01 ・自己解凍書庫の解凍の際に、既存のフォルダを解凍先に指定しても フォルダ作成の問い合わせをおこなってしまっていた不具合に対処 version 0.81 1999/03/30 ・-wによる正規表現指定時の圧縮と解凍に不具合があったものを修正 ・圧縮対象となるファイルが短い名前で与えらても正常に圧縮できなかった不具合 に対処 version 0.80 1999/03/25 ・要望により正規表現をオプション( -w )扱いとした ・引数で指定するパス名・基準ディレクトリ・フィルタに '/' も利用 可能とした( '/' は '\' とみなして処理) ・作成できるCAB書庫の最大サイズを(2G - 1)バイトにした (Microsoftさんヘッダを間違えないでね) ・8+3形式のDOS名でファイルを格納するオプション( -q )を新設 version 0.76 1999/03/18 ・Cab() / CabCheckArchive() において、書庫名にフォルダを渡すと異常終了 してしまう不具合に対処 version 0.75 1999/01/28 ・圧縮において、*.*以外のフィルタが指定された場合に、基準フォルダ配下の すべてのフォルダを検索できていなかった不具合を修正 version 0.74 1999/01/18 ・0.72の基準ディレクトリ不具合修正により、格納ファイルにパス名が付加されて しまう不具合が新たに発生していた問題に対処 version 0.73 1999/01/14 ・マルチボリュームで作成された書庫の解凍で、最後のボリュームが正常に 解凍されない場合があった不具合を修正 version 0.72 1999/01/12 ・基準ディレクトリを指定しても、それが有効になっていなかった不具合に対処 version 0.71 1998/11/27 ・無圧縮でキャビネットに格納するコマンドオプションを追加 version 0.70 1997/11/05 ・圧縮されたサイズが128Mバイトを超えるとキャビネットファイルが上書き されてしまう不具合に対処 キャビネットの最大サイズが128MBのため、これを超える場合には、 自動的にマルチボリューム形式に変更 version 0.69 1997/10/12 ・LZX形式で圧縮したファイルを解凍できなかった不具合に対処 version 0.68 1997/09/08 ・レスポンスファイルで、1行に複数のファイルが列挙されていた場合に、 正常に動作しなかった問題に対処。ただしこの対処により、空白を含む ファイル名を指定する場合には、""で必ず括らなくてはならなくなった。 その他バグ修正など version 0.65 1997/05/17 ・書庫に格納されているデータが256バイトより小さい場合に、書庫を開け なかった問題に対処した version 0.64 1997/05/10 ・自己解凍形式キャビネットの解凍プログラム部分をシェイプアップし サイズをコンパクトにした version 0.63 1997/05/09 ・Windows95上で自己解凍形式キャビネットが作成できなかった不具合に対処 version 0.61 1997/05/07 ・レジストリ設定 CabConfigDialog を一部サポート version 0.60 1997/05/06 ・自己解凍形式キャビネットの作成をサポート version 0.55 1997/05/01 ・ファイル圧縮時、格納ファイルをフルパス名で指定すると、正常に動作 しなかった問題に対処 version 0.54 1997/04/29 ・解凍ファイル名のフォルダ区切り記号に '/' を指定した場合でも正常 に動作するよう修正 ・解凍ファイル名の指定で "aaaa\*.*" などの指定が正常動作していな かった不具合の修正 ・Cab() において、キャビネットファイル作成時に、作成結果を結果バ ッファに格納していなかった不具合の修正 version 0.50 1997/04/25 ・CAB32.DLL の最初のバージョン(β1) ------------------------------------------------------------------------------