Menu
-->
This section describes how to determine which version of the Shell DLLs your application is running on and how to target your application for a specific version.
- DLL Version Numbers
- Using DllGetVersion to Determine the Version Number
- Using DllGetVersion
- Project Versions
DLL Version Numbers
All but a handful of the programming elements discussed in the Shell documentation are contained in two DLLs: Shell32.dll and Shlwapi.dll. Because of ongoing enhancements, different versions of these DLLs implement different features. Throughout the Shell reference documentation, each programming element specifies a minimum supported DLL version number. This version number indicates that the programming element is implemented in that version and subsequent versions of the DLL unless otherwise specified. If no version number is specified, the programming element is implemented in all existing versions of the DLL.
Jump to All Versions of the Comctl32.dll Library - The last version of the Comctl32.dll library is the 6.10.7601.17514 version released on.
Before Windows XP, new Shell32.dll and Shlwapi.dll versions were sometimes provided with new versions of Windows Internet Explorer. As of Windows XP, those DLLs were no longer provided as redistributable files outside of new versions of Windows itself. The following table outlines the different DLL versions and how they were distributed dating back to Microsoft Internet Explorer 3.0, Windows 95, and Microsoft Windows NT 4.0.
Shell32.dll version 4.0 is found in the original versions of Windows 95 and Microsoft Windows NT 4.0. The Shell was not updated with the Internet Explorer 3.0 release, so Shell32.dll does not have a version 4.70. Shell32.dll versions 4.71 and 4.72 were shipped with the corresponding Internet Explorer releases, but they were not necessarily installed (see note 1). For releases subsequent to Microsoft Internet Explorer 4.01 and Windows 98, the version numbers for Shell32.dll and Shlwapi.dll diverge. In general, you should assume that the DLLs have different version numbers and test each one separately.
Shell32.dll | |
---|---|
Version | Distribution Platform |
4.0 | Windows 95 and Microsoft Windows NT 4.0 |
4.71 | Microsoft Internet Explorer 4.0. See note 1. |
4.72 | Internet Explorer 4.01 and Windows 98. See note 1. |
5.0 | Windows 2000 and Windows Millennium Edition (Windows Me). See note 2. |
6.0 | Windows XP |
6.0.1 | Windows Vista |
6.1 | Windows 7 |
Shlwapi.dll | |
---|---|
Version | Distribution Platform |
4.0 | Windows 95 and Microsoft Windows NT 4.0 |
4.71 | Internet Explorer 4.0. See note 1. |
4.72 | Internet Explorer 4.01 and Windows 98. See note 1. |
4.7 | Internet Explorer 3.x |
5.0 | Microsoft Internet Explorer 5 and Windows 98 SE. See note 2. |
5.5 | Microsoft Internet Explorer 5.5 and Windows Millennium Edition (Windows Me) |
6.0 | Windows XP and Windows Vista |
Note 1: All systems with Internet Explorer 4.0 or 4.01 had the associated version of Shlwapi.dll (4.71 or 4.72, respectively). However, for systems prior to Windows 98, Internet Explorer 4.0 and 4.01 can be installed with or without what was known as the integrated Shell. If Internet Explorer was installed with the integrated Shell, the associated version of Shell32.dll (4.71 or 4.72) was also installed. If Internet Explorer was installed without the integrated Shell, Shell32.dll remained as version 4.0. In other words, the presence of version 4.71 or 4.72 of Shlwapi.dll on a system does not guarantee that Shell32.dll has the same version number. All Windows 98 systems have version 4.72 of Shell32.dll.
Note 2: Version 5.0 of Shlwapi.dll was distributed with Internet Explorer 5 and was found on all systems on which Internet Explorer 5 was installed, with the exception of Windows 2000. Version 5.0 of Shell32.dll was distributed natively with Windows 2000 and Windows Millennium Edition (Windows Me), together with version 5.0 of Shlwapi.dll.
Using DllGetVersion to Determine the Version Number
Starting with version 4.71, the Shell DLLs, among others, began exporting DllGetVersion. This function can be called by an application to determine which DLL version is present on the system.
Note DLLs do not necessarily export DllGetVersion. Always test for it before attempting to use it.
For Windows versions earlier than Windows 2000, DllGetVersion returns a DLLVERSIONINFO structure that contains the major and minor version numbers, the build number, and a platform ID. For Windows 2000 and later systems, DllGetVersion might instead return a DLLVERSIONINFO2 structure. In addition to the information provided through DLLVERSIONINFO, DLLVERSIONINFO2also provides the hotfix number that identifies the latest installed service pack, which provides a more robust way to compare version numbers. Because the first member of DLLVERSIONINFO2 is a DLLVERSIONINFO structure, the later structure is backward-compatible.
Using DllGetVersion
The following sample function
GetVersion
loads a specified DLL and attempts to call its DllGetVersion function. If successful, it uses a macro to pack the major and minor version numbers from the DLLVERSIONINFO structure into a DWORD that is returned to the calling application. If the DLL does not export DllGetVersion, the function returns zero. With Windows 2000 and later systems, you can modify the function to handle the possibility that DllGetVersion returns a DLLVERSIONINFO2 structure. If so, use the information in that DLLVERSIONINFO2 structure's ullVersion member to compare versions, build numbers, and service pack releases. The MAKEDLLVERULL macro simplifies the task of comparing these values to those in ullVersion.Note Using LoadLibrary incorrectly can pose security risks. Refer to the LoadLibrary documentation for information on how to correctly load DLLs with different versions of Windows.
The following code example illustrates how you can use
GetVersion
to test whether Shell32.dll is version 6.0 or later.Project Versions
To ensure that your application is compatible with different targeted versions of a .dll file, version macros are present in the header files. These macros are used to define, exclude, or redefine certain definitions for different versions of the DLL. See Using the Windows Headers for an in-depth description of these macros.
For example, the macro name _WIN32_IE is commonly found in older headers. You are responsible for defining the macro as a hexadecimal number. This version number defines the target version of the application that is using the DLL. The following table shows the available version numbers and the effect each has on your application.
Version | Description |
---|---|
0x0200 | The application is compatible with Shell32.dll version 4.00 and later. The application cannot implement features that were added after version 4.00. |
0x0300 | The application is compatible with Shell32.dll version 4.70 and later. The application cannot implement features that were added after version 4.70. |
0x0400 | The application is compatible with Shell32.dll version 4.71 and later. The application cannot implement features that were added after version 4.71. |
0x0401 | The application is compatible with Shell32.dll version 4.72 and later. The application cannot implement features that were added after version 4.72. |
0x0500 | The application is compatible with Shell32.dll and Shlwapi.dll version 5.0 and later. The application cannot implement features that were added after version 5.0 of Shell32.dll and Shlwapi.dll. |
0x0501 | The application is compatible with Shell32.dll and Shlwapi.dll version 5.0 and later. The application cannot implement features that were added after version 5.0 of Shell32.dll and Shlwapi.dll. |
0x0600 | The application is compatible with Shell32.dll and Shlwapi.dll version 6.0 and later. The application cannot implement features that were added after version 6.0 of Shell32.dll and Shlwapi.dll. |
If you do not define the _WIN32_IE macro in your project, it is automatically defined as 0x0500. To define a different value, you can add the following to the compiler directives in your make file; substitute the desired version number for 0x0400.
Another method is to add a line similar to the following in your source code before you include the Shell header files. Substitute the desired version number for 0x0400.
Thank you for trying ponyChat v3 WWC. In this page you can download a fully functional version you can use for evaluation purposes free of charge for a period of 30 days.
Please follow these steps to try ponyChat v3 WWC now:
1. Be sure that your machine reaches these requirements:
- Pentium processor running at 100 MHz or above (Pentium II recommended).
- 32 Mb of RAM or more.
- 5 Mb of free hard disk space for installation
- VGA card (SVGA 800x600 16 bpp color recommended)
- Microsoft Windows 9X, ME, NT4.X or 2000.
- A working network adapter with TCP/IP protocol correctly installed for local network communication.
- A working Internet connection (modem or any other adapter) for Internet communication.
- ONLY FOR WINDOWS 95 USERS: ponyChat requires 'Comctl32.dll' version 4.71 or above. If you are using MICROSOFT WINDOWS 95 WITHOUT MICROSOFT INTERNET EXPLORER 4 or above, please download and install this patch:
Microsoft Common Controls Update
Required for W95 users without IE4
498 Kb
2. Download installation file from this server:
IMPORTANT | |||
|
3. Extract to any folder the ponyChat setup file (pSetup.exe) from your downloaded ZIP file.
![Comctl32 Dll Version 4.71 Download Comctl32 Dll Version 4.71 Download](/uploads/1/2/6/4/126486019/331803441.jpg)
4. Execute pSetup.exe and follow installation instructions (Repeat this step in every computer you want to contact with ponyChat in your network).
5. Run ponyChat and chat !
6. Send feedback to [email protected]
If you prefer, you can download ponyChat previous version (2 users is free !)
NOTE: This version supports only LAN communications (within the same WORKGROUP).
Please follow these steps in order to try ponyChat v2 now:
1. Be sure that your machine reaches these requirements:
- Pentium processor running at 100 Mhz or above (Pentium II recommended).
- 16 Mb of RAM or more.
- 5 Mb of free hard disk space for installation
- VGA card (SVGA with 16 bpp color desktop recommended)
- Microsoft Windows 9X, ME, NT4.X or 2000.
- A working network adapter with Microsoft Network Client correctly installed.
2. Download installation file from this server:
IMPORTANT | ||
|
3. Extract to any folder the ponyChat setup file (pSetup.exe) from your downloaded ZIP file.
4. Execute pSetup.exe and follow installation instructions (Repeat this step in every computer you want to contact with ponyChat in your network).
5. Run ponyChat and chat !
6. Send feedback to [email protected]