| ■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 
       |