Vistaにおける、.NET2.0のOpenFileDialogクラス
従来、Windows XPまではGetOpenFileNameというAPIを使ってダイアログを開いていました。OSが変わってもフラグを追加する程度で済んでいました。
ところが、Windows VistaスタイルのファイルオープンダイアログボックスはI/Fが変わっています。IFileOpenDialogというインタフェースを使い、COMでアクセスすることになります。構造体拡張するのいやになったんでしょうかね(^^;。
注意すべき点として、COMということもあって、文字列が全部LP(C)WSTR、つまりワイド文字をとることになっています。もちろん、変換してもいいのですが、COMではない、従来のAPIのようなものでもLP(C)WSTRを要求しているものがあるようなので、さっさと移行したほうがいいんでしょうかね。
ちょっと実験したのですが、Vistaの.NET FrameworkではSystem.Windows.FormsのOpenFileDialogクラスは従来通りの(XPと同じ)ダイアログしか出さないんですな。ちょっとがっくり。