================================================================================ 『 Lhsp 』Version 0.5 プログラミングガイド 2002/03/15 FORCE ================================================================================ 1. 概要 『 Lhsp 』は、HSPプログラムから『統合アーカイバプロジェクト』仕様に準拠 した各種アーカイバDLL(cab32.dll,Ish32.dll,Tar32.dll,Unarj32j.dll,UnGCA32 .dll,Unlha32.dll,unrar32.dll,Unzip32.dll,Zip32j.dll)を利用するためのプラ グインです。 『 Lhsp 』を使うと、ファイルの圧縮、書庫の展開、自己解凍書庫の作成など、 アーカイバDLLの主要機能を簡単に扱うことが出来ます。対応圧縮形式や、機能、 動作上の制限などはすべて各アーカイバDLLの仕様に基づきます。 各アーカイバDLLの機能うち、実際のアーカイブ処理の多くはコマンドライン方 式の一つの関数で行われます。この関数は、MS-DOS(コンソール)版アプリケー ションのように、実行時引数としてコマンドライン文字列を渡すことで、圧縮、 展開等、基本アーカイブ処理をすべて実行することが出来ます。『 Lhsp 』は、 この関数にコマンドラインを渡すことで、HSPからの書庫操作を実現しています。 また、各アーカイバDLLは書庫操作以外にも数多くの機能を持っていますが、各 種動作設定や様々なダイアログの表示設定なども、コマンドラインにオプション スイッチを付加することで制御できるようになっています。 これらのコマンドライン及び動作仕様については、各アーカイバDLLのパッケー ジに付属の、コマンドドキュメントに記載されています。Lhspの使用にあたって は、これらのドキュメント類は必読となりますのでまずこちらをご用意下さい。 『 Lhsp 』Ver0.5は未完成バージョンです。今後もアーカイバDLLの優れた機能 をより多く扱えるように開発が続けられています。 ================================================================================ 2. 参考 アーカイバDLLについて下記URLに詳しい情報がありますので参考にして下さい。 ○統合アーカイバプロジェクト ホームページ アーカイバに関する総合情報ページです。Lhspで対応しているアーカイバDLLは すべてここからダウンロードできます。 http://www.csdinc.co.jp/archiver/ ○masuzawa 氏のホームページ Unlha32.dllに付属のドキュメントをHLP形式にしたヘルプを提供されています。 Unlhaだけでなく、他のアーカイバを使用する際の参考にもなります。 http://member.nifty.ne.jp/masuzawa/ ================================================================================ 3. 対応アーカイバ一覧 アーカイバ名 ファイル名 コマンド詳細 Ver. 著作権者 ----------------------------------------------------------------------- cab32.dll cab32***.exe cab32cmd.txt 0.74〜 宮内 邦昭 氏 Ish32.dll ish32***.lzh Ish-api.h 0.37〜 - Tar32.dll tar32***.exe Cmd_tar.txt 0.46〜 吉岡 恒夫 氏 他 Unarj32j.dll uarj3***.exe Command.txt 0.41〜 Micco 氏 UnGCA32.dll ugca***.lzh Command.txt 0.10〜 天野 晃治 氏 Unlha32.dll ulha3***.exe Command.txt 0.41〜 Micco 氏 unrar32.dll unrar32***.lzh Unrar32d.txt 0.05〜 亀井 哲弥 氏 Unzip32.dll unzp***d.lzh Unzip32d.txt 0.77〜 shoda T. 氏 他 unzp***.exe (ユーザー版) 5.4〜 shoda T. 氏 他 Zip32j.dll zip3j***.lzh Cmd_zip.txt 0.25〜 吉岡 恒夫 氏 ----------------------------------------------------------------------- ※unrar32.dllの動作には、UnRAR.DLL(配布元:Eugene Roshal 氏)が必要です。 ※Info-ZIP版のUnzip32.dllには対応していません。 ※ZIP圧縮には、Izip32j.dll(吉岡 恒夫 氏作成)またはZip32.dll(Info-ZIP版) が必要です。 ================================================================================ 4. Lhsp 命令一覧 コマンド名 内容 ------------------------------------------------------------------- LhspVer Lhsp.dllのバージョンを取得 LhsSetBuf 出力バッファを設定 LcbCab 各種CAB書庫操作を実行 LcbGetCnt CAB書庫の格納ファイル数を取得 LcbGetVer cab32.dllのバージョンを取得 LisIsh 各種ISH変換操作を実行(結果出力なし) LisIshEx 各種ISH変換操作を実行(結果出力あり) LisCfgDlg Ish32.dllの動作設定ダイアログを表示 LisListFile ISH書庫の格納ファイル情報を取得 LisGetVer Ish32.dllのバージョンを取得 LtrTar 各種TAR,GZ他の書庫操作を実行 LtrGetType 書庫のタイプを判別(tar,tgz,gz 等) LtrGetCnt TAR書庫等の格納ファイル数を取得 LtrGetVer Tar32.dllのバージョンを取得 LajUnarj 各種ARJ書庫展開操作を実行(未実装) LajCfgDlg Unarj32j.dllの展開動作設定ダイアログを表示 LajGetCnt ARJ書庫の格納ファイル数を取得 LajGetVer Unarj32j.dllのバージョンを取得 LgcUngca 各種GCA書庫展開操作を実行 LgcGetCnt GCA書庫の格納ファイル数を取得 LgcGetVer UnGCA32.dllのバージョンを取得 LhsUnlha 各種LZH書庫操作を実行 LhsCfgDlg Unlha32.dllの動作設定ダイアログを表示 LhsGetCnt LZH書庫の格納ファイル数を取得 LhsGetVer Unlha32.dllのバージョンを取得 LraUnrar 各種RAR書庫展開操作を実行 LraGetCnt RAR書庫の格納ファイル数を取得 LraGetVer unrar32.dllのバージョンを取得 LzpUnzip 各種ZIP書庫展開操作を実行 LzpCfgDlg Unzip32.dllの展開動作設定ダイアログを表示 LzpGetCnt ZIP書庫の格納ファイル数を取得 LzpGetVer Unzip32.dllのバージョンを取得 LzjZip 各種ZIP書庫圧縮操作を実行 LzjGetVer Zip32j.dllのバージョンを取得 ================================================================================ 5. Lhsp 命令詳細 ---------------------------------------------------------------------------- ★ Lhsp General ---------------------------------------------------------------------------- ■ LhsSetBuf p1 p1 = 文字列変数 :アーカイバDLLの出力を受け取るバッファ ・説明 各アーカイバの、書庫操作等の結果出力を受け取るバッファをp1に設定 します。p1には alloc 命令や sdim 命令で、513バイト以上のサイズを 確保した文字列変数を指定してください。 バッファのサイズは513バイト以上であれば自由に設定可能です。また、 別の文字列変数を何度でも再設定することができます。 各アーカイバの、書庫操作命令及び設定取得命令では、このバッファが 正しく設定されていない場合は動作しませんのでご注意下さい。 正常に設定された場合はstat=0になります。サイズが513バイト未満の 場合や、数値型変数を指定した場合等、エラーが発生した場合はstat=1 になります。 ■ LhspVer (パラメータなし) ・説明 Lhsp.dllのバージョンを取得します。バージョンは戻り値stat に次のような形で返されます。 Ver 0.5 → 50 Ver 1.0 → 100 ---------------------------------------------------------------------------- ★ cab32.dll ---------------------------------------------------------------------------- ■ LcbCab p1 p1 = 文字列または文字列変数 :cab32.dllに渡すコマンドライン文字列 ・説明 cab32.dllの "Cab()" 関数に、p1のコマンドライン文字列を渡して、 各種CAB書庫操作を行います。 コマンドラインの説明は、cab32.dllのパッケージに付属の、cab32 cmd.txtに記載されています。 この命令を実行すると、cab32.dllが出力した実行結果が、LhsSetBuf で指定された文字列変数に格納されます。 正常終了すると、戻り値statは0になります。エラーが発生した場合は 0以外の数値になります。(Cab32api.txt参照) ■ LcbGetCnt p1,p2 p1 = 数値変数 :ファイル数を格納する数値型変数 p2 = 文字列または文字列変数 :CABアーカイブファイル名 ・説明 p2で指定したCABアーカイブ内に格納されているファイルの総数をp1の 変数に取得します。エラーファイルの場合、p1に-1が代入されます。 CAB形式アーカイブかどうかの判別にも使用することが出来ます。 ■ LcbGetVer (パラメータなし) ・説明 cab32.dllのバージョンを取得します。バージョンは戻り値stat に次のような値で返されます。 Ver 0.74 → 74 Ver 1.00 → 100 cab32.dllがインストールされていない場合、statは0になります。 また、cab32.dllの仕様変更等の可能性もありますので、アプリケー ションは、プログラムの最初に必ずこの命令でバージョンチェックを 行うようにして下さい。 ---------------------------------------------------------------------------- ★ Ish32.dll ---------------------------------------------------------------------------- ■ LisIsh p1 p1 = 文字列または文字列変数 :Ish32.dllに渡すコマンドライン文字列 ・説明 Ish32.dllの "Ish()" 関数に、p1のコマンドライン文字列を渡して、 各種ISHファイル変換操作を行います。 コマンドラインの説明は、Ish32.dllのパッケージに付属の、Ish-api. hに記載されています。 この関数は実行結果を出力しません。Ish32.dllの出力を取得する必要 がある場合は、LisIshExを使用して下さい。 正常終了すると、戻り値statは0になります。エラーが発生した場合は 0以外の数値になります。(Ish-api.h参照) ■ LisIshEx p1 p1 = 文字列または文字列変数 :Ish32.dllに渡すコマンドライン文字列 ・説明 Ish32.dllの "IshEx()" 関数に、p1のコマンドライン文字列を渡して、 各種ISHファイル変換操作を行います。 コマンドラインの説明は、Ish32.dllのパッケージに付属の、Ish-api. hに記載されています。 この命令を実行すると、Ish32.dllが出力した実行結果が、LhsSetBuf で指定された文字列変数に格納されます。 正常終了すると、戻り値statは0になります。エラーが発生した場合は 0以外の数値になります。(Ish-api.h参照) ■ LisCfgDlg p1 ・説明 Ish32.dllのISH変換操作に関する動作設定を行うコンフィグダイアログ ボックスを表示します。このダイアログで指定可能なオプションは次の 通りです。 p1 = 1 :復元時の設定 1.新しいファイルの復元 (/r) 2.全てのファイルの復元 (/a) 3.復元の確認 (/q) p1 = 2 :作成時の設定 1.作成モード指定 (/s,/s7,/s8,/ss,/sn) 2.対象OSの指定 (/m,/u,/c,/9,/?,/*) 3.エスケープシーケンスの使用(/e,/n) 4.タイトル書込み行数の指定(/t) ここで指定されたオプションスイッチの文字列は、LhsSetBufで指定 された文字列変数に格納されます。 ダイアログの「登録」ボタンが押されると、HSPのシステム変数「 windir」で示されるウインドウズディレクトリに、「Archiver.ini」 という名前の設定ファイルが保存されます。このファイルから設定 値を直接読み出して参照することが出来ます。 「OK」または「登録」ボタンが押され、設定が確定するとstat=0が 代入されます。ダイアログの設定が中止またはキャンセルされた場合 や、出力バッファサイズの不足等、エラーが発生した場合はstatに1 が代入されます。 コンフィグダイアログの初期値は、LhsSetBufで指定された文字列の オプションスイッチ内容になります。LhsSetBufで""(空文字)を指定 すると、「Archiver.ini」の設定値がデフォルト表示されます。 ■ LisListFile p1 p1 = 文字列型変数 :ISHファイル名 ・説明 ISH書庫の格納ファイル情報を取得します。 p1で指定されたISH書庫の格納ファイル情報を、LhsSetBufで指定された 文字列変数に取得します。 正常に終了した場合はstat=0になります。ISHデータにマッチしない場 合や、Lhsp内部でエラーが発生した場合は、statに1が代入されます。 その他のエラーが発生した場合は0以外の数値になります。(Ish-api.h 参照) ISH形式ファイルかどうかの判別にも使用することが出来ます。 ■ LisGetVer (パラメータなし) ・説明 Ish32.dllのバージョンを取得します。バージョンは戻り値stat に次のような値で返されます。 Ver 0.37 → 37 Ver 1.00 → 100 Ish32.dllがインストールされていない場合、statは0になります。 また、Ish32.dllの仕様変更等の可能性もありますので、アプリケー ションは、プログラムの最初に必ずこの命令でバージョンチェックを 行うようにして下さい。 ---------------------------------------------------------------------------- ★ Tar32.dll ---------------------------------------------------------------------------- ■ LtrTar p1 p1 = 文字列または文字列変数 :Tar32.dllに渡すコマンドライン文字列 ・説明 Tar32.dllの "Tar()" 関数に、p1のコマンドライン文字列を渡して、 各種書庫操作を行います。 コマンドラインの説明は、Tar32.dllのパッケージに付属の、Cmd_tar. txtに記載されています。 この命令を実行すると、Tar32.dllが出力した実行結果が、LhsSetBuf で指定された文字列変数に格納されます。 正常終了すると、戻り値statは0になります。エラーが発生した場合は 0以外の数値になります。(Api_tar.txt参照) ■ LtrGetType p1,p2 p1 = 数値変数 :ファイル数を格納する数値型変数 p2 = 文字列または文字列変数 :アーカイブファイル名(tar,tgz,gz等) ・説明 p2で指定したTAR他のアーカイブ内に格納されているファイルの圧縮形 式をp1の変数に取得します。圧縮形式が次の数値でp1に代入されます。 p1 圧縮形式 ------------------------------------ 0 TAR32.DLLで利用できない形式 1 TAR形式 2 TAR.GZ(TGZ)形式 3 TAR.Z(TAZ)形式 4 GZ形式 5 Z形式 6 TAR.BZ2形式 7 BZ2形式 -1 エラー ------------------------------------ Tar32.dllで扱えるアーカイブかどうかの判別にも使用すること が出来ます。 ■ LtrGetCnt p1,p2 p1 = 数値変数 :ファイル数を格納する数値型変数 p2 = 文字列または文字列変数 :TARアーカイブファイル名 ・説明 p2で指定したアーカイブ内に格納されているファイルの総数をp1の 変数に取得します。エラーファイルの場合、p1に-1が代入されます。 ■ LtrGetVer (パラメータなし) ・説明 Tar32.dllのバージョンを取得します。バージョンは戻り値stat に次のような値で返されます。 Ver 0.46 → 46 Ver 1.00 → 100 Tar32.dllがインストールされていない場合、statは0になります。 また、Tar32.dllの仕様変更等の可能性もありますので、アプリケー ションは、プログラムの最初に必ずこの命令でバージョンチェックを 行うようにして下さい。 ---------------------------------------------------------------------------- ★ Unarj32j.dll ---------------------------------------------------------------------------- ■ LajUnarj p1 p1 = 文字列または文字列変数 :Unarj32j.dllに渡すコマンドライン文字列 ・説明 Unarj32j.dllの "Unarj()" 関数に、p1のコマンドライン文字列を渡し て、各種ARJ書庫展開操作を行います。 コマンドラインの説明は、Unarj32j.dllのパッケージに付属の、Comma nd.txtに記載されています。 この命令を実行すると、Unarj32j.dllが出力した実行結果が、LhsSetB ufで指定された文字列変数に格納されます。 正常終了すると、戻り値statは0になります。エラーが発生した場合は 0以外の数値になります。("Api.txt"参照) ■ LajCfgDlg (パラメータなし) ・説明 Unarj32j.dllの書庫操作に関するデフォルト動作設定を行うコンフィグ ダイアログボックスを表示します。このダイアログで指定可能なオプシ ョンは次の通りです。 1.展開時の基準ディレクトリ指定 2.基準ディレクトリの相対/絶対パス指定 (-jf) 3.上書き時の動作指定 (-jyo) 4.属性展開の指定 (-a) 5.厳密なファイル名サーチの指定 (-p) 6.ディレクトリ作成時の確認の指定 (-jyc) 7.ディスクの空き容量確認の指定 (-jd) 8.ディレクトリ情報の保存指定 (-hj) ここで指定されたオプションスイッチの文字列は、LhsSetBufで指定さ れた文字列変数に格納されます。 正常に終了した場合は、戻り値statは0になります。出力バッファサイ ズの不足等、エラーが発生した場合はstatに1が代入されます。 ダイアログの「設定ファイルに保存」ボタンが押されると、レジストリ に設定が保存されます。書庫操作時にオプションスイッチが指定されな かった場合は、Unarj32j.dllが自動的にレジストリ設定を読み込んで動 作します。独自にこれらの設定値を取得したい場合は、レジストリキー (HKEY_CURRENT_USER\\Software\\ArchiverDll\\Common 及び HKEY_CURR ENT_USER\\Software\\ArchiverDll\\UNARJ32)から読み出して参照する ことが出来ます。レジストリにも設定がない場合は、Unarj32j.dllのデ フォルト設定で動作します。 注意: ダイアログの設定がキャンセルされた場合にも、コンフィグバッファ の内容がデフォルト値 "-+jf -m0c -f1 " で更新されます。また、戻 り値statには常に0が返されますので、実際の更新を判定するには、 ダイアログのデフォルト値及び直前の値と比較するなどの処理が必要 になります。レジストリ設定のための機能に限定して使用されること をおすすめします。 ■ LajGetCnt p1,p2 p1 = 数値変数 :ファイル数を格納する数値型変数 p2 = 文字列または文字列変数 :ARJアーカイブファイル名 ・説明 p2で指定したARJアーカイブ内に格納されているファイルの総数をp1の 変数に取得します。エラーファイルの場合、p1に-1が代入されます。 ARJ形式アーカイブかどうかの判別にも使用することが出来ます。 ■ LajGetVer (パラメータなし) ・説明 Unarj32j.dllのバージョンを取得します。バージョンは戻り値stat に次のような値で返されます。 Ver 0.41 → 41 Ver 1.00 → 100 Unarj32j.dllがインストールされていない場合、statは0になります。 また、Unarj32j.dllの仕様変更等の可能性もありますので、アプリケー ションは、プログラムの最初に必ずこの命令でバージョンチェックを行 うようにして下さい。 ---------------------------------------------------------------------------- ★ UnGCA32.dll ---------------------------------------------------------------------------- ■ LgcUngca p1 p1 = 文字列または文字列変数 :UnGCA32.dllに渡すコマンドライン文字列 ・説明 UnGCA32.dllの "UnGCA()" 関数に、p1のコマンドライン文字列を渡して、 各種GCA書庫展開操作を行います。 コマンドラインの説明は、UnGCA32.dllのパッケージに付属の、Command .txtに記載されています。 この命令を実行すると、UnGCA32.dllが出力した実行結果が、LhsSetBuf で指定された文字列変数に格納されます。 正常終了すると、戻り値statは0になります。エラーが発生した場合は 0以外の数値になります。(SDK.txt参照) ■ LgcGetCnt p1,p2 p1 = 数値変数 :ファイル数を格納する数値型変数 p2 = 文字列または文字列変数 :GCAアーカイブファイル名 ・説明 p2で指定したGCAアーカイブ内に格納されているファイルの総数をp1の 変数に取得します。エラーファイルの場合、p1に-1が代入されます。 GCA形式アーカイブかどうかの判別にも使用することが出来ます。 ■ LgcGetVer (パラメータなし) ・説明 UnGCA32.dllのバージョンを取得します。バージョンは戻り値stat に次のような値で返されます。 Ver 0.05 → 5 Ver 1.00 → 100 UnGCA32.dllがインストールされていない場合、statは0になります。 UnGCA32.dllの仕様変更等の可能性もありますので、アプリケーショ ンは、プログラムの最初に必ずこの命令でバージョンチェックを行 うようにして下さい。 ---------------------------------------------------------------------------- ★ Unlha32.dll ---------------------------------------------------------------------------- ■ LhsUnlha p1 p1 = 文字列または文字列変数 :Unlha32.dllに渡すコマンドライン文字列 ・説明 Unlha32.dllの "Unlha()" 関数に、p1のコマンドライン文字列を渡して、 各種LZH書庫操作を行います。 コマンドラインの説明は、Unlha32.dllのパッケージに付属の、Comman d.txtに記載されています。 この命令を実行すると、Unlha32.dllが出力した実行結果が、LhsSetBuf で指定された文字列変数に格納されます。 正常終了すると、戻り値statは0になります。エラーが発生した場合は 0以外の数値になります。("Api.txt"参照) ■ LhsCfgDlg (パラメータなし) ・説明 Unlha32.dllの書庫操作に関するデフォルト動作設定を行うコンフィグ ダイアログボックスを表示します。このダイアログで指定可能なオプシ ョンは次の通りです。 1.展開時の基準ディレクトリ指定。 2.基準ディレクトリの相対/絶対パス指定 (-jf0 | -jf1) 3.上書き時の動作指定 (-jyo1 | -jyo0 | -jn) 4.属性展開の指定 (-a0 | -a1) 5.厳密なファイル名サーチの指定 (-p0 | -p1) 6.ディレクトリ作成時の確認の指定 (-jyd0 | -jyd1) 7.ディスクの空き容量確認の指定 (-f0 | -f1) 8.ディレクトリ情報の保存指定 (-gj0 | -gj1) 9.進捗グラフの表示指定 (-gn0 | -gn1) 10.展開状況の表示指定 (-gn2) ここで指定されたオプションスイッチの文字列は、LhsSetBufで指定さ れた文字列変数に格納されます。 正常に終了した場合は、戻り値statは0になります。出力バッファサイ ズの不足等、エラーが発生した場合はstatに1が代入されます。 ダイアログの「設定ファイルに保存」ボタンが押されると、レジストリ に設定が保存されます。書庫操作時にオプションスイッチが指定されな かった場合は、Unlha32.dllが自動的にレジストリ設定を読み込んで動 作します。独自にこれらの設定値を取得したい場合は、レジストリキー (HKEY_CURRENT_USER\\Software\\ArchiverDll\\Common 及び HKEY_CURR ENT_USER\\Software\\ArchiverDll\\UNLHA32)から読み出して参照する ことが出来ます。レジストリにも設定がない場合は、Unlha32.dllのデ フォルト設定で動作します。 注意: ダイアログの設定がキャンセルされた場合にも、コンフィグバッファ の内容がデフォルト値 "-+jf -m0c -f1 " で更新されます。また、戻 り値statには常に0が返されますので、実際の更新を判定するには、 ダイアログのデフォルト値及び直前の値と比較するなどの処理が必要 になります。レジストリ設定のための機能に限定して使用されること をおすすめします。 ■ LhsGetCnt p1,p2 p1 = 数値変数 :ファイル数を格納する数値型変数 p2 = 文字列または文字列変数 :LZHアーカイブファイル名 ・説明 p2で指定したLZHアーカイブ内に格納されているファイルの総数をp1の 変数に取得します。エラーファイルの場合、p1に-1が代入されます。 LZH形式アーカイブかどうかの判別にも使用することが出来ます。 ■ LhsGetVer (パラメータなし) ・説明 Unlha32.dllのバージョンを取得します。バージョンは戻り値stat に次のような値で返されます。 Ver 0.41 → 41 Ver 1.34 → 134 Unlha32.dllがインストールされていない場合、statは0になります。 また、Unlha32.dllの仕様変更等の可能性もありますので、アプリケー ションは、プログラムの最初に必ずこの命令でバージョンチェックを 行うようにして下さい。 ---------------------------------------------------------------------------- ★ unrar32.dll ---------------------------------------------------------------------------- ●動作条件 unrar32.dllを使用してRAR書庫操作を行うには、UnRAR.DLL(Eugene Ros hal 氏より配布されているwrar203.exeに含まれています)が必要です。 unrar32.dll単体ではいずれの命令も動作しませんのでご注意ください。 ■ LraUnrar p1 p1 = 文字列または文字列変数 :unrar32.dllに渡すコマンドライン文字列 ・説明 unrar32.dllの "Unrar()" 関数に、p1のコマンドライン文字列を渡して、 各種RAR書庫展開操作を行います。 コマンドラインの説明は、unrar32.dllのパッケージに付属の、Unrar32 d.txtに記載されています。 この命令を実行すると、unrar32.dllが出力した実行結果が、LhsSetBuf で指定された文字列変数に格納されます。 正常終了すると、戻り値statは0になります。エラーが発生した場合は 0以外の数値になります。(Unrar32api.txt参照) ■ LraGetCnt p1,p2 p1 = 数値変数 :ファイル数を格納する数値型変数 p2 = 文字列または文字列変数 :RARアーカイブファイル名 ・説明 p2で指定したRARアーカイブ内に格納されているファイルの総数をp1の 変数に取得します。エラーファイルの場合、p1に-1が代入されます。 RAR形式アーカイブかどうかの判別にも使用することが出来ます。 ■ LraGetVer (パラメータなし) ・説明 unrar32.dllのバージョンを取得します。バージョンは戻り値stat に次のような値で返されます。 Ver 0.05 → 5 Ver 1.00 → 100 unrar32.dllがインストールされていない場合、statは0になります。 また、UnRAR.DLLがインストールされていない場合もstatは0になりま すのでご注意下さい。 unrar32.dllの仕様変更等の可能性もありますので、アプリケーショ ンは、プログラムの最初に必ずこの命令でバージョンチェックを行 うようにして下さい。 ---------------------------------------------------------------------------- ★ Unzip32.dll (shoda T.氏版) ---------------------------------------------------------------------------- ■ LzpUnzip p1 p1 = 文字列または文字列変数 :Unzip32.dllに渡すコマンドライン文字列 ・説明 Unzip32.dllの "UnZip()" 関数に、p1のコマンドライン文字列を渡して、 各種ZIP書庫展開操作を行います。 コマンドラインの説明は、Unzip32.dll開発者用パッケージ(unzpxxxd. lzh)に付属の、Unzip32d.txtに記載されています。 この命令を実行すると、Unzip32.dllが出力した実行結果が、LhsSetBuf で指定された文字列変数に格納されます。 正常終了すると、戻り値statは0になります。エラーが発生した場合は 0以外の数値になります。(Unzip32Api.txt参照) ■ LzpCfgDlg (パラメータなし) ・説明 Unzip32.dllの書庫展開操作に関する動作設定を行うコンフィグダイア ログボックスを表示します。このダイアログで設定できるオプション は次の通りです。 1.展開時のコメント表示指定 (-Z) 2.改行形式の指定 (-a) 3.スペースを含むファイル名の処理指定 (-s) 4.ロングファイルネームの保存指定 (-S) 5.大文字小文字の区別指定 (-C) 6.展開状況表示の指定 (-i) ここで指定されたオプションスイッチの文字列は、LhsSetBufで指定 された文字列変数に格納されます。 正常に終了した場合は、戻り値statは0になります。出力バッファサ イズの不足等、エラーが発生した場合はstatに1が代入されます。 ダイアログの「登録」ボタンが押されると、レジストリに設定が保存 されます。これらの設定値を取得したい場合は、レジストリキー (HKEY_CURRENT_USER\\Software\\ArchiverDll\\Common ,及び HKEY_CURRENT_USER\\Software\\ArchiverDll\\UNZIP32)から読み出 して参照することが出来ます。 「OK」ボタンが押され、設定が確定するとstat=0が代入されます。 ダイアログの設定が中止またはキャンセルされた場合は、statの値は 1になります。 コンフィグダイアログの初期値は、LhsSetBufで指定された文字列の オプションスイッチ内容になります。LhsSetBufで""(空文字)を指定 すると、レジストリの設定がデフォルト表示されます。 ■ LzpGetCnt p1,p2 p1 = 数値変数 :ファイル数を格納する数値型変数 p2 = 文字列または文字列変数 :ZIPアーカイブファイル名 ・説明 p2で指定したZIPアーカイブ内に格納されているファイルの総数をp1の 変数に取得します。エラーファイルの場合、p1に-1が代入されます。 ZIP形式アーカイブかどうかの判別にも使用することが出来ます。 ■ LzpGetVer (パラメータなし) ・説明 Unzip32.dllのバージョンを取得します。バージョンは戻り値stat に次のような値で返されます。 Ver 0.77 → 77 Ver 5.40 → 540 Unzip32.dllがインストールされていない場合、またはInfo-ZIP版の Unzip32.dllの場合はstatが0になります。 また、Unzip32.dllの仕様変更等の可能性もありますので、アプリケー ションは、プログラムの最初に必ずこの命令でバージョンチェックを 行うようにして下さい。 ---------------------------------------------------------------------------- ★ Zip32j.dll ---------------------------------------------------------------------------- ●動作条件 Zip32j.dllを使用してZip圧縮を行うには、Izip32j.dll(吉岡 恒夫 氏 作成)またはZip32.dll(Info-ZIP版)が必要です。Zip32j.dll単体では動 作しませんのでご注意ください。 ■ LzjZip p1 p1 = 文字列または文字列変数 :Zip32j.dllに渡すコマンドライン文字列 ・説明 Zip32j.dllの "Zip()" 関数に、p1のコマンドライン文字列を渡して、 各種ZIP書庫圧縮操作を行います。 コマンドラインの説明は、Zip32j.dllパッケージに付属の、Cmd_zip. txtに記載されています。 この命令を実行すると、Zip32j.dllが出力した実行結果が、LhsSetBuf で指定された文字列変数に格納されます。 正常終了すると、戻り値statは0になります。エラーが発生した場合は 0以外の数値になります。 ■ LzjGetVer (パラメータなし) ・説明 Zip32j.dllのバージョンを取得します。バージョンは戻り値stat に次のような値で返されます。 Ver 0.25 → 25 Ver 1.00 → 100 Zip32j.dllがインストールされていない場合はstatが0になります。 また、Zip32j.dllの仕様変更等の可能性もありますので、アプリケー ションは、プログラムの最初に必ずこの命令でバージョンチェックを 行うようにして下さい。 ================================================================================ 6. コマンドライン 詳細は各アーカイバDLLのパッケージ内に付属のコマンドドキュメントに記載さ れていますのでこちらをご熟読ください。ここではその前置きとして、ごく簡単 なUnlha32.dllの使用例を用いて説明しています。 ●コマンドライン文字列の様式 "[Command] [-Switch] [ArcName] [PathName]" Command :圧縮→a / 展開→e / 他 -Switch :オプションスイッチ ArcName :アーカイブファイル名 PathName :ファイルまたはディレクトリ名 例1: LhsUnlha "a arc.lzh C:\\*.*" 説明: Cドライブのルートにあるすべてのファイルを、カレントディレクトリ の"arc.lzh"というファイルに圧縮保存します。PathNameにはワイルド カードが使用できます。文字列は大文字でも小文字でも構いません。 例2: LhsUnlha "e arc a:\\tmp\\" 説明: アーカイブ"arc.lzh"を、"A:\\TMP"というディレクトリに展開します。 第一ファイル名はLZH書庫とみなされますので、拡張子を省略すること ができます。 オプション指定がない場合、Unlha32の動作は自動的にレジストリの設 定が有効になります。レジストリにも設定がない場合は、Unlha32.dll のデフォルト設定で実行されます。 例3: LhsUnlha "e -a1 arc d:\\" 説明: オプションスイッチ -a1 を追加して、"arc.lzh"内の読取専用等の ファイルを、そのままの属性で展開します。このオプションは圧縮時 にも有効です。 例4: LhsUnlha "e -m1 arc a:\\tmp\\" 説明: オプションスイッチ -m1 を追加して、ディレクトリ作成の確認など の問い合わせにすべてyesを入力したもの同じ動作を指定しています。 例5: LhsUnlha "a -gm1 -n1 arc a:\\tmp\\*.*" 説明: オプションスイッチ -n1 を追加して、進行状況ダイアログの表示を抑 止しています。また、-gm1というオプションスイッチを追加して、処 理の中止等のエラーメッセージや、確認のメッセージなどのダイアログ の表示をすべて抑止しています。 ================================================================================ 7. 拡張ランタイム 拡張ランタイム(Lhsp.hrt,Lhspc.hrt)が、Ver0.5より追加されました。 HSPランタイムマネージャを使用してEXEファイルを作成すると、Lhspの機能を EXE単体で実行することができます。Lhspc.hrtは、HSP標準命令のJPEGロード 機能を削除したものです。 ランタイムマネージャはHSPホームページより入手して下さい。 ================================================================================ Copyright (C) 1999-2002 Hiroyuki Satoh (FORCE) ================================================================================