はじめて質問いたします。
よろしくお願いいたします。
質問は2つあります。
①現在あるツールを作成しており、そのツールのツールバーに
「検索」ボタンを用意し、そのボタンが押下されたら、
[スタート]-[検索]-[ファイルやフォルダ]で表示される
『検索結果』ウィンドウを表示したいのですが、この方法がわかりません。
②上記の質問で、「検索」ボタンを用意すると記述しましたが、
このとき、explorer等で用いられているアイコンと同じものに
したいのです。。
SHGetFileInfo()で、システムアイコンイメージを取得する方法は
解かっているのですが、この「検索」アイコンも取得できるのでしょう
か??(PIDLが分かりません。。)
ご存知の方、ご教授よろしくおねがいいたします。
またもやマルチポスト発見!
大変失礼いたしました。
今後はこのようなマナー違反には十分気をつけます。。
申し訳ございませんでした。
②については自分でなんとか解決できましたので、
その解決した方法を記述したいと思います。
(マルチポストというマナー違反を犯したため
もう一つの掲示板にも同じく解決法を記述します。
ご迷惑をお掛けして申し訳ございませんでした。)
Windowsの初期設定のアイコンが収納されている
Shell32.dllを、ExtractIconEx()の引数に指定する
ことでshell32.dll内から取得できました。。
①については未だ分かりません。。
ご存知の方がいらっしゃいましたらお教えいただけ
ないでしょうか。よろしくお願いいたします。
環境を記述していませんでした。。すいません。。
以下に記述いたします。
WinXP-Pro VC++6.0(SP5) MFC
> 『検索結果』ウィンドウを表示したいのですが、この方法がわかりません。
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; }
dairygoodsさん、お返事ありがとうございます。
DDE。これまで一度も使ったことがないのでよく分かりませんが
dairygoodsさんが載せてくれたコードを元に勉強してみたいと
思います。
本当にありがとうございました。