Preface to Second Edition
Since the publication of the first edition of this book late in 2004, Microsoft have
announced the release of Excel 2007 (version 12), one of the most important new releases
since Excel 97 (version 8). For those developing add-ins in C and C++ so little changed
between Excel 97 and Excel 2003 (version 11) that the entire first edition applied almost
equally to versions 8, 9, 10 and 11. Excel 2007 introduces some important and long-
awaited changes that have a significant impact on the text of this book, which has been
updated to reflect these new features.
For the first time in many releases, the Excel team have updated parts of the C API
interface to allow XLL add-in writers to take advantage of some of these new features.
The three areas that have the biggest impact are the introduction of multi-threaded recal-
culation, a worksheet grid over 1,000 times larger than is supported in previous versions,
and support in the C API for 32Kbyte Unicode strings. The implications for XLLs of
these changes and others are fully explored in this edition.
Beyond matters relating to Excel 2007, this edition adds a great deal of new material
to the first. There is a much expanded section of Excel’s recalculation logic, intended to
help you minimise calculation times and maximise control, as well as a new section that
spcifically addresses optimisation of calculations, both in the add-in and in the workbook.
The example C++ class described in the first edition that wraps the
xloper data type has
not only been enhanced to handle the new Excel 2007 data types but also to wrap calls
to the C API as well. There is a new section relating to add-in design, covering issues
such as good practice for the separation of interfaces, and techniques for controlling the
propagation of errors through a workbook.
There are numerous other small additions and modifications to the original text, not
significant enough to warrant mention here. As you would expect, the known errors and
omissions in the original text have also been fixed, although readers are asked to bear in
mind that the writing constraints of such a book mean that bug-free can only ever be a
goal not a promise where code samples are concerned.
Beyond this, new material relates to a few practical applications. These tend to be
those that are most relevant to the professional derivatives markets, but will I hope, still
provide some useful insights for people outside this world. There is a little more about
interpolation. The section relating to the Gaussian normal distribution is revised and now
takes a more sensible Excel version-specific approach, which also serves as an example
of backwards-compatible and version-aware add-in funtionality.