エクスプローラの「画像のタスク」にある「スライドショーを表示する」をプログラム
で行いたいと思っていますが、やり方がまったくわかりません。
指定したパスに対して表示させたいと思いますが、プログラムから実行させることはで
きないのでしょうか?
WinXP、VS2003を使用しています。
よろしくお願いします。
IContextMenu::InvokeCommand()を使います。
この時、CMINVOKECOMMANDINFOのlpVerbにslideshowを指定すれば良いでしょう
VISTAで確認したのでXPは違うかもしれませんが。
FUKUさん、コメントありがとうございます。
返事が遅くなってしまいました。
スライドショーしたい画像ファイル2つを渡しましたがうまくいきませんでした。
下記の処理で、なぜか渡した2ファイルに対して、
マカフィーのウィルススキャンが始まってしまいます。
※ エラー判定は割愛してます。
LPCONTEXTMENU lpContMenu;
lpShellFolder->GetUIObjectOf(hWnd,
nArrayCount,
(LPCITEMIDLIST*)lppItemArray,
IID_IContextMenu,
0,
(LPVOID*)&lpContMenu);
lpContMenu->QueryContextMenu(pMenu->m_hMenu, 0, 1, 0x7fff, CMF_NORMAL);
CMINVOKECOMMANDINFO ci;
ZeroMemory(&ci, sizeof(CMINVOKECOMMANDINFO));
ci.cbSize = sizeof(CMINVOKECOMMANDINFO);
ci.fMask = 0;
ci.hwnd = NULL;
ci.lpVerb = slideshow;
ci.lpParameters = NULL;
ci.lpDirectory = NULL;
ci.nShow = SW_SHOWNORMAL;
ci.dwHotKey = 0;
ci.hIcon = NULL;
lpContMenu->InvokeCommand(&ci);
lpVerbをpropertiesにすると、きちんと渡した2ファイルのプロパティが表示されま
す。
マカフィーが動いてしまうのは環境のせいだと思いますが、環境によって動作が変わる
と困ってしまいます。
XPですと違うのですね?