怎样用VC调用IE浏览器并定制右键的快捷菜单?
找一下IDocHostUIHandler::ShowContextMenu 
The WebBrowser Control gets its shortcut menu resources from Shdoclc.dll. That knowledge and a few #defines gives you a chance to manipulate the browser's menu. Let's say for instance that you're happy with the default menu, except for the View Source option, which you'd like to eliminate. The following code loads the WebBrowser Control shortcut menu resource from Shdoclc.dll, chooses the correct menu for the context, removes the menu item corresponding to the IDM_VIEWSOURCE command, then displays the menu.Hide Example
HRESULT CBrowserHost::ShowContextMenu(DWORD dwID,
                                      POINT *ppt,
                                      IUnknown *pcmdTarget,
                                      IDispatch *pdispObject) 
{
    #define IDR_BROWSE_CONTEXT_MENU  24641
    #define IDR_FORM_CONTEXT_MENU    24640
    #define SHDVID_GETMIMECSETMENU   27
    #define SHDVID_ADDMENUEXTENSIONS 53    HRESULT hr;
    HINSTANCE hinstSHDOCLC;
    HWND hwnd;
    HMENU hMenu;
    CComPtr<IOleCommandTarget> spCT;
    CComPtr<IOleWindow> spWnd;
    MENUITEMINFO mii = {0};
    CComVariant var, var1, var2;    hr = pcmdTarget->QueryInterface(IID_IOleCommandTarget, (void**)&spCT);
    hr = pcmdTarget->QueryInterface(IID_IOleWindow, (void**)&spWnd);
    hr = spWnd->GetWindow(&hwnd);    hinstSHDOCLC = LoadLibrary(TEXT("SHDOCLC.DLL"));    hMenu = LoadMenu(hinstSHDOCLC,
                     MAKEINTRESOURCE(IDR_BROWSE_CONTEXT_MENU));    hMenu = GetSubMenu(hMenu, dwID);    // Get the language submenu
    hr = spCT->Exec(&CGID_ShellDocView, SHDVID_GETMIMECSETMENU, 0, NULL, &var);    mii.cbSize = sizeof(mii);
    mii.fMask  = MIIM_SUBMENU;
    mii.hSubMenu = (HMENU) var.byref;    // Add language submenu to Encoding context item
    SetMenuItemInfo(hMenu, IDM_LANGUAGE, FALSE, &mii);    // Insert Shortcut Menu Extensions from registry
    V_VT(&var1) = VT_INT_PTR;
    V_BYREF(&var1) = hMenu;    V_VT(&var2) = VT_I4;
    V_I4(&var2) = dwID;    hr = spCT->Exec(&CGID_ShellDocView, SHDVID_ADDMENUEXTENSIONS, 0, &var1, &var2);    // Remove View Source
    DeleteMenu(hMenu, IDM_VIEWSOURCE, MF_BYCOMMAND);    // Show shortcut menu
    int iSelection = ::TrackPopupMenu(hMenu,
                                      TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD,
                                      ppt->x,
                                      ppt->y,
                                      0,
                                      hwnd,
                                      (RECT*)NULL);    // Send selected shortcut menu item command to shell
    LRESULT lr = ::SendMessage(hwnd, WM_COMMAND, iSelection, NULL);    FreeLibrary(hinstSHDOCLC);
    return S_OK;
}
HOWTO: Adding to the Standard Context Menus of the WebBrowser Control Q177241而且可以定制个性化的IE浏览器?
自己写程序,嵌入webbrowser control,或者写BHOs(Browser Helper Objects)