资源管理器的右键菜单可以通过什么接口的方法屏蔽掉吧。不通过处理鼠标消息等方式,请各位大侠说说,小弟先谢过。。

解决方案 »

  1.   

    用IContextMenu接口,自己去Google,讲起来太麻烦了
      

  2.   

    IContextMenu接口针对IE是可以的。但对资源管理器没有用。我试过这个接口的。
      

  3.   

    请问可不可以说详细点呢。在资源管理器里如何使用IContextMenu接口。屏蔽右键菜单。
      

  4.   

    http://www.codeproject.com/KB/shell/shellextguide1.aspx 
    windows  shell编程很详细了,
    csdn上有翻译版本的
      

  5.   

    IshellView 可以获得 IContextMenu,但是不能屏蔽呀。可以加一些自己的菜单选项。我只是想完全屏蔽。
    我肯定是先在网上找了资料,没找到才发帖子的。
      

  6.   

    IShellBrowser接口,每次创建窗口,右键地,就会触发这个三个事件,
    InsertMenusSB
    SetMenuSB
    RemoveMenusSB
    但这几个事件,我可以在这里屏蔽掉菜单吗?我试了下,没能成功,MS也是用来扩展用的。
      

  7.   

    刚看了个帖子。跟我的需求很类似
    http://topic.csdn.net/u/20080531/18/98170995-c3eb-4730-97c3-216afbe6d16d.html
      

  8.   

    我当初是替换的。呵呵。
    HRESULT STDMETHODCALLTYPE CWebBaseComponent::ShowContextMenu( 
    /* [in] */ DWORD dwID,
    /* [in] */ POINT *ppt,
    /* [in] */ IUnknown *pcmdtReserved,
    /* [in] */ IDispatch *pdispReserved)
    {
    if(ppt)
    {
    HMENU hPopup;
    hPopup = GetSubMenu(m_hHelloMenu,0);
    if(m_strMenuContentMgr.GetLength() > 0)
    {
    MENUITEMINFO mi;
    ZeroMemory(&mi,sizeof(mi));
    mi.cbSize = sizeof(mi);
    mi.fMask = MIIM_STRING;
    mi.dwTypeData = m_strMenuContentMgr.LockBuffer();
    SetMenuItemInfo(hPopup,ID_HELLO_CONTENT_MGR,FALSE,&mi);
    m_strMenuContentMgr.UnlockBuffer();
    }
    TrackPopupMenu(hPopup,TPM_LEFTALIGN | TPM_RIGHTBUTTON,ppt->x,ppt->y,0,m_hWnd,0);
    }
    return S_OK;
    }
      

  9.   

     IDocHostUIHandler 接口实现