---------------------------------------------------------------------------- .YZ1書庫 圧縮解凍DLL YZ1.DLL Ver 0.32 / Unyz1.dll 0.04 ---------------------------------------------------------------------------- 0.はじめに ダウンロード有り難うございます。 このライブラリは、やまざき@BinaryTechnology氏が開発された "DeepFreezer" の圧縮形式である、YZ1書庫を扱うDLLです。32ビット版 ですので、Windows 95 以降でのみ動作可能です。 また、現在 NIFTY-Serve FWINDC MES #3 にて進行中の『統合アーカイバ API仕様』(仮称)に準拠しています。「API仕様」は現在進行形の プロジェクトです。したがって、このDLL に含まれる機能も、最終決定版 ではないと言うことを充分に認識の上ご使用ください。 1.使い方 yz1d032.exe を実行すると、解凍先を聞いてきます。通常はそのまま 「OK」ボタンを押してください。 全てのファイルがハードディスクの \Program Files\ArchiverDLL\YZ1\ フォルダに解凍され、必要なファイルだけが Windows のシステムフォルダ にコピーされます。最後にこのドキュメントが表示されれば、インストール は終了です。そして YZ1.DLL や UNYZ1.DLL に対応したアプリケーションを 起動すれば、*.YZ1 ファイルの操作が可能になっているはずです。 DLL単独で使用することはできません。必ず、対応したアプリケーションが 必要です。http://www.csdinc.co.jp/archiver/ などで探してみて下さい。 もし何らかの異常が発生した場合は、下記の「4.手動インストール」を 参照してください。また、Archway / HiroRAR でご使用の場合は、次の 注意書きをお読みください。 ■Archway で Unyz1.dll 0.04 を使用した場合、解凍しようとすると エラーメッセージが表示される。 これは、Archway が Unyz1.dll 0.02 以前でしか使えないように なっているからです。その場合、Unyz1.dll がシステムディレクトリに コピーされた後、解凍先の中のsdkフォルダに入っている Unyz1set.exe を 実行し、「バージョン情報では、〜を返す」と「0.02 Build 15」 または「0.02 Build 12」をチェックしてください。 ■HiroRAR で Unyz1.dll 0.04 を使用した場合、解凍しようとすると エラーメッセージが表示される。 これは、現行の HiroRAR が Unyz1.dll 0.02 Build 12 でしか使えない バグがあるためです。その場合、上のケースと同様に、「バージョン 情報では、〜を返す」と「0.02 Build 12」をチェックしてください。 2.著作権・転載条件等 ・YZ1 のアルゴリズムと YZ32*.LIB の著作権は、やまざき氏が保有しています。 やまざき氏のHPはこちら( http://member.nifty.ne.jp/yamazaki/ ) ・このプログラムの使用によって生じた損害等について、制作者側は 一切責任を負わないこととさせていただきます。 ・フリーウェアです。コピーしたりメール等で送付することに何ら制限はありま せんし、誰かに許可をとる必要もありません。また、ダウンロードや使用する 事に対して一切の費用はかかりません(有償ダウンロードサイトなどの会費・ 課金等は除く)。 ・他のネットワーク、BBS、サーバ等への転載や、雑誌等への収録・配布は 原則的に可能ですが、必ず事前に連絡ください。また、転載・配布する場合に、 書庫ファイル及び格納ファイルを改変することや、オリジナル書庫ファイルを 添付せずに、解凍した状態で収録することは禁じます。 ・他のソフトへのバンドルの際も、必ず事前に連絡が必要です。 3.サポート A. メール kiki @ kmonos.net (K.INABA ... YZ1.DLL) hirosoft @ valley.ne.jp (島田 啓史 ... UNYZ1.DLL) #このDLLは、やまざき氏の yz32*.lib のライセンスを受けて独自にDLLと して開発されたものであり、基本的にやまざき氏は関与しておられません。 やまざき氏への質問メール等はご遠慮下さい。 B. メーリングリスト 一般ユーザ向けには archiver と言うメーリングリスト、開発者向けには arcdev と言うメーリングリストが運用されています。詳しくは下記の ホームページをご覧ください。 (いずれも YZ1用DLL だけでなく、アーカイバ全般を扱います) また、下記の URL に関連情報が公開されておりますので、 合わせてご覧いただければ幸いです。 http://www.csdinc.co.jp/archiver/ 『統合アーカイバ・プロジェクト』 4.手動インストール 配布アーカイブを展開すると以下のファイルが得られます。 yz1dll.txt : このドキュメント yz1.dll : 本体1 unyz1.dll : 本体2 yzdec.exe : 自己解凍書庫を作成するのに必要なモジュール sdk/ : 開発者向けの資料 uinstyzd.exe : アンインストール用のプログラムです。 yz1dll.inf : YZ1.DLLのインストーラ及びuinstyzd.exeが使用します。 もし正常にインストールが終了しなかった場合は、YZ1.DLL をウィンドウズ・ システムディレクトリ(Win95,98,Meの場合通常は C:\WINDOWS\SYSTEM )に コピーして下さい。(NT系OS の場合は C:\WINDOWS\SYSTEM32 となります。) また、 ・UNYZ1.DLLを必要とするアプリケーションの場合、UNYZ1.DLL ・自己解凍書庫形式で圧縮する場合、yzdec.exe も同様にシステムに入れておく必要があります。初めから3ファイルとも 全て入れてしまうのが簡単かと思います。 ■配布ファイルを展開したのに DLL が表示されない! Explorer ではユーザーが指定しない限りDLLは表示されません。 「表示―オプション」メニュー (IE4 導入済みだと「表示―フォルダオプション」) ですべてのファイルが表示されるように設定してください。 5.謝辞 DLL化を快諾して下さったやまざき氏に感謝いたします。 6.歴史 YZ1.DLL 0.32 (2010/11/25)    ・UNYZ1.DLL から YZ1.DLL をロードする際の検索パスからカレントを外しました      JVNVU#707943 : Windows プログラムの DLL 読み込みに脆弱性       http://jvn.jp/cert/JVNVU707943/index.html     への対応です    ・-s に何も指定しなかったときの yzdec.exe の検索パスからカレントを外しました YZ1.DLL 0.31 (2009/10/02)    ・展開時にファイルのタイムスタンプがおかしくなっていたバグを修正 YZ1.DLL 0.30 (2008/03/30)    ・ビルド環境を再び Visual Studio 2005 に。Win95 でも動くよう対処済み    ・不正なヘッダを持つ書庫の展開時にアクセス違反で落ちるバグを修正     (エラーを返すようになりました) YZ1.DLL 0.29 (2006/11/30)    ・ビルド環境を Visual Studio .NET 2003 に戻しました     > Win95で動作しなくなっていた問題を解決    ・展開時にバッファオーバーフローが発生する危険があったバグ修正 YZ1.DLL 0.28 (2006/11/22)    ・ビルド環境を Visual Studio 2005 に移行    ・s コマンド(通常書庫をSFX書庫に変換)のバグ修正     >出力先が別ファイルへの上書きだった場合壊れたSFXを作る可能性があった    ・j コマンド(SFX書庫を通常書庫に変換)を実装 YZ1.DLL 0.27 (2005/11/15)    ・今更ビルド環境を Visual Studio .NET 2003 に移行    ・パスワードつき書庫のYz1FindFirstに失敗したあとYz1GetFileName等を     呼び出すと落ちる問題を修正。    ・InitCommonControls() を呼ぶように修正。    ・非対応の、2GB以上のファイルを圧縮しようとしたときにエラーを     返すように修正。 YZ1.DLL 0.26 (2004/08/11)    ・0.25 には "..." といった '.' の連続しているパスが不正パスチェックを     すり抜けてしまうというバグが存在したので修正。    ・パス名の切り分けを、Shift_JIS 決めうちではなく Windows の ANSI CodePage     で行うようにしました。 YZ1.DLL 0.25 (2004/07/31)    ・-ea1をデフォルトにしました。      不具合が発生する場合は、-ea0 を指定して      従来通りの動作に戻して使用してください。    ・-eaスイッチの動作が不必要に厳しすぎたバグを修正。 YZ1.DLL 0.24 (2004/02/22)    ・NTFSの副ストリームの格納・展開に対応 YZ1.DLL 0.23 (2003/08/19)    ・beta から変更はありません YZ1.DLL 0.23 beta 1 (2003/08/03)    ・-ea スイッチ追加 YZ1.DLL 0.22 (2002/09/12)    ・書庫内の情報を取得する際に、更新時刻がずれていたバグ修正。 YZ1.DLL 0.21 (2002/01/09) 0.17からの主要な追加機能は以下の通りです。 0.20β2とは、DLL自体に変更はありません。 ・Yz1() API でもワイルドカードをサポート ・オプションスイッチを大量追加 ・格納ファイル名を指定しての展開 ・格納ファイルの更新日時取得 ----------------------------------------- Yz1 フォーマットに対応した統合アーカイバ仕様DLLとしては、Listy氏、 ardry氏、hirosoft(島田)氏と引き継がれて開発が進められた "UnYz1.dll" と、 K.INABA が独自にインプリメントした "Yz1.dll"、米田氏の制作された "Yyz32.dll" の三つがあり、それぞれに幾つか対応ソフトが出現していました。 ですが、それぞれ無関係に並立しているのはまずかろうということで、 統合版として公開されることになりました。統合前の各DLLの開発履歴は 以下のようになっています。 -- UNYZ1.DLL ---------------------------- UNYZ1.DLL は、RarUty の作者であるListy氏が独自に RarUty.dll Ver.0.06 の サブセット版として統合アーカイバプロジェクト準拠&VisualC++以外の 開発環境でもyz1の解凍機能をという目的で開発されたものですが、凍結されて しまいました。その UNYZ1.DLL を ardry 氏が配布していまして、 それを Hiro Software が開発を継いだものであります。 なお、Listy 氏は UNYZ1.DLL に関する全権利(著作権や開発の意志等)を放棄しています。 従って、Listy 氏にサポートなどを期待するメールは送らないで下さい。 1999/04/07 Ver.0.01 非公開(>ardry氏によって公開)バージョン。以下の関数を作る UnYz1GetVersion,UnYz1CheckArchive,UnYz1GetFileCount,UnYz1s 1999/11/28 DLLのAPI/ソースコードを含んだ公開・配布に踏み切る 2000/08/28 Ver.0.02 Build 12 UnYz1関数の中身を作る 2000/09/02 Ver.0.02 Build 13 UnYz1関数が動かない大バグを修正 2001/02/01 Ver.0.02 Build 14 なんとか、パスワードダイアログが表示できるように。 2001/07/06 Ver.0.02 Build 15 圧縮部分の改良、Archwayのバグを対処する処理を加える UnYz1ConfigDialog 関数を追加。 圧縮、解凍処理を1つの関数にまとめる(Yz1.dll を 呼び出す0.03に備えて) Unyz1.sfxを作る。 ソースコードにパスワードをかけないようにした。 利用条件の修正。この DLL の商用利用は OK になりました。 その他、多くの修正 2002/01/03 Ver.0.03 Build 100 Yz1.dll に処理を渡すように修正。 そのため、パスワードダイアログ、Archway チェックダイアログを廃止。 設定ダイアログの「Archway モードになったときは、確認ダイアログを表示」を廃止 UnYz1 関数から呼び出した場合のエラーメッセージが増えた。 Cmd.txt を大幅に書き直す。 UnYz1GetReal〜 関数を追加。 Build 15 以前で、Archway から呼び出せない(?)大バグを修正。 その他、さまざまな修正。 -- YZ1.DLL ------------------------------ ver 0.01(00/02/14) 解凍機能完成 ver 0.02(00/02/15) 圧縮ひととおり完成。 公開鍵パスワードの鍵を表示しない問題があることが判明。 ver 0.03(00/02/16) その問題を解決。 ver 0.04(00/02/17) Yz32 -> Yz1 に名前変更 -h (High ratio encoding) オプション削除。 ver 0.05(00/02/18) キャンセルボタン実装。 K.INABA's Homepageにて正式に公開。 ver 0.06(00/02/20) 単一ファイル圧縮時にyz1書庫が二つできることのあったバグを修正。 Yz1()に渡されたウインドウををDisableするようにした。 ver 0.07(00/02/22) QueryFunctionList() 実装。 GetRunning() を実装。 GetFileCount() , ConfigDialog() を一応実装。 -y (all Yes) オプション追加。 -i (sIlent mode) オプション追加。 -s でモジュールのパスを指定可能にした。 -p , -P で、コマンドでのパスワード指定を可能にした。 "を含んだパラメータもとれるように修正。 ex) "-p double"quotation " しかし未だに"の後ろに半角スペースを含んだのは駄目。 GetVersionとCheckArchiveの順序数を間違えてたのを修正。 バージョンリソースがついた。 ver 0.07a(00/02/25) ドキュメントが一カ所バグってた(^^;ので訂正。 ver 0.08(00/03/02) マルチスレッドアプリから呼ばれた時の動作を若干高速化。 Yz1() からエラーコードを返すようにした。 複数階層ディレクトリ処理ルーチンのバグ修正。 自前文字列クラスの使用をやめた。 パスワードの最長文字数を、展開時30000Bytes、圧縮時255Bytesに限定。 ver 0.09(00/03/06) 基底ディレクトリが存在しない場合は勝手に作るようにした。 ver 0.10(00/04/07) 今後の展開を考え、読みやすいようにプログラムを全面書き直し。 (全然読みやすくないって?(^^;) Yz1() でバッファにいろいろ出力。 サイレントモードなのにグラフが出ることのあったバグ修正。 マルチスレッドで、複数ファイル圧縮で同名の書庫を作るときに おかしくなっていたバグを修正。 Yz1() での相対パス指定もできるだけ反映するようにした。 圧縮時、書庫名指定の代わりに出力ディレクトリ指定も可能にした。 ( ynenc.exe の -d オプションのような感じの指定 ) 存在しないフォルダ上に書庫を出力するよう指定されても大丈夫になった。 ReadOnly属性のファイルを複数圧縮するとテンポラリに ゴミが残るバグを修正。 ver 0.11(00/04/12) s コマンド追加。 コピー中ダイアログの表示タイミングをちょっと変更。 ver 0.12b1(00/04/29) OpenArchive() 系を出来る限り実装。 (取得できる情報はファイル名と元サイズのみ。(^^; 実際に一度) (解凍するように変えれば、タイムスタンプは得られるんだけど...) ドキュメント構成を変更。 ver 0.12b2(00/05/01) FindFirstでのワイルドカード指定に対応。 GetAttribute実装。FindFirst/Nextで属性を返すようにした。 いつからかQueryFunctionListがCHECK_ARCHIVEにFALSEを返してたバグを修正。 ver 0.12b3(00/05/03) 書庫日時取得系APIを実装。GetMethodの順序数変更。 内部クラス構造をかなり変更。これに伴い、 >パスワード入力ダイアログを少し変えた。 >「念のためも一度パスワード」ダイアログが出なくなってたバグ修正。 >解凍時のパスワードを(諸条件の許す限り)無限にとれるようになった。 >Yz1SetDefaultPassword(独自API)を追加。 >圧縮時は、長すぎるパスワードは勝手に切るわけだが、 そのとき多バイト文字の途中では切らないようにした。 ver 0.12fb(00/05/04) Yz1() バッファ出力の改行コードが色々混ざってたのを'\n'に統一。 FindFirst() に渡す文字列が""でくくられてても一応大丈夫なように応急措置。 これが0.12の最終β版。 SetOwnerWindow系の実装と、Yz1() API の大改良は0.13にて... ver 0.12(00/05/09) FindFirst() への複数指定に対応。 M_ERROR_MESSAGE_ON で OpenArchive した時に、出すつもりじゃなかった メッセージまで出てしまっていたバグを修正。 ver 0.13(00/05/18) パスワード入力画面の****表示を切り替えられるようにした。 2回目以降のFindFirstでは初回に入れたパスワードを自動で使うように変更。 使う人がいるのかはともかく、Yz1GetDefaultPassword(独自)を実装。 ver 0.14b1(00/05/29) SetOwnerWindow系を実装してみた。 ver 0.14b2(00/06/02) SetOwnerWindow系に関していろいろ修正。 (予想通り、バグだらけ、というかむしろバグの方が正常な部分より多かった。(^^;) (まだたくさんあると思います(^^;) ver 0.14b3(00/06/07) s コマンドではスイッチに関わらず上書確認をしていなかったバグを修正。 ver 0.14(00/06/12) β3をそのまま番号変えただけ。 ver 0.15(00/07/04) 「tempフォルダを含む複数ファイル圧縮」を行うと、ファイル名の長さが 限界に達するまでファイルを再帰的にコピーし続けていたお馬鹿なバグを修正。 ver 0.16(00/08/02) 検索用ハンドルの解放忘れがあったので修正。 ver 0.17(00/08/04) s コマンドが ver0.14b3 の変更以来ほとんど効かなくなっていたのを修正。 開発者用ドキュメントに間違いがあったので修正。 (01/04/26) yz32*.lib のライセンスに関する記述を削除。利用は自由になりました。 -- YYZ32.DLL ---------------------------- v0.03→v0.04: ・書庫にドライブ名が記録されてしまう不具合を修正 ( v0.03 でエンバグ ) v0.04→v0.05: ・基準ディレクトリがカレントドライブだったときにカレントディレクトリからの 相対パスを記録してしまう不具合の修正 v0.05→v0.06: ・書庫操作後カレントドライブ/カレントディレクトリが変わってしまう不具合の修正 v0.06→v0.07: ・基準ディレクトリがうまく動作しない不具合の修正 ( v0.06 でエンバグ ) ・解凍時にファイルリストを渡されなかった時、または '*.*' を渡された時に 全解凍する処理を追加 v0.07→v0.08: ・コマンドラインオプションを次期 YZ1.DLL との共通仕様に合わせた ・絶対パス記録機能を外した -------------------------------------------------------- written by k.inaba ( http://www.kmonos.net/ )