■7129 / inTopicNo.4) |
Re[3]: エクスプローラの右クリックメニュー |
□投稿者/ 魔界の仮面弁士 大尉(160回)-(2006/10/03(Tue) 18:27:54)
|
分類:[C#]
COM Interop に関する知識が要求されるかと思います。
> 右クリックでエクスプローラと同じコンテキストメニューを表示させたいのですが、
試していませんが、右クリックした項目(IShellFolderインターフェイス)の GetUIObjectOfメソッドで IID_IContextMenu/IID_IContextMenu2 を得て、そこから QueryContextMenu → TrackPopupMenu → InvokeCommand → DestroyMenu を呼び、 さらに、WndProc メソッドのオーバーロード側で、WM_INITMENUPOPUP, WM_DRAWITEM, WM_MENUCHAR, WM_MEASUREITEM 等のウィンドウメッセージを 捕らえて、IContextMenu2.HandleMenuMsg メソッドを呼び出すようにすれば、 エクスプローラと同じコンテキストメニューが得られると思います。
> 方法がわからずに悩んでおります。
.NET での実装ではありませんが、下記が何かしらの参考になりますでしょうか。
VC++ での実装例。 http://forums.belution.com/ja/vc/000/009/39.shtml
VB6 による実装例。 (mIShellFolderDefs の ShowShellContextMenu メソッドで処理しています) http://btmtz.mvps.org/vbexplorer/
> わんくまフォーラムでは特に禁止されていないとは思いますが、 > マナー的にはあまりいいものではありませんね。
No6906 を参照。
|
0
|