============================================================================ .RAR ファイルの解凍をウィンドウズ上で!(もとからできてるっちゅーねん!) unrar32.dll 開発用SDK Ver 0.17 亀井 哲弥 ============================================================================ 0.はじめに このたびは「unrar32.dll」をダウンロードして頂きありがとうございます。 これは、Eugene Roshal 氏が開発し、ヨーロッパ方面や地面の下の方でよく 使われているらしい RAR ファイルの解凍を実現する DLL(ライブラリ)です。 Windows XP/Vista/7/8(i386用)以降で動作可能です。単独で使用することは できません。対応したアプリケーションが必要です。 1.ファイルについて A. インストールについて unrar320???.exe を実行すると以下のファイルが得られます。同時に必要な インストールも終了してますので、以下は参考としてだけお読みください。 手動でインストールする場合は、配布ファイルをLZH自己解凍書庫に対応し た汎用のアーカイバで解凍し、*.DLL ファイルのみWindowsのシステムフォ ルダにコピーするだけでOKです。 unrar32.txt : このドキュメント unrar32.dll : ライブラリ本体 unrar32d.txt: unrar32.dll でのコマンド等についての説明ファイル unrar32.api : unrar32.dll で使用できる API の説明書 src.lzh : ソースファイル unrar.dll : RAR 展開ライブラリの本体(Copyright(c)2015 Alexander Roshal) UNRAR32.INF : 自動インストール用の設定ファイル。 B. 削除について アンインストールする場合は、コントロールパネルの「プログラム(アプリ ケーション)の追加と削除」または「プログラムと機能」の一覧から 「UNRAR32 Common Archivers Library DLL」を選んで「アンインストール」 「変更と削除」または「追加と削除...」ボタンを押してください。 2.使い方 これはライブラリのみですので、単独では使用できません。 A. プログラムから API については,unrar32.api をご覧ください。 unrar32.dll を使用するには unrar32.h または comm-arc.h をインク ルードし、リンク時に unrar32.lib(自分で作成してください)をリンク するか、LoadLibrary()/GetProcAddress() によりダイナミックにリン クすることが必要です(出来るだけこちらの方法を)。 B. 一般ユーザーから このDLLを使用するためには、対応したアプリケーションが必要です。 また、このDLLはWindowsのシステムフォルダ(通常は 32bit版なら C:\Windows\system32\、64bit版のWindowsでは C:\Windows\SysWOW64\) にコピーしてお使いください。上記以外の場所に置くことは、今後の本 DLLのバージョンアップなどによる仕様変更の際、重大な問題を引き起 こす可能性もありますので、十分注意が必要です。 また、Alexander Roshal 氏より配布されている UnRAR.DLL が必要です。 WinRAR 日本オフィシャルページ(http://www.diana.dti.ne.jp/~winrar/) から UnRARDLL をダウンロードしてください。 → 同梱しました。(2002/1/22 by shoda T.) 注:最新の WinRAR(version 5以降)で導入された新しいRAR形式(RAR5) で圧縮された書庫ファイルは、ver 4 以前の UnRAR.DLL では、扱う ことが出来ません(unrar32.dll には関係しません)。 このパッケージに同梱された UnRAR.DLL はRAR5にも対応したもので すが、万が一扱えない場合は、いったん古い unrar32.dll/UnRAR.DLL を削除してから、再度インストールしてみてください。 3.著作権及び転載について unrar32.dll はフリーソフトウェアです。とりあえず著作権は作者が保有し ていますが、著作者人格権を行使する意志はありません。使用、改変および再 配布に対する制限は一切設けません。暇があって物好きな方はもっとまともな ものを作って公開してください。 version 0.11-0.13および0.17の改変部分は Claybird氏(claybird.without.wing (at)gmail.com)が著作権を保有してます。 version 0.14-0.16の改変部分は RuRuRu氏(Twitter: @RuRuRuTan)が著作権を 保有してます。 これらの改変についても、改変部の作者は著作者人格権を行使する意志はあり ません。オリジナルと同じく、使用、改変および再配布に対する制限は一切設け ません。 UnRAR.DLL は Alexander Roshal 氏が著作権を保有しています。 またこのソフトを使用または使用できないことによって生じた結果等につい て、作者は責任を負わないこととさせていただきます。 4.サポート サポートは基本的にメーリングリストで行います。詳しくは『統合アーカイバ』 のページ(http://www.csdinc.co.jp/archiver/)を参照してください。 この配布ファイルの構成等については shoda T.(shoda(at)csdinc.co.jp) へ。 5.バージョン履歴 version 0.17 2015/6/21 ・unrar.dll ver 5.21.100.1510 を同梱した配布ファイル作成(shoda T.)。 (UNRAR.DLL ver 4 以下では、ver 5 で導入された新しいRAR形式(RAR5) で 作成された書庫を展開出来ないだけでなく、書庫としても認識出来ません。 また、UNRAR.DLL ver 5.21未満では正しく動作しない可能性があります。 必ず同梱のバージョン以降の UNRAR.DLL をお使いください) version 0.17 2015/6/8 (by Claybird) ・RuRuRu氏によるversion 0.16の変更点を取り込み ・開発環境をVC2005に戻した ・パスワード間違いによるCRCエラーのメッセージを変更した ・CHECKARCHIVE_NOT_ASK_PASSWORDを指定したUnrarCheckArchive()でヘッダ暗号化された ファイルが破損扱いになっていた不具合を修正 version 0.16 2013/10/18 (by RuRuRu) [変更点抜粋 by Claybird] ・unrar.dllのAPIバージョン6(RAR5対応版)で互換性の無い変更が行われたので対応。 これまでのバージョンでは展開に失敗する場合があります。 ・パスワード入力時に何も入力しない場合はキャンセル扱いにした。(7-zip32準拠) ・環境によってはパスワード入力に失敗する不具合を修正。 ・展開キャンセル時に即時終了する様に変更。 ・プログレスダイアログを親ウインドウ中央に表示するように修正。 ・128文字以上のパスワードの書庫に対応。 ・UnrarSetUnicodeModeを実装。 ・内部的にUTF-16で動作する様に変更。 ・ユニコード文字を含むパスワードの書庫が開けない不具合を修正。 ・x64でビルド可能な様に修正(unrar64j.dll) ・以下の64ビット整数値の取得API関数を追加。 UnrarGetArcFileSizeEx UnrarGetArcOriginalSizeEx UnrarGetArcCompressedSizeEx UnrarGetOriginalSizeEx UnrarGetCompressedSizeEx version 0.13 2013/9/18 ・unrar.dll ver 5.0.100.967 を同梱した配布ファイル作成(shoda T.)。 (UNRAR.DLL ver 4 以下では、ver 5 で導入された新しいRAR形式(RAR5) で 作成された書庫を展開出来ないだけでなく、書庫としても認識出来ません) version 0.13 2011/2/16 ・unrar.dll ver 4.0.6.36 を同梱した配布ファイル作成(shoda T.)。 ・アンインストール機能の改善。 version 0.13 2011/1/13 (by Claybird) ・展開中にパスワード入力をキャンセルした場合にはERROR_USER_CANCELを 返すように(ヘッダ暗号解除前にキャンセルならERROR_PASSWORD_FILEが 返る) ・入力ダイアログのパスワードが空の場合にはOKボタンを押せないようにした ・展開ダイアログにタイトルバーを付けた ・開発環境をVC2005に変更 version 0.12 2009/6/24 ・unrar.dll ver 3.90.3.168 を同梱した配布ファイル作成(shoda T.)。 version 0.12 2009/5/23 (by Claybird) ・ボリュームが分割されたRARファイルを処理する際、ボリューム選択ダイ アログにてキャンセルが効かなかった(コールバックに返す値を間違えて いたため) version 0.11 2009/3/25 ・unrar.dll ver 3.80.100.259 を同梱した配布ファイル作成(shoda T.)。 version 0.11 2009/03/08 (by Claybird) ・使用するAPIの変更 RARSetPassword/RARSetChangeVolProcではなく、RARSetCallbackを用いる ようにした。これにより、ファイル名を暗号化されたrarファイルの解凍 にも対応したはずです。 ・内容物がディレクトリかどうかの判定を変更 RARHeaderData構造体のFileAttrではなくFlagsを用いて行うようにしました。 書庫内ファイルに対し、FileAttrにFILE_ATTRIBUTE_DIRECTORYが指定されて いるrarファイルが存在し、それが解凍できないとの報告があったため、修正 しました。 ・コマンドライン引数に-h (-hideのつもり) を追加 ・OpenArchive()の引数にM_ERROR_MESSAGE_OFFを指定できるようにした (フラグに空きがほとんど無いので既存の物を流用、エラーダイアログも抑制 されます) ・CheckArchive()に新しいフラグ CHECKARCHIVE_NOT_ASK_PASSWORD(64) を指定 できるようにした version 0.10 2004/8/21 ・unrar.dll ver 0.04 (3.20) を同梱した配布ファイル作成(shoda T.)。 version 0.10 2004/08/15 ・いわゆるdirectory traversal問題に対応(thanks to mij4x氏)。 ・解凍時の進捗ダイアログを詳細に(thanks to にっくる氏)。 ・-q オプションを追加。 version 0.09d 2003/12/30 ・unrar.dll ver 0.04 (3.20) を同梱した配布ファイル作成(shoda T.)。 ・unrar.dll の変更点 ・不明(相変わらずだ --) (かつてのAPIドキュメントにはAPIに変更があるたびに増加すると 書かれていたが、今回からこの記述のみ削除されている。それ以外は 何も記述に変化ないんだけど、どうなってんの??>>Eugene 君) version 0.09c 2003/5/20 ・unrar.dll ver 0.03 (3.20) を同梱した配布ファイル作成(shoda T.)。 ・unrar.dll の変更点 ・不明(相変わらずだ --) version 0.09b 2003/1/19 ・unrar.dll ver 0.03 (3.11) を同梱した配布ファイル作成(shoda T.)。 ・unrar.dll の変更点 ・不明(何変えてんだか。バージョン番号だって、ホームページ以外 にはどこにも書いてないし(;_;) ため息 by shoda T.) version 0.09a 2002/12/23 ・unrar.dll ver 0.03 (3.10) を同梱した配布ファイル作成(shoda T.)。 ・unrar.dll の変更点 ・Added RAROpenArchiveEx function allowing to specify Unicode archive name and get archive flags. version 0.09 2002/07/30 ・unrar.dll ver 0.02 を同梱した配布ファイル作成(shoda T.)。 version 0.09 2002/07/30 ・サイズが 2GB 〜 4GB のファイルを展開できなかったのを修正。 version 0.08 2001/08/13 ・unrar.dll の新しいバージョンに対応(怒)! version 0.07 2001/02/13 ・-r オプションを追加。 version 0.06 2001/01/11 ・マルチボリューム書庫の一部のファイルが存在しない場合の不具合を 修正。 ・マルチボリューム書庫の一覧表示で、すべてのファイルを対象にする ようにした。 ・マルチボリューム書庫でファイルが存在しない場合に、ファイル名を 入力可能にした。 ・プログレスバーの進み具合が変だったのを修正。 version 0.05 1998/04/04 ・パスワード付き書庫に対応。 ・絶対パスを相対パスに変換するようにした(念のため)。 version 0.04 1998/03/23 ・パス名の比較の不具合を修正。 ・-s オプションを追加。 version 0.03 1998/03/17 ・レスポンスファイルを指定できるようにした。 version 0.02 1998/03/16 ・実は完成していなかった(^^; ・UnRAR.DLLがロードできない場合はメッセージボックスを表示するようにした。 ・文字列リテラルをリソースに追い出した。 ・コマンドラインの解析がタコっていたのを修正。 version 0.01 1998/03/13 ・完成(^^; ------------------------------------------------------------------------------