A book is a team effort, and this one is no exception to that rule. Candace Hall and Todd Green have been with me through this process from outline to the finished product, and like any author I doubt I would have finished it without their midwifery skills. Songlin Qiu made sure that what I typed was what I really wanted everyone to read, and insisted on clarity throughoutthe book is better for her influence. My technical editor this time is Ben Garcia, and his patience checking every line of code and every screen shot is deeply appreciated. While I cheerfully share the credit for the accurate and educational aspects of this book, the mistakes and omissions I have to claim as mine alone. Please bring them to my attention so that they can be corrected in subsequent printings and editions. I am as grateful as ever to readers who have done so for my previous books, and improved this book in the process.
I am lucky enough to be married to my business partner (and a fellow geek) and so I always have someone to bounce ideas or sample code at, or to run explanations past. Brian, where would I be without you? My children, Beth and Kevin, understand that the rhythm of a writer's life is not like everyone else's and I thank them for supporting meand for distracting me when I needed to be distracted.
Microsoft people who contributed to my understanding of Visual C++, interoperability, and runtime internals include Nick Hodapp, Anson Tsao, Scott Currie, and Jan Gray. I thank you all for your insight and patience.
All that I have learned about C++, the .NET runtime, and interoperability has come from questions. Sometimes the questions have been my own, born of curiosity or a programming problem I've faced. Other times they've been asked by clients , readers, or someone from the audience at a presentation. These questions have tremendous value to me; I thank all those who've asked them. Keep asking!