Beginning with Microsoft?Internet Explorer 4.0, application developers who want to redistribute Internet Explorer technologies梥uch as the , Wininet.dll, Urlmon.dll, or Comctl32.dll (or Common Controls DLL)梞ust obtain a royalty-free redistribution license for Internet Explorer and download a copy of the Internet Explorer Administration Kit (IEAK) through the .
Determining the Installed Version of Internet Explorer
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.
Determining the Internet Explorer Version from the Registry
To obtain the installed Internet Explorer version from the registry, open the following registry key:
HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Internet ExplorerIn 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.3 | 43110 |
5 | 5.00.2014.0216 | 52016 |
5.5 | 5.50.4134.0100 | 54134 |
6.0 Public Preview | 6.0.2462.0000 | 62462 |
6.0 Public Preview Refresh | 6.0.2479.0006 | 62479.0006 |
6.0 RTM | 6.0.2600.0000 | 62600 |
Determining the Internet Explorer Version from Shdocvw.dll
Because the Internet Explorer browser is implemented in Shdocvw.dll, the version of this dynamic-link library (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.3 |
5 Beta | 5.00.0010.1309 |
5 | 5.00.2014.0216 |
5.5 | 5.50.4134.100 |
6.0 Public Preview | 6.00.2462.0000 |
6.0 Public Preview Refresh | 6.00.2479.0006 |
6.0 RTM | 6.00.2600.0000 |
The following function retrieves the major and minor version numbers of the Shdocvw.dll currently installed on the local system.
Show Example
#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 == NULL) { //Error loading module -- fail as securely as possible return; } 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; }Security Alert Using incorrectly can compromise the security of your application by loading the wrong DLL. Refer to the documentation for information on how to correctly load DLLs with different versions of Microsoft Windows?
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/