「ファイルを開く」をカスタマイズしたい


居候  2009-04-26 21:28:35  No: 141877  IP: 192.*.*.*

VB2008で色々と試行錯誤をしております。
さて質問ですが、「ファイルを開く」ダイアログをカスタマイズしたいと
考えています。
内容は以下のとおりです。
1.選択ファイルはjpg,gifファイルに限定
2.ダイアログの右側にピクチャーボックスを設置し、ダイアログのファイルリスト中のファイルを選択状態にした場合、
  このピクチャーボックスに画像のプレビューを表示させる。
1.についてはフィルタリングを行えばいいと思いますが、OpenFileDialogを直接カスタマイズするのは難しいようです。
何かよい方法はないでしょうか?
よろしくお願いします。

編集 削除
YuO  2009-04-27 10:58:35  No: 141878  IP: 192.*.*.*

.NET Framework 1.1時代にやった事がありますが,かなりしんどいです。

まずはVista以前用。
ダイアログテンプレートを作成して,そこへユーザーコントロールを貼り付ける形になります。
・Customizing Common Dialog Boxes
http://msdn.microsoft.com/en-us/library/ms646951.aspx
・Open and Save As Dialog Boxes
http://msdn.microsoft.com/en-us/library/ms646960.aspx
・GetOpenFileName Function
http://msdn.microsoft.com/en-us/library/ms646927.aspx
・OPENFILENAME Structure
http://msdn.microsoft.com/en-us/library/ms646839.aspx

Vista以降では推奨APIが変更になっています。
こちらは使った事がないのですが,カスタマイズ自体は出来るようです。
・Common Item Dialog
http://msdn.microsoft.com/en-us/library/bb776913.aspx
・IFileOpenDialog Interface
http://msdn.microsoft.com/en-us/library/bb775834.aspx


私がはまったのは,気が付くとコントロールがGCされている,というものでした。
結局,カスタマイズした物は使わない,ということで処理したので,解決方法はわかっていませんが……。

編集 削除
居候  2009-04-27 15:36:58  No: 141879  IP: 192.*.*.*

YuO様、ご回答ありがとうございます。
中々難しそうですね。
教えて頂いたページをもう少し読んでみます。
(そもそも説明が英語というのがかなりキツいです)

ところで、Vistaの場合は推奨APIが変更されているとのことですが、
どのような変更なのでしょうか?
よろしくお願いします。

編集 削除
YuO  2009-04-27 16:56:02  No: 141880  IP: 192.*.*.*

Vistaでの新バージョンコモンダイアログでは,COMを使うように変更されています。
Common Item Dialogのページの画像にあるように,見た目上ほとんどExplorerと変化がなくなりました。


なお,.NET Frameworkでは OpenFileDialog (正確には FileDialog) の,AutoUpgradeEnabled プロパティで制御できます。

編集 削除