さくさく00AMプラグイン
疑問
GetFile() で渡される情報が、ファイルやデータのオフセットしかない。
LZHやZIP等の仕様には合っているが、他の形式には全く向いていない。
解決法
Susie ver0.45h 以降のバージョンでは改善されたが、
Susieでは書庫情報取得関連のパフォーマンスがあまりよくなかった。
プラグインの中には独自に書庫情報を保持しているものもあるくらいだ。
もうパフォーマンス改善のために情報を保持する必要は無い。
だが、書庫情報を独自に保持しておくことで GetFile() での効率の悪さに対処できるだろう。
実装例
- GetArchiveInfo
情報を保持しているなら情報をコピーして返す。
無い場合は作成して保持する。
- GetFileInfo
無い場合は書庫情報まるごと作成して GetArchiveInfo() の処理を使いまわす。
- GetFile
保持している書庫情報が使えて幸せ。
lh0プラグインサンプルソース(C++) (9,221 バイト)
制限事項:
メモリ入力に対応できない。
アプリケーションが終了するまで情報をいくらでも保持し続ける。
問題点
- メモリ消費
気にしない。
- 保持している情報を取り出すのに GetFile() で渡される情報に結局は依存する。
気をつけろ。
戻る