但是当我运行这个代码
HRESULT CbrowserHost::ShowContextMenu(DWORD dwID,POINT *ppt,IUnkNown *pcmdTarget,Idispatch *pdispObject) { #define IDR_broWSE_CONTEXT_MENU 24641 #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")); //here the exception is raised if (hinstSHDOCLC == NULL) { // Error loading module -- fail as securely as possible. return; } hMenu = LoadMenu(hinstSHDOCLC,MAKEINTRESOURCE(IDR_broWSE_CONTEXT_MENU)); hMenu = GetSubMenu(hMenu,dwID); // Get the language submenu. hr = spCT->Exec(&CGID_ShellDocView,SHDVID_GETMIMECSETMENU,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,&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,hwnd,(RECT*)NULL); // Send selected shortcut menu item command to shell. LRESULT lr = ::SendMessage(hwnd,WM_COMMAND,iSelection,NULL); FreeLibrary(hinstSHDOCLC); return S_OK; }
这个错误被提出
"The specified module Could not be found"
如何以编程方式检测是否在Windows桌面应用程序中启用/禁用了JavaScript? (Webbrowser控件)
Microsoft Web浏览器ActiveX控件 – 打印到指定的(非默认)打印机
如何使用Windows应用程序在第三方网站上填写和提交Web表单?
在Windows 10中,Visual Studio中的embedded式Web浏览器控件将发生什么变化?
我search我的系统(Windows 7的64位,IE9),我没有findSHDOCLC.DLL文件,问题是存在任何替代这个文件在新版本的IE浏览器或我必须使用另一种方式来加载上下文菜单和自定义它?
在form2 vb窗口应用程序上的webbrowser控件
谷歌地图不正确加载在网页浏览器控制
您不应再使用或依赖Internet Explorer的内部资源。 正如你在文章中指出的那样:
在Internet Explorer 7中,用于覆盖DocObject主机上下文菜单的技术与Internet Explorer 6相同; 然而,主机必须实现自己的菜单资源。 不应使用Internet Explorer的内部资源,因为它们可能会更改或移动(如在Internet Explorer 7中所做的那样)。
如果Windows版本比VISTA(包含)更新,请尝试使用LoadLibrary(“IEFRAME.DLL”)。
你可以在这里找到更多的信息
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。