First and foremost, I must acknowledge the place where I learned about COM. I work for a company in Los Angeles called DevelopMentor, which is for all practical purposes the center of the COM universe. DevelopMentor is a community made up of the brightest and most enthusiastic group of computer scientists I have ever encountered—a peer group of the highest level of technical integrity, practiced in heated intellectual debate. At DevelopMentor, unsound ideas are blasted out of the air like lame ducks on the opening day of hunting season. In my humble opinion, the ability of this group to research and to teach others about the most significant aspects of Windows development is unparalleled in the industry. I would like to thank Mike Abercrombie, Lorrie Trussell, and all the other good people at DevelopMentor who keep the company afloat on a day-to-day basis.
A very special thanks goes to Don Box. (Don is our technological forefather and lead mentor at DevelopMentor.) Don, I can say that I have learned every significant aspect of COM programming from you either directly or indirectly. Thanks for writing the foreword to my book. Thanks for your outstanding quality assurance checks on so many of my chapters. And finally, thanks for coaching me in my writing style by teaching me that sentences should never be written passively and that a preposition is a terrible thing to end a sentence with.
Many others at DevelopMentor deserve a special acknowledgment. Thanks to Martin Gudgin, Keith Brown, Jason Masterman, Brian Randell and Tim Ewald for reviewing chapters, finding bugs, and making excellent suggestions. I'd like to express my gratitude to all the other instructors at DevelopMentor who have taught me so much, including Chris Sells, Fritz Onion, George Shepherd, Joe Hummel, Brian Meso, Brent Rector, Calvin Caldwell, Ken Getz, Ron Sumida, Brad Needham, Andrew Harrison, Mark Taparauskas and, of course, Fred Wesley. And one more thing—while I must share credit with this entire crew, I'd like to point out that any technical inaccuracies in this manuscript are mine and mine alone.
I would like to thank Mitch Argon and the people at QuickStart Technologies for giving me my first job, where I was paid to learn how I could make businesses more productive and competitive through the use of computer technology. It was nirvana getting my hands on the original beta for Microsoft Access four months before the version 1.0 shipped in the early 90s. I enjoyed my time at QuickStart and I learned a lot by working with motivated and talented individuals like Marc Huynen, Matt Chamberlain, and Ryan Reed. The three years I spent there started me out on the path I am following today.
I would like to thank everyone at the Moore Literary Agency for your support and assistance. A special thanks to Claire Horne for helping me create and shop the proposal for this book. I appreciate your hard work, and I have always been impressed by the knowledge and experience you have in your field.
Thanks to Joshua Trupin of MIND and Joseph Flanigen of Microsoft Systems Journal for publishing my articles. I'd also like to thank the other people at these most excellent publications who helped me get my words into print, including Joanne Steinhart, Terry Dorsey, Joan Levinson, Laura Euler, and Eric Maffei.
Thanks to Jim Fawcette and everyone I have worked with at Fawcette Technical Publications. Thanks to Lee The and the other people who edited my articles for VBPJ. I'd also like to give a special thanks to all the hardworking people who put the VBITs conferences together, including Tena Carter, Timothy Haight, Ann ODonnell, Janet Brandt, Daryl Haggard, and Robert Scoble.
There are so many folks at Microsoft who deserve my thanks as well. At the risk of alienating myself from the entire UNIX community, I would like to give one big broadcast thanks to everyone at Microsoft who has ever given me or anyone else at DevelopMentor technical assistance, beta software, and the all-important inside scoop. In particular, I would like to thank Carolyn Duffy, Sean Alexander, Chris Flores, Rajiv Saxena, Bill Vaughn, and John Roskill on the Visual Basic team. I would also like to thank Ben Willet, Sara Williams, Brian Staples, and Frank Redmond III.
I am very appreciative to Microsoft Press for helping me put this book together. This includes my original acquisitions editor David Clark, my current acquisitions editor Ben Ryan, and a very talented editing and production team. Many thanks to you, Kathleen Atkins, for doing such an excellent job as lead editor and project manager. I was also very lucky to have Ina Chang as the copy editor and Donnie Cameron as the technical editor. I hope to work with you all again in the future.
Finally, I would like to recognize my favorite technical writers in the industry by listing the books that have influenced the way I look at COM and software development. I'd like to thank them all for their contributions to the collective literature on which every Windows developer depends. These are the books I found myself picking up time after time as I wrote this manuscript. I can highly recommend these books to anyone involved in building distributed applications with Visual Basic and C++.
Doing Objects in Microsoft Visual Basic 5.0
Design Patterns_The Elements of Reusable Object-Oriented Software
Gamma, Helm, Johnson & Vlissides
Hitchhiker's Guide to Visual Basic & SQL Server, Sixth Edition
Inside SQL Server
The Principles Of Transaction Processing
Bernstein & Newcomer
Visual Basic Programmer's Guide To The Win32 API
Understanding ActiveX and OLE
Box, Brown, Ewald, & Sells