EnumWnd v1.08 An ATL DLL to demonstrate
COM Enumerators and Collections
Welcome to EnumWnd, a tutorial ATL COM dll which I developed while studying
the Collections and Enumerator support provided by ATL. While reading the "ATL
Internals" book by Brent Rector and Chris Sells, I was struggling with Chapter
7 which explains COM Enumerators. To improve my understanding of this, I decided
to develop a real world example. The simplest collection I could think of was Top
Level Windows which is what is returned by the Win32 SDK call "EnumWindows".
The enclosed zip file contains the EnumWnd
source code, and a sample VB 6 app to test all the methods of the classes.
Copyright
- You are allowed to include the source code in any product (commercial, shareware,
freeware or otherwise) when your product is released in binary form.
- You are allowed to modify the source code in any way you want except you
cannot modify the copyright details at the top of each module.
- If you want to distribute source code with your application, then you are
only allowed to distribute versions released by the author. This is to maintain
a single distribution point for the source code.
Updates
v1.08 (7 May 2022)
- Updated copyright details.
- Updated the code to use C++ uniform initialization for all variable
declarations.
v1.07 (11 April 2020)
- Updated copyright details.
- Fixed more Clang-Tidy static code analysis warnings in the code.
v1.06 (30 December 2019)
- Fixed various Clang-Tidy static code analysis warnings in the code.
v1.05 (17 November 2019)
- Updated initialization of various structs to use C++ 11 list
initialization
v1.04 (3 June 2019)
- Updated copyright details.
- Updated the code to clean compile on VC 2019
v1.03 (27 December 2018)
- Updated copyright details.
- Fixed a number of C++ core guidelines compiler warnings. These changes
mean that the code will now only compile on VC 2017 or later.
v1.02 (17 January 2017)
- Updated copyright details.
- Updated the code to now require at a minimum VC 2010.
- Updated the code to clean compile in VC 2010 - 2015.
- Removed the MinSize project configurations.
- Updated the code to compile cleanly using /analyze
- Updated the code to include x64 build configurations
- Added SAL annotations to all the source code.
- Replaced NULL throughout the codebase with nullptr.
- The DLL now supports the "DllInstall" registration function.
v1.01 (6 April 2002)
- Fixed a problem with the registration of the class EnumWindow.
- Updated the sample app to use a Reference from the registry rather than
from a location.
- Add the restricted IDL attribute to the _NewEnum methods to hide that method
from scripting type library browsers.
v1.0 (20 January 2002)