Starting with IE 3.0, Internet Explorer has been used to distribute several "OS" types of updates - common controls (list view, tree view), shlwapi (PathFindOnPath, UrlCombine, etc.), etc. If you look through the MSDN documentation on the C APIs to these "OS" types of functions, you can see the requirements will often say something like "Requires Windows 98 (or Windows 95 with Internet Explorer 4.0 or later)". There are also things like MS WinHTTP and MSXML that use functionality in the DLLs distributed by IE. There are lots of things that IE distributes, including things like WinInet, SSL support, Crypto API, etc. Instead of distributing all of these DLLs and other dependant files separately for each product, they just make IE a requirement (IE 5.01 in both these cases). By doing this, there's more of a guarantee that the installation is done "right" and you don't have any conflicts.
To see what comes with IE 5.01, go to http://support.microsoft.com/servicedesks/fileversion/dllinfo.asp Choose: Search: "By Product Only" Product: "Internet Explorer" Version: "Internet Explorer 5.01" (or 5.01 sp1, etc.) With IE 5.01, you get all of the IE related updates that were made through the Windows 2000 release (Windows 2000 comes with IE 5.01, so if you have Windows 2000, you have at least IE 5.01). Beginning with Windows 98 and Windows 2000, IE became an integral part of the shell (windows explorer, the desktop, etc.). You can really consider some of the IE functionality as getting "Windows 2000" functionality without requiring Windows 2000. Think of IE (at least through 5.01) as more of a "Service Pack" or "OS update" rather than a web browser. Let's say that you are compiling a Win32 C/C++ application. You'd need recent headers and libraries to use these new functions You #define WINVER (for Windows 95/98), _WIN32_WINNT (for NT, 2000, XP), and _WIN32_IE (for Internet Explorer) to what your "minimum requirments" are. See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sdkintro/usage_8xgz.asp. So, for example, if you want to use a Shell32.dll function that's only in Windows 2000 or later (like SHCreateDirectoryEx), you have 2 choices: 1. Use LoadLibrary and GetProcAddress to call the function (and do something appropriate if not suppported on current platform) 2. Use the platform SDK headers, and #define _WIN32_WINNT to 0x0500 (won't run properly on older platforms). With option 1, its not always possible to mimic the functionality that you'd get if you just up'ed the minimum requirments. With Common Controls it gets even a little more complicated, and you'd really have to do a version check. Well, with .Net, I'm sure that under the covers someone somewhere is implementing something that uses some functionality that IE 5.01 distributes. -Daniel -----Original Message----- From: Reggie Burnett [mailto:[EMAIL PROTECTED]] Sent: Friday, April 26, 2002 11:28 PM To: [EMAIL PROTECTED] Subject: why IE 5.01 Has anyone asked or answered the question Why is IE 5.01 required to install the dotnet runtime? And how many folks out there are building/shipping client apps despite not supporting Win95, requiring IE 5.01, etc? Reggie You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com. You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.