Multiple IEs Review
Sorting Out The Methods...
Microsoft Internet Explorer comes with a fairly comprehensive, although sparsely documented, Object Model. If you've used the Web Browser control in projects, you are already familiar with the capabilities of IE's Object Model. All of the functionality in IE's object model (not counting external support, like scripting support etc.) is provided by the following files:
- shdocvw.dll (Microsoft Internet Controls)
- mshtml.tlb/mshtml.dll (Microsoft HTML Object Library)
In the Windows OS there is a function called LoadLibrary
The LoadLibrary function maps out the DLLs to use for any given Windows application
Back in October of 2003 I stumbled upon what is called Dynamic-Link Library Redirection, in the form of a mysterious file included the Eolas version of IE called "iexplore.exe.local"
The LoadLibrary function changes it's search sequence if a redirection file is present. If a path is specified and there is a redirection file for the application, these functions search for the DLL in the application's directory. If the DLL exists in the application's directory, these functions ignore the specified path and load the DLL from the application's directory. If the module is not in the application's directory, these functions load the DLL from the specified directory
The .local file tells the Windows loader that it should look in the same directory as the executable for any DLLs or COM objects used. Since IE basically consists of a frame window (implemented in IEXPLORE.EXE) which loads the WebBrowser control (part of SHDOCVW.DLL), you need to ensure that IEXPLORE loads the right version of MSHTML.DLL/MSHTML.TBL and the other associated components, which is what the .local file forces.
The reality of this is that if you have IEXPLORE.EXE, MSHTML.DLL/MSHTML.TBL in a directory with an empty explorer.exe.local file you'll have a relativley represenative version of how that browser renders HTML, inside a modern GUI
But wouldn't you know it, us spoiled developes/designers want proper UA strings, and proper DX filters, and Working favorites Menus, etc.
The upcoming solutions will provide not only the proper CSS/HTML rendering but also working Favorites Menus across any version of IE, meaning that if you add a new Favoite in one it wil appear in the others.
Also - the GUI will be the GUI of the version of IE that you have installed as your system web browser (Ideally IE 6).
The singular downside so far is that right-clicking has completley eluded me.... If anyone knows which DLL controls this, please drop me an email
Files to be used
- IE 6 (Eolas version)-----No longer available from Microsoft but archived by my good friend Ryan
- IE 5.5 w/ SP2
- IE 5.0 w/ SP2
- IE 4.01 w/ SP2 -------- All currently available at http://www.browsers.evolt.org