2010-07-16 5 views
2

Windows 7 64 비트에서 실행되는 32 비트 응용 프로그램이 있습니다. C++로 작성된 응용 프로그램은 WebBrowser 컨트롤을 호스팅합니다.WebBrowser 컨트롤 (32 비트 앱) window.open() 호출시 64 비트 Internet Explorer를 실행합니다.

WebBrowser 컨트롤에 새 창을 (자바 스크립트 window.open() 호출을 통해) 팝업하라는 메시지가 표시되면 새 Internet Explorer 프로세스가 시작됩니다. 특히이 새로운 IE 프로세스는 64 비트 IE 프로세스입니다.

웹 페이지가 Adobe Flash를 좋아하기 때문에 불행하게도 Adobe Flash 콘텐츠를 표시 할 수 있도록 32 비트 버전 (내 컴퓨터의 기본값)이 실행되도록 설정해야합니다. 흥미롭게도

, IE 자체 (웹 브라우저/MSHTML 주위 래퍼) 32 비트 프로세스를 시작하려면 웹 브라우저 컨트롤에 힌트로 설정 될 수있는 구성의 일종이 암시,이 문제를 겪지 않는다.

WebBrowser/MSHTML이 올바른 프로세스를 만들 수 있도록해야하는 아이디어는 무엇입니까?

답변

0

나는 당신에게 handle the DWebBrowserEvents2::NewWindow2 event라고합니다. 자체 프로세스의 웹 브라우저 컨트롤이나 새 CLSID_InternetExplorer 개체에서 열 수 있습니다.

+0

나는 이것을 고려했다. 그러나 웹 디자이너 설정을 유지하는 것에 대해 걱정한다. 예를 들어, 페이지가 올바른 크기인지, 툴바가 보이는지 여부, 그리고 페이지의 크기가 재조정 될 수 있는지 등. 필자는 적절한 32 비트 환경 설정을 구성하는 WebBrowser 컨트롤로 전달하지 못한 플래그가 있다고 (너무 지나치게) 생각하고 싶습니다. – brianb

0

이것은 응용 프로그램에 과도 할 수 있지만 나를 위해 플랫폼 대상을 x86으로 변경하면 컨트롤이나 팝업에 64 비트 IE가 사용되지 않습니다.

+0

불행히도 그러한 경우는 아닙니다. MS는 문제가 있음을 인정하고 향후 어느 시점에 패치를 릴리스 할 것입니다. – brianb