views:

221

answers:

1

I have a 32bit application running on Windows 7 64bit. The application (written in C++) hosts a WebBrowser control.

When the WebBrowser control is asked to popup a new windows (through a javascript window.open() call), it launches a new Internet Explorer process. In particular, this new IE process is a 64bit IE process.

Since web pages love Adobe Flash, I unfortunately need to make sure new IE process that is launched is the 32bit version (which is the default on my machine), so that AdobeFlash content can be displayed.

Interestingly enough, IE itself (wrapper around WebBrowser/MSHTML) does not suffer this problem, implying there is some kind of configuration that could be set to hint to the WebBrowser control to launch a 32bit process.

Any ideas where I should be looking to ensure that WebBrowser / MSHTML create the right process?

A: 

I suggest you to handle the DWebBrowserEvents2::NewWindow2 event. You can either open it in a webbrowser control in your own process, or in a new CLSID_InternetExplorer object.

Sheng Jiang 蒋晟
I've considered that, but I am worried about maintaining the web-designers settings like making sure the page is the right size, and whether or not the toolbars are visible, and if the page is re-sizeable, etc. I would like to think that (overly optomistic) that there is a flag I failed to pass through to the WebBrowser control that would configure the appropriate 32-bit preference.
brianb