Implementing dispatch-based interfaces in ATLJuly 17, 2001
There are three kinds of ways to declare a dispatch-based interface in IDL, but ATL (as of version 3.0), only supports the implementation of 1.5 of them (duals and a raw dispinterfaces for handling events). The ATL Dispatch Sampledemonstrations the use of three ATL-based classes, one for implementing each type of dispatch-based interface. The header file that defines these classes, dispimpl2.h, is provided for use in your own projects.
BTW, thanks to Ehab Kashkash for making this code work under VS.NET as well as VC6.