MSDN > フォーラム ホーム > Visual C++ General > shdoclc.dll missing when trying to customize WebBrowser control context menu
質問する質問する
 

回答済みshdoclc.dll missing when trying to customize WebBrowser control context menu

  • 2009年2月2日 16:29Jonas Nordlund ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     
    I'm not sure when it went M.I.A. but suddenly, now when I'm on Windows Vista 64-bit (Swedish) and Internet Explorer 8 RC, I don't have it in %WINDIR%\System32 at least.

    This causes a problem in our application that attempt to customize the context menu in a hosted WebBrowser control. It is supposed to load that DLL, and next its IE menu resource, and then get a handle to it and customize it. But now with the DLL entirely missing I'm stopped early in my tracks. :S

    Why could it be that I don't have that DLL? Can I just get it from someone else? Do IE 8 (or already 7?) no longer use it? I'm not quite sure when this happened because our app silently caught the problem, and I haven't tried using the context menu until now. ;)

    TIA

    Jonas

回答

  • 2009年2月2日 18:13Sheng Jiang 蒋晟MVPユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     回答済み

    The DLL disappears after the IE upgrade. Loading resources from Windows Dlls is not supported. Whoever invented the hack in the WebBrowser Customization article needs to update the page to include a warning that the hack may stop working without notice. 


    In Internet Explorer 7, the technique for overriding the context menu from a DocObject host is the same as Internet Explorer 6; however, the host must implement its own menu resources. The internal resources of Internet Explorer should not be used as they may change or move (as has been done in Internet Explorer 7). See Appending Extensions to Your Custom Menu below.

    MSMVP VC++

すべての返信

  • 2009年2月2日 17:56nobugzMVP, モデレータユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     
    Is it because you should look in the c:\windows\syswow64 directory instead?
    Hans Passant.
  • 2009年2月2日 18:13Sheng Jiang 蒋晟MVPユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     回答済み

    The DLL disappears after the IE upgrade. Loading resources from Windows Dlls is not supported. Whoever invented the hack in the WebBrowser Customization article needs to update the page to include a warning that the hack may stop working without notice. 


    In Internet Explorer 7, the technique for overriding the context menu from a DocObject host is the same as Internet Explorer 6; however, the host must implement its own menu resources. The internal resources of Internet Explorer should not be used as they may change or move (as has been done in Internet Explorer 7). See Appending Extensions to Your Custom Menu below.

    MSMVP VC++
  • 2009年2月2日 22:18Jonas Nordlund ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     
    Alright, thanks! Yes, the technique always felt quite "hacky" to me, although I believe I learnt it from that article, with the #define for IDR_BROWSE_CONTEXT_MENU and all. ;) Hmm, I'll look around as for how to add our "personal" menu with "View source", "Print" and "Page properties" commands then. Earlier, we took the IE menu and removed all items we didn't want, essentially just leaving those.