TechnicalLibrary
No4.Unlha32.dllを利用する
今回は、アーカイバーの大多数が利用しているlzh書庫を解凍/作成するための
Unlha32.dllを使ってみることにします。Micco氏が著作権を所有されています。
ダウンロードは、総合アーカイバープロジェクトからどうぞ。
UNLHA32.DLL APIヘルプ Ver1.25を参考にしました。
いろいろなAPIがあるのですが、今回はさくっと解凍だけを行うので、
一つのAPIを使うだけです。
Declare Function Unlha Lib "UNLHA32.DLL" (ByVal hwnd As Long,ByVal szCmdLine As String ,& _
ByVal szOutput As String ,ByVal dwSize As LOng)
一つ目の引数はdllを呼び出すアプリのウインドウのハンドルです。Me.hwndでよいと思います。
szCmdLineが重要です。Unlha32.dllはLHA.EXEというコンソールアプリをdllにしたものですから、
LHA.EXEのコマンドラインオプションとszCmdLineは互換性があります。
ここには、「スイッチオプション 解凍する書庫ファイル 解凍先フォルダ」と間にスペースを
置いて指定します。
szOutputとdwSizeはよく分かりません。
<サンプル>
(C:\test.lzhをC:\test\)に解凍します。
Declare Function Unlha Lib "UNLHA32.DLL" (ByVal hwnd As Long,ByVal szCmdLine As String ,& _
ByVal szOutput As String ,ByVal dwSize As LOng)
Dim tmpbf As String * 7000
Form Load()
Unlha(Me.hwnd, "e " & "C:\test.lzh " & "C:\test\", tmpbf, 7000)
End Sub
今回はかなり手抜きですねぇ(汗)
総合アーカイバープロジェクトにはいろいろな資料がそろっているので利用してみてください。