検索結果」ウィンドウ起動方法

[戻る]
タカ 2002/05/24(金) 13:14:34
はじめて質問いたします。
よろしくお願いいたします。

質問は2つあります。

@現在あるツールを作成しており、そのツールのツールバーに
 「検索」ボタンを用意し、そのボタンが押下されたら、
 [スタート]-[検索]-[ファイルやフォルダ]で表示される
 『検索結果』ウィンドウを表示したいのですが、この方法がわかりません。

A上記の質問で、「検索」ボタンを用意すると記述しましたが、
 このとき、explorer等で用いられているアイコンと同じものに
 したいのです。。
 SHGetFileInfo()で、システムアイコンイメージを取得する方法は
 解かっているのですが、この「検索」アイコンも取得できるのでしょう
 か??(PIDLが分かりません。。)

 ご存知の方、ご教授よろしくおねがいいたします。

不良PG [E-Mail] 2002/05/24(金) 16:58:20
またもやマルチポスト発見!

タカ 2002/05/25(土) 02:54:30
大変失礼いたしました。
今後はこのようなマナー違反には十分気をつけます。。
申し訳ございませんでした。

タカ 2002/05/26(日) 23:15:43
Aについては自分でなんとか解決できましたので、
その解決した方法を記述したいと思います。
(マルチポストというマナー違反を犯したため
もう一つの掲示板にも同じく解決法を記述します。
ご迷惑をお掛けして申し訳ございませんでした。)

 Windowsの初期設定のアイコンが収納されている
Shell32.dllを、ExtractIconEx()の引数に指定する
ことでshell32.dll内から取得できました。。


@については未だ分かりません。。
ご存知の方がいらっしゃいましたらお教えいただけ
ないでしょうか。よろしくお願いいたします。

 環境を記述していませんでした。。すいません。。
以下に記述いたします。
 WinXP-Pro VC++6.0(SP5) MFC

dairygoods 2002/05/27(月) 11:49:42
> 『検索結果』ウィンドウを表示したいのですが、この方法がわかりません。


DDEを使います。エラー処理抜きだとこんな感じ:

void finder() {
 DWORD ddeInst=0;
 DdeInitialize(&ddeInst, MyDdeCallback, APPCMD_CLIENTONLY, 0);
 HSZ service = DdeCreateStringHandle(ddeInst, "Folders", CP_WINANSI);
 HSZ topic = DdeCreateStringHandle(ddeInst, "AppProperties", CP_WINANSI);
 HCONV hconv = DdeConnect(ddeInst, service, topic, NULL);
 char command[] = "[FindFolder(\"検索するフォルダ\")]";
 HDDEDATA hdata = DdeClientTransaction(
   (LPBYTE)command, sizeof(command), hconv, NULL,
   CF_TEXT, XTYP_EXECUTE, TIMEOUT_ASYNC, NULL);
 DdeDisconnect(hconv);
 DdeFreeStringHandle(topic);
 DdeFreeStringHandle(service);
 DdeUninitialize(ddeInst);
}

HDDEDATA CALLBACK MyDdeCallback(略) { return (HDDEDATA)NULL; }

タカ 2002/05/28(火) 01:14:18
[[解決]]
dairygoodsさん、お返事ありがとうございます。

DDE。これまで一度も使ったことがないのでよく分かりませんが
dairygoodsさんが載せてくれたコードを元に勉強してみたいと
思います。

本当にありがとうございました。

古いスレッドには追加発言できません。