Beginning with Microsoft® Internet Explorer 4.0, application developers who want to redistribute Internet Explorer technologiessuch as WebBrowser control, Wininet.dll, Urlmon.dll, or Comctl32.dll (or Common Controls DLL)must obtain a royalty-free redistribution license for Internet Explorer and download a copy of the Internet Explorer Administration Kit (IEAK) through the IEAK Web site .
If your application requires Internet Explorer services, you must determine the version of Internet Explorer installed on the local system before installing your application. There are two methods that can be used to determine the installed version of Internet Explorer. The first obtains the version information from the registry, and the second obtains the version information from one of the Internet Explorer components.
To obtain the installed Internet Explorer version from the registry, open the following registry key:
HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Internet Explorer
In this key, obtain the Version value. This is a string value that contains the Internet Explorer version in the following format:
"<major version>.<minor version>.<build number>.<sub-build number>"
Additionally, this registry key contains a Build value, a five-character entry that takes the following format:
"<major version><build number>"
The following are the versions of Internet Explorer and the Version and Build values they return.
Internet Explorer Version | Version Value | Build Value |
---|---|---|
Prior to 4.0 | N/A | N/A |
4.0 | 4.71.1712.6 | 41712 |
4.01 | 4.72.2106.8 | 42016 |
4.01 SP1 | 4.72.3110.8 | 43110 |
5 | 5.00.2014.0216 | 52016 |
Because the Internet Explorer browser is implemented in Shdocvw.dll, the version of this DLL can be used to determine which version of Internet Explorer is installed. The absence of this file in the system indicates that Internet Explorer is either not installed or not installed properly.
The following are the versions of Internet Explorer and their corresponding versions of Shdocvw.dll.
Internet Explorer Version | Shdocvw.dll Version |
---|---|
1.0 (Plus!) | 4.40.308 |
2.0 | 4.40.520 |
3.0 | 4.70.1155 |
3.0 (OSR2) | 4.70.1158 |
3.01 | 4.70.1215 |
3.02 | 4.70.1300 |
4.0 Platform Preview 1.0 (PP1) | 4.71.544 |
4.0 Platform Preview 2.0 (PP2) | 4.71.1008.3 |
4.0 | 4.71.1712.6 |
4.01 | 4.72.2106.8 |
4.01 SP1 | 4.72.3110.8 |
5 Beta | 5.00.0010.1309 |
5 | 5.00.2014.0216 |
The following function retrieves the major and minor version numbers of the Shdocvw.dll currently installed on the local system.
Sample Code
#include <windows.h> #include <shlwapi.h> HRESULT GetBrowserVersion(LPDWORD pdwMajor, LPDWORD pdwMinor) { HINSTANCE hBrowser; if( IsBadWritePtr(pdwMajor, sizeof(DWORD)) || IsBadWritePtr(pdwMinor, sizeof(DWORD))) return E_INVALIDARG; *pdwMajor = 0; *pdwMinor = 0; //Load the DLL. hBrowser = LoadLibrary(TEXT("shdocvw.dll")); if(hBrowser) { HRESULT hr = S_OK; DLLGETVERSIONPROC pDllGetVersion; /* You must get this function explicitly. */ pDllGetVersion = (DLLGETVERSIONPROC)GetProcAddress(hBrowser, TEXT("DllGetVersion")); if(pDllGetVersion) { DLLVERSIONINFO dvi; ZeroMemory(&dvi, sizeof(dvi)); dvi.cbSize = sizeof(dvi); hr = (*pDllGetVersion)(&dvi); if(SUCCEEDED(hr)) { *pdwMajor = dvi.dwMajorVersion; *pdwMinor = dvi.dwMinorVersion; } } else { /* If GetProcAddress failed, there is a problem with the DLL. */ hr = E_FAIL; } FreeLibrary(hBrowser); return hr; } return E_FAIL; }
The IEAK allows the application developer to have complete control over the redistribution of Internet Explorer. In some cases, however, the minimal installation package may be sufficient for an application's needs.
To download a minimal installation of Internet Explorer for redistribution, perform the following steps:
The files are then downloaded to the local machine in the directory specified in step 4.
The following command line will install the Internet Explorer 5 minimal installation package in quiet mode, suppressing prompts as files are extracted.
ie5setup.exe /Q /M:0
For more information about other installation options, refer to the documentation provided with the IEAK.
Note When installing Internet Explorer in a Windows NT environment, make sure that the setup application has proper administration rights and that there is enough available space on the hard drive for the installation. The minimal installation package requires approximately 60 MB of available space to accommodate the temporary and installed files.
Internet Explorer 4.0 introduced a registry key that identifies all applications in the system that require Internet Explorer. Any attempt to uninstall Internet Explorer causes a warning dialog to occur, enumerating the applications that may not function correctly once Internet Explorer is removed from the user's machine.
If your application requires Internet Explorer 4.0 or later, be sure to add a string value under the following registry key; conversely, when your application is uninstalled, remember to remove that string value from the registry.
HKEY_LOCAL_MACHINE\ Software\ Microsoft\ IE4\ DependentComponents
The string value should take the following format, where AppID is a unique application identifier, and sAppName is a string that contains the application name that will be displayed in the warning dialog when Internet Explorer is uninstalled.
AppID = sAppName
To ensure compatibility with future versions of Internet Explorer, Internet Explorer 5 introduced a new registry key and value format that allows the application developer to indicate the version of Internet Explorer it requires.
HKEY_LOCAL_MACHINE\ Software\ Microsoft\ IE Setup\ DependentComponents
The string value to create under this registry key takes the following format:
AppName = sIEVersion
For example, the following registry entries indicate the Internet Explorer versions required by Microsoft® Visual Studio® 6.0 and Microsoft® Office 2000.
Visual Studio 6.0 = "4.71" Office 2000 = "5.0"
As was done in Internet Explorer 4.0, when Internet Explorer 5 or later is uninstalled, users are warned with the list of applications that require Internet Explorer on the system, and they are asked if they want to go ahead with the removal of Internet Explorer files.
Note For backward compatibility, Internet Explorer 5 and later will continue to support the following Internet Explorer 4.0-introduced registry key: