ようこそ 屋根裏部屋 mkII へ ログイン | 登録 | ヘルプ

Technological

ちょっとしたTIPSや私がはまったこと、調べたことなんかを書いていきます。

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と同じ)ダイアログしか出さないんですな。ちょっとがっくり。

公開 2006年12月11日 0:44 投稿者 kkamegawa
タグ , , , ,

コメントの通知

この投稿にコメントが付いた場合にメールを受信するには、登録してください。ここ

また次のフィードから、お気に入りのRSSリーダーを使って最新の状態を知ることもできます。 コメントのRSSフィード

コメント

# re: Vistaにおける、.NET2.0のOpenFileDialogクラス @ 2006年12月11日 9:38

.NET 2.0 どころか、 WPF ですら…

http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=765688&SiteID=7

( 正規バージョンの .NET 3.0 では、 なんか増えてるのかもしれませんが f(^^; )

biac

# re: Vistaにおける、.NET2.0のOpenFileDialogクラス @ 2006年12月11日 23:31

ふえてないよーなきがするなー(^^;。

IFileDialogをCOM呼び出しでやるしかないのでしょうが、どのdll参照すればいいのかよくわからない…。

kkamegawa

どのような感想ですか?

(必須) 
必須 
(必須) 
Powered by Community Server, by Telligent Systems