Reading the back cover of this book alone will probably convince a number of MFC programmers to buy it. Unfortunately, they will be disappointed by the content. Aimed at the intermediate to advanced MFC user, the book sets out to present a framework for extending MFC with multiple inheritance and to demonstrate a number of new controls. It actually describes only three controls, an extension to the
CBitmapclass, a window background class and a window caption class.
We start out with an explanation of the various conventions used in the book and throughout the source code. This coding style will be familiar to anyone who has worked with the MFC before. The next two chapters contain an explanation of the Windows DIB functions and the author's
XSBitmapclass. Two short chapters follow this on window subclassing and message reflection, before we get to the main part of the book. Chapter six, running from page 205 to 366, contains approximately 6 pages of actual text. The rest of the chapter is taken up with the source code listing for the multiple inheritance handler. Given that all the source code is included on the CD, it seems a total waste of paper to reproduce the complete implementation when almost all methods simply return FALSE. The last two chapters give examples of using the multiple inheritance handler to create a window background control and a caption control.
The CD, which comes with the book, is another source of frustration. It includes all the source code and a number of sample applications. Installation programs are provided for the code framework and for each sample. Unfortunately, each shares a common fault that prevents a successful installation if a system DLL needs to be updated. Manually copying the files to the hard disk requires a bit of fiddling with the project settings before Visual C++ can compile them. The sample applications all compile and run with no problems, but the general feel is that the installations were produced without any real testing on target machines.
I cannot recommend this title. It is not suitable for beginning MFC programmers and the intermediate and advanced programmers will probably have seen most of the content before in MSJ and the MSDN.