IThumbnailProviderを継承して、エクスプローラーのサムネイル画像用拡張を作成しているわけですが、1つ問題が出てきました。入力となるファイルについて、IInitializeWithStream ではファイルの全体サイズがわからないためちょっと使い勝手が悪く、IInitializeWithFileを継承して実装することで今までは作業していました。
しかし、どうやらこのインターフェースはファイルの増減があるときには有効に効くようなのですが、既に配置済みのファイルに関しては呼ばれない感じでした。すでに存在するファイルについてサムネイルを出そうとするとうまく制御できない、そんな症状が発生中です。
サムネイル拡張においては、IInitializeWithStream, IInitializeWithFile, IInitializeWithItem のいずれかのインターフェースを実装すれば良い、との記述を見かけたので、IInitializeWithItem の実装を試してみました。こちらだとShellItemインターフェースからファイルシステムのパス情報を得られるので目的のファイル名を得ることが出来そうです。
ただサンプル等をネットで調べると IInitializeWithStream による実装が主流のようなので、今回やろうとしていることが正しいかどうかイマイチわからないところです。
コメント