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.

Reply via email to