none
WebBrowser Control tabs running in 64 bit mode when IE 10 is installed RRS feed

  • Question

  • I have an application that uses webbrowser control to view some pages.

    I found that even though the IE 10 running in standalone on my machine has 32 bit tabs running, the web browser control has 64 bit tabs running.  This is a serious issue for me since I need adobe PDF plugin to load and it only runs in 32 bit mode.

    Is there a way to force the webbrowser control tabs to run in 32 bit for IE 10?

    I know that the enhanced protected mode forces tabs to run in 64 bit, seems like something like that is happening for webbrowser controls, even though I have that setting turned off in IE 10.  Any advice appreciated.


    • Edited by Benjy M Friday, June 28, 2013 1:26 AM
    Thursday, June 27, 2013 8:24 PM

Answers

  • If you were able to load the 32 bit PDF plugin, you are already running as x86 process and there is no need to retarget. Problem is that the 32 bit PDF plugin stopped loading after upgrading to IE10. I suggest you to talk to the PDF plugin provider to see what is wrong in your use case, or find another plugin that supports IE10 under WBC.

    I am not sure how you loaded 64 bit database drivers. If you can load a 32 bit plugin, you can't possibly load a 64 bit database driver.  You will get a bad image exception if you try load a 64 bit dll into a 32 bit process. You probably have the 32 bit version of the driver installed and your process is using the 32 bit version.

    IE's enhanced protected mode setting does not affect your process, since you are not using it in creating another process to host the webbrowser control. Your webbrowser control's bitness is decided by your current process.



    Visual C++ MVP

    Saturday, June 29, 2013 6:28 PM

All replies

  • Yes, force your app to run in 32bit. Change your target platfrom to x86.


    Visual C++ MVP

    Friday, June 28, 2013 11:21 PM
  • Thanks for the feedback.  Unfortunately, I need the application to run in 64 bit to work with certain database drivers.  Before IE 10 was pushed out, my application was able to load the 32 bit PDF plugin into the wbc, but once IE 10 got pushed out, it no longer can and the only difference I see is its running 64 bit tabs in wbc and not when its running standalone IE outside of my application.

    I need some setting that tells IE to run in 32 bit tab mode even when its running as wbc.  Perhaps a registry value can do that?  I know there is a setting in IE, i think "enhanced protected mode" that forces the tabs to run in 64 bit mode.

    Saturday, June 29, 2013 4:11 PM
  • If you were able to load the 32 bit PDF plugin, you are already running as x86 process and there is no need to retarget. Problem is that the 32 bit PDF plugin stopped loading after upgrading to IE10. I suggest you to talk to the PDF plugin provider to see what is wrong in your use case, or find another plugin that supports IE10 under WBC.

    I am not sure how you loaded 64 bit database drivers. If you can load a 32 bit plugin, you can't possibly load a 64 bit database driver.  You will get a bad image exception if you try load a 64 bit dll into a 32 bit process. You probably have the 32 bit version of the driver installed and your process is using the 32 bit version.

    IE's enhanced protected mode setting does not affect your process, since you are not using it in creating another process to host the webbrowser control. Your webbrowser control's bitness is decided by your current process.



    Visual C++ MVP

    Saturday, June 29, 2013 6:28 PM
  • Normally, I would not disagree with you, however I was able to load the PDF plugin with the 64 bit application.  I know that it doesn't seem like it should work, but IE 9 was able to make it happen.  I know because I did have a problem with 32 bit flash plugin working and it did not work until the 64 bit plugin was released.  However, the most common pdf reader, adobe is only 32 bits and only stopped working in my application once IE 10 was forced onto my machine when it became a required update.  If you are sure that you don't believe me, try it out on a machine that doesn't yet have IE 10 installed.

    One of the most odd parts is, if you uninstall IE 10 and go back to IE 9, it still will not work.

    But, if you have IE 9 and have not yet had IE 10 installed, it will work.  That's how I know there is a setting being set somewhere that is making this break, I just need to find out what it is and change it.

    Saturday, June 29, 2013 9:31 PM
  • Microsoft says "On 64-bit Windows, a 64-bit process cannot load a 32-bit dynamic-link library (DLL). Additionally, a 32-bit process cannot load a 64-bit DLL." You don't have to believe me but this what Microsoft says. If you get a 64 bit application, you cannot load the any 32 bit component, like a webbrowser ActiveX, flash, database driver or PDF plugin. 

    Are you sure the the PDF plugin worked in your 64 bit application is from Adobe? Since Adobe Flash did not work in your application until a 64 bit version is released, why you think Adobe Reader is any different? 

    You don't get to choose the process bitness once the process is started. If you were able to load a component in a 64 bit application, then it must be 64 bit. If you want to load a 32 bit plugin, launch another 32 bit process. There is no magic setting to change your process's bitness. 

    By the way, there is no IE setting that says "load PDF inplace". There is no PDF support out of box. The PDF plugin registered for the file type must be register itself correctly, handle the downloading, then give green light to IE to host it inplace. The PDF plugin can refuse to load in such manner for any reason (e.g. IE version, host process name, or a setting in the pdf reader itself).


    Visual C++ MVP




    Saturday, June 29, 2013 11:26 PM