• ベストアンサー

フォルダ選択ダイアログ

お世話になります. C++Builder6を利用してフォルダ選択ダイアログを表示しようとしたのですが, BROWSEINFO構造体が定義されていないようで使用できませんでした. ShlObj.hを読み込ませてコンパイルすると, FOLDERSETTINGS構造体 DESKBANDINFO構造体 FVSHOWINFO構造体 SHELLFLAGSTATE構造体 の4つが重複宣言になっていました. ホントに初心者な質問で申し訳ないのですが, どなたかC++BuilderでのSHBrowseForFolderの使い方を教えてください. よろしくお願いいたします.

質問者が選んだベストアンサー

  • ベストアンサー
  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

多分「NO_WIN32_LEAN_AND_MEAN」の関係ですね。 参考URLの記事(?)は参考になりますでしょうか?

参考URL:
http://www.borland.co.jp/qanda/cbuilder/c0005004.html

関連するQ&A

  • フォルダ参照のダイアログについて

    フォルダ参照のダイアログ(フォルダだけを選択できるように)を表示したいのですが、 毎回違うダイアログボックスが表示されて困っております。 具体的には「フォルダの参照」や「コンピュータの参照」、「プリンタの参照」といった ダイアログがランダムに表示されています。 BrowseInfo構造体の ulFlags に BIF_RETURNONLYFSDIRS を指定して 呼び出しているのですが、記述の仕方がまずいのでしょうか? 毎回違うものが表示されるのが何故かわからないので 何か参考になるようなホームページなどを教えて頂けると助かります。

  • フォルダを開くダイアログ

    C++ Builder6を使用しています。 ファイルを開くダイアログと同じように、フォルダを開くダイアログがほしいのですが、自作するしかないのでしょうか? 指定されたフォルダにファイルを書き出したりする為に、ユーザーがフォルダの位置を指定出来る様にしたいのです。 Builder初心者なので、回答お願い致します。

  • フォルダ選択ダイアログ:ネットワーク上の共有フォルダ初期表示方法について

    フォルダ選択ダイアログで、ネットワーク上の共有フォルダを初期表示する 方法についてご教示下さい。 SHBrowsForFolder を用いて フォルダ選択ダイアログで共有フォルダを初回表示した場合、 指定フォルダを"\\PC名\共有フォルダ名"としても下記のように ネットワーク全体までしか表示されずに困っています。  マイネットワーク  |  |-ネットワーク全体     |     |-Microsoft Terminal Services     |-Microsoft Windows Network     |-Web Client Network BROWSEINFO構造体には、  ・ルートフォルダにマイネットワークのアイテムIDリスト  ・コールバック関数のパラメタに指定フォルダパスのポインタ  ・その他もろもろ を設定し、フォルダ選択ダイアログを表示しようとしています。 なお、手動で「Microsoft Windows Network→ドメイン名→PC名 →共有フォルダ」を開く動作(フォルダツリーの『+』押下)まで行った後、 再度同じ手順でSHBrowsForFolder()をコールすると下記のように 意図した動作となります。  マイネットワーク  |  |-ネットワーク全体     |     |-Microsoft Terminal Services     |-Microsoft Windows Network     | |     | |-ドメイン名     |   |     |   |-PC名     |      |-共有フォルダ     |     |-Web Client Network コールバック関数内では、ダイアログが最初に表示される直前のみ 指定されたフォルダを表示するように処理を行っています(つもりです)。   // 初期化時にフォルダを選択させます。   if( uMsg == BFFM_INITIALIZED )   {    // lpData=BROWSEINFO構造体で指定したフォルダパス    // ※文字列のアドレスです。    ::SendMessage( hwnd, BFFM_SETSELECTION, TRUE, lpData );   } ネットワーク上の共有フォルダを初期表示させるには 一度共有フォルダ配下にアクセスが必要なのでしょうか? ご教示のほどよろしくお願い致します。

  • Access2003 VBA でフォルダ参照ダイアログについて

    Access2003 VBA でフォルダ参照ダイアログを開いて、ダイアログで選択されたパスを元画面に渡すっていう処理がありますが、フォルダ参照ダイアログを開くため(ファイル参照ダイアログではない)、どうすればいいでしょうか。簡単なソースがあればぜひ教えてください。 ※インタネットで調べ、SHBrowseForFolderというAPIを使う資料がありますけど、結構複雑な使い方なのでもっと簡単な方法(ActiveX??)を教えてもらいたいのです。

  • コンソールアプリでファイル選択ダイアログを出したい

    C++Builder6 で作っているコンソールアプリがあります。 これに、ファイル選択ダイアログを出す機能を追加したいのですが 可能でしょうか? 試しに TOpenDialog *OpenDialog1; OpenDialog1 = new TOpenDialog; //※ delete OpenDialog1; というコードを書いてみましたが、※の行で 「'TOpenDialog::TOpenDialog()' に一致するものが見つからない」 というコンパイルエラーになりました。

  • 言語[C#]..フォルダ選択ダイアログで、フォルダ選択のための階層が表示されない

    C#を使い、フォルダ選択のダイアログを表示させたいと思っています。WEB上に公開されていた下記コードを使い、フォルダ選択のダイアログを表示できました。 ただ、ダイアログが表示されたのはよいのですが、ダイアログ内に表示されるはずの、フォルダ選択のための階層部分が表示されません。この現象についてご存知の方、助言を頂きたくお願い致します。 また、C#は一昨日から使い初めたばかりです。初歩的なミスであった時は、どうぞお許し下さい。 フォルダ選択ダイアログの表示コード ------------------------------------------------ FolderBrowserDialog fbd = new FolderBrowserDialog(); fbd.Description = "読み込むフォルダを指定してください" ; if (fbd.ShowDialog() == DialogResult.OK) { txtInputFolder.Text = fbd.SelectedPath ; } ------------------------------------------------

  • VBSでファイル選択ダイアログを表示させたい

    VBS初心者です。 フォルダ選択ダイアログは BrowseForFolder にて可能なのですが、 VBSでファイル選択ダイアログを表示するのどうするのでしょうか? どなたかご存知でしたらご教授下さい。

  • SHBrowseForFolderに関する質問

    WinAPIを使ってプログラムを作成中です。 SHBrowseForFolder関数でフォルダを選択するようにしていて、それは成功したのですが、一つ問題が出てきました。 プログラムの用途上、フォルダを選択する時にUSBドライブの差し替えが必要になります。ところがSHBrowseForFolderで表示されたフォルダ一覧は、USBドライブを抜いたり差したりしても一切更新されません。BROWSEINFO.lpfnに指定したプロセジャーにイベントでも送られてくれれば対処もできるのですが、それも無いようです。 何か良い対処方法はないでしょうか?

  • C++Builderの選択

     いつも勉強させていただいています。どうぞよろしくお願いします。  今手元にあるアプリ(C++Builder5.0のソースコード付き)をいじりたく、 これを機会に初めてC++の勉強をしたいのですが(経験のある言語は Fortran、VBです)、C++Builderのどれを購入するかで迷っております。  ポイントとしましては、 ・上のC++Builder5.0のコードがコンパイル可能なもの  (先日、無料のBorland C++Compiler5.5をダウンロードしてコンパイルを試みても  できませんでしたorz (vcl.hというファイルが足りないようです)が、  C++Builderであればバージョン違いでもコンパイルできるのでしょうか?) ・書籍が比較的多いもの。(調べているとC++Builder6は比較的多そうな?気がしたのですが。。。) ・今後も暫く使えそうなもの。(C++Builder5 Personalとかかなり安いようなのですが、  皆さんもっと新しいもので開発なされているという事でしょうか。。。?) ・¥は7~8万くらいまで?  PersonalとProfessionalの違いや制限もよく分からないので、 もしお詳しい方がいらっしゃいましたら、ぜひ教えていただければと思います。  どうぞよろしくお願いします。

  • 構造体と構造体型の変数宣言箇所

    はじめてborlandC++builder6でプログラムを作っているのですが、構造体と構造体型の変数宣言箇所についてわからないことがあるので質問させてください。 あるフォームのソースファイル(○○○.cpp)内の関数で、自分で定義した構造体を使う場合、ヘッダファイル(○○○.h)に構造体を定義すると、関数内で「変数が未定義」エラーになってしまいます。一方、ソースファイル(○○○.cpp)の先頭に書けばエラーになりません。  ヘッダファイルに変数定義した場合とソース内の先頭に構造体と構造体型変数を定義するのでは何が違ってくるのでしょうか?

専門家に質問してみよう