ISO イメージファイル展開用 DLL UnIso32.dll Ver.4.57.00.04 by K.Takata 1.はじめに  本 DLL は、CD や DVD の ISO イメージファイルを展開するための DLL です。 『統合アーカイバAPI仕様』(仮称)に準拠しており、統合アーカイバ DLL を 利用するソフトから使用できます。  本機能は、7-Zip の ISO ファイル展開機能と、7-zip32.dll の統合アーカイバ API を組み合わせることで実現しています。 2.対応イメージファイル  7-Zip 4.65 で展開可能な ISO イメージファイルに対応しています。具体的には 以下のイメージファイルが扱えるようです。 ・ISO 9660 Level 1, 2 ・Joliet ・UDF (ISO 13346) 3.API  使用可能な API は、7-zip32.dll とほぼ同等です。ただし関数のプレフィックスは SevenZip から UnIso に変更されています。  圧縮系のコマンドは一切使用できません。 4.ソースファイルの構成  ソースファイルの大部分は 7-Zip 4.57 と 7-zip32.dll 4.57.00.01 をベースに しており、一部は 7-Zip 4.65, 9.15, 9.20 のソースファイルを利用しています。 (7-Zip 4.57 は UDF に対応しておらず、また ISO ファイルのタイムスタンプの 扱いにバグがあるため。)  7-Zip 4.57 および 7-zip32.dll 4.57.00.01 から変更しているファイルを以下に 示します。 C\CpuArch.h 7-Zip 4.65 のファイルに差し替え CPP\7zip\Archive\Iso\* 7-Zip 4.65 のファイルに差し替え CPP\7zip\Archive\Iso\IsoHandler.cpp CPP\7zip\Archive\Iso\IsoIn.cpp 7-Zip 4.57 に合わせるために修正 CPP\7zip\Archive\Udf\* 7-Zip 4.65 のファイルを追加 CPP\7zip\Archive\Udf\UdfHandler.cpp 7-Zip 4.57 に合わせるために修正 CPP\7zip\Archive\Udf\UdfIn.cpp 7-Zip 4.57 に合わせるために修正 7-Zip 9.20 の変更を一部反映 CPP\7zip\Bundles\7-zip32\* 7-zip32.dll 4.57.00.01 のソースファイル CPP\7zip\Bundles\7-zip32\7-zip32.dsp 7-zip32.dll を ISO ファイルに対応させたもの DLL のベースアドレスの設定も追加(ロード高速化、省メモリ目的) CPP\7zip\Bundles\7-zip32\7-zip32.h ARCHIVETYPE_ISO 追加 バージョン番号変更 CPP\7zip\Bundles\7-zip32\Dialog.cpp UnIso32.dll用バージョン情報追加 CPP\7zip\Bundles\7-zip32\MyOpenArchive.cpp ARCHIVETYPE_ISO 追加 ISO ファイル内のディレクトリのサイズを取得すると例外が発生するのを修正 CPP\7zip\Bundles\7-zip32\UnIso32.def CPP\7zip\Bundles\7-zip32\UnIso32.dsp CPP\7zip\Bundles\7-zip32\UnIso32.dsw CPP\7zip\Bundles\7-zip32\UnIso32.rc UnIso32.dll用に追加 CPP\7zip\Bundles\7-zip32\7zTest\7zTestDlg.cpp UnIso32.dll用の情報追加 CPP\7zip\Common\StreamUtils.cpp CPP\7zip\Common\StreamUtils.h 7-Zip 4.65 の変更を一部反映 CPP\7zip\UI\Common\LoadCodecs.cpp CPP\7zip\UI\Common\OpenArchive.cpp 7-Zip 4.65 の変更を一部反映 CPP\Common\MyMap.cpp CPP\Common\MyMap.h 7-Zip 4.65 のファイルを追加 CPP\Common\Types.h 7-Zip 9.15 の UTFConvert.cpp がコンパイルできるように Bool の定義を追加 CPP\Common\UTFConvert.cpp 7-Zip 9.15 のファイルに差し替え サロゲートペアが正しく変換できないのを修正するため CPP\Common\MyInitGuid.h CPP\Windows\System.cpp Platform SDK (Feb. 2003) をインストールしていない VC++ 6.0 でもコンパイル できるように修正 CPP\Windows\Time.cpp CPP\Windows\Time.h 7-Zip 4.65 のファイルを追加・差し替え 5.参照サイト ・統合アーカイバプロジェクト http://www.csdinc.co.jp/archiver/ ・7-Zip http://sevenzip.sourceforge.jp/ ・7-zip32.dll http://www.csdinc.co.jp/archiver/lib/7-zip32.html http://akky.cjb.net/ ・ReBaseImage() -- DLL のベースアドレスについて http://msdn.microsoft.com/ja-jp/library/cc428982.aspx 6.履歴 2009/02/08 Ver.4.57.00.01 ・最初の公開バージョン。 2009/02/15 Ver.4.57.00.02 ・UDF に対応。 2010/09/03 Ver.4.57.00.03 ・UTF-16 のサロゲートペアが正しく扱えないのを修正。 2011/02/28 Ver.4.57.00.04 ・7-Zip 9.20 の変更を一部反映。 ・GetSubVersionが正しいバージョンを返していなかったのを修正。 7.ライセンスおよび著作権  本 DLL のライセンスは GNU Lesser General Public License (LGPL) です。詳細は 同梱の copying.txt を参照してください。  7-Zip は、Igor Pavlov 氏の著作物です。  7-zip32.dll は、秋田 稔氏の著作物です。 8.連絡先 作者: K.Takata(高田 謙) URL : http://webs.to/ken/ http://homepage3.nifty.com/k-takata/