well written, comprehensive and clearly explained.
At nearly 1500 pages this is quite an intimidating book, as is the subject that it covers. The author was part of the interop test team at Microsoft and as such has an excellent grasp of the inner workings of COM, .NET and how both technologies can be made to work together. Fortunately, unlike some developers who write, he is able to explain an otherwise difficult and complex subject area, with both clarity and authority.
The focus of the book is on COM and .NET and how the two technologies can be made to work together. The book is split into eight parts, covering topics such as using COM components in .NET applications, .NET components in COM applications, designing .NET components for COM clients and PInvoke. This is useful, because it allows a developer to dip into the part of the book that is most relevant to their particular project's requirements and quickly gain an understanding of what is possible and some of the design issues they should be aware of. It is also not quite as overwhelming as having to read the entire book from cover to cover.
The book contains a large amount of source code, which is used with good effect to illustrate particular issues, for example, marshalling certain types of data from COM to .NET. These examples are written in a number of different languages, including C#, VB 6 and .NET, C++ and idl, as is necessary to cover different scenarios that the interop team (and developers) have had (and will have) to deal with. Indeed, the advantages and drawbacks of different languages formone of the more revealing aspects of the book, highlighting issues for the unwary such as differences in the default threading models of the .NET languages and how these affect interaction with COM components.
In what is possibly the only drawback of the book, some chapters contain numerous consecutive examples that can, at times, be quite difficult to follow. This is not the fault of the author, however, rather a reflection of the sheer variety of (data) types that need to be discussed. Otherwise, the book is well written, comprehensive and clearly explained. Developers will also find the information contained in the detailed appendices (some 300 pages) very useful, such as a comprehensive list of PInvoke signatures. Recommended.