2005-09-25

_ [C#]ImageView その2

週末ごとにコツコツと作っているImageViewだが、今週はあまり進まなかった。とりあえずコマンドライン処理と最大化したときにウィンドウタイトルを隠す処理、ショートカットキーなどを設定したが、特定のZIPファイルが正しく扱えないという問題はまだ回避できていない。

特定のZIPファイルが扱えないという問題だが、現在の状況としてはZIPファイルに含まれているファイルの一覧は正しく取得できているのだが、UnZipExtractMemを実行するとERROR_FILE_OPENが返って正しく処理できないというもの。UnZipCloseArchive直後に実行しても同様のため、ZIPファイルが開けないということは無いと思うのだが。またパス内にスペースが含まれている可能性があるため、ZIPファイル名と取り出すファイル名は両方ともダブルクォートで囲ってある。どうもERROR_FILE_OPENを返す原因は取り出すZIP内のファイルにあるようなのだが、まだ規則性のようなものまでは調べていない。UnZipExtractMem特有の問題かもしれないので、メモリ内展開を諦めると回避できるかもしれない。

ZIP問題は置いておいて、次に考えているのは画像デコードの非同期化だ。スレッドを使ってうまく処理したいが、排他処理なども考えなければならない。まあスレッド処理も排他処理もDelphiよりは自由度が高そうだし、うまい方法を考えたいものだ。

[]