質問掲示板でSWinX様がわかりやすく解説してくれていたのでまとめて引用します。
> ZIPファイルの解凍には「UNZIP32.DLL」を使用します。
> ZIPファイルの圧縮には「ZIP32J.DLL」と同時に「ZIP32.DLL」または「IZIP32.DLL」が必要です。
> パスワード付き圧縮を行う場合は、
> 「ZIP32J.DLL」+「ZIP32.DLL」
> または
> 「ZIP32J.DLL」+「IZIP32.DLL」+「ZCRYPT32.DLL」
> のどちらかの組み合わせになります。
> 自己解凍ZIPの作成には、さらに「SFX32GUI.DAT」が必要です。
(2003/07/26)
'サンプル1
『zip32j.dll』の、『int Zip(DWORD, char*, char*, DWORD)』を、『?,?,?,?』の、
『ZIP32J圧縮』として、DLLを利用。
『zip32j.dll』の、『WORD ZipGetVersion(void)』を、『』の、
『ZIP32Jバージョン取得』として、DLLを利用。
『zip32j.dll』の、『BOOL ZipQueryEncryption(void)』を、『』の、
『ZIP32J暗号化可能か』として、DLLを利用。
『zip32j.dll』の、『BOOL ZipGetRunning(void)』を、『』の、
『ZIP32J動作中か』として、DLLを利用。
ZIP32Jバージョン取得。
「ZIP32J.DLLのバージョンは{それ/100}です。」と、表示。
ZIP32J暗号化可能か。
もし、それ=はい ならば(
「このZIP32J.DLLを使用して暗号化圧縮は可能です。」と、表示。
)
hWnd=母艦の、ハンドル。
結果バッファに、512バイトを、確保。
「テスト用コマンドライン=」を、表示。
CMDLINEラベルを、作る。
その、テキストは、「未設定」
設定ボタンを、作る。
その、イベントは、(
「圧縮するファイルを選択してください。」と、言う。
「*」の、読み込みファイル選択。
もし、それ=「」ならば、待機。
圧縮元ファイルは、それ。
「圧縮後のファイル名を指定してください。」と、言う。
「zip」の、書込ファイル選択。
もし、それ=「」ならば、待機。
圧縮後ファイルは、それ。
「パスワードをつけますか?」と、二択。
もし、それ=1ならば、(
「パスワードを入力してください。」と、尋ねる。
//パスワードは日本語でも可
もし、それ=「」ならば、待機。
パスワード=「-P \"{それ}\" 」
)
違えば、パスワード=「」
それ=10
「それ>9」で、ループ(
「圧縮率を0〜9の範囲で設定してください。\n」&
「数値が大きいほど圧縮率が高くなり、圧縮に時間がかかります。\n」&
「0を指定すると圧縮しません。」と、尋ねる。
それ=それ+0
)
圧縮率は、「-{それ} 」
CMDLINEラベル=「{パスワード}{圧縮率}\"{圧縮後ファイル}\" \"{圧縮元ファイル}\"」
)
圧縮実行ボタンを、作る。
その、イベントは(
もし、CMDLINEラベル=「未設定」ならば、(
「設定が完了していないため実行できません」と、言う。
待機。
)
ZIP32J動作中か。
もし、それ=はい ならば(
「ZIP32J.DLL動作中の為実行できません」と、言う。
待機。
)
圧縮後ファイルが、存在するか。
もし、それ=1ならば、圧縮後ファイルを、ファイル完全削除
//すでにあるファイルだと失敗することがある。
ZIP32J圧縮(hWnd,CMDLINEラベル,結果バッファ,511)
もし、それ≠0 ならば(
「圧縮に失敗:ErrorCode={それ}」と、言う。
待機。
)
結果バッファを、言う。
)
尚、オプションは他にもいろいろあります。
その他のオプションはZIP32Jの配布ファイルに入っている「CMD_ZIP.txt」を参照してください。
作成日 2003/07/26 作成時のひまわりバージョン 1.77