DCOM -- the Distributed Component Object Model -- is a recent upgrade of a time-honored and well-tested technology promoted by Microsoft for distributed object programming. Now that components are playing a larger and larger part in Windows 98, Windows NT 4.0, and Windows 2000, every Windows programmer will want to understand the technology. DCOM competes with CORBA as a rich and robust method for creating expandable and flexible components, allowing you to plug in new parts conveniently and upgrade without the need for code changes to every program that uses your component.This book introduces C++ programmers to DCOM and gives them the basic tools they need to write secure, maintainable programs. While using Visual C++ development tools and wizards where appropriate, the author never leaves the results up to magic. The C++ code used to create distributed components and the communications exchanged between systems and objects are described at a level where the reader understands their significance and can use the insights for such tasks as debugging and improving performance.The first few chapters explain both the remote procedure calls that underlie DCOM's communication and the way DCOM uses C++ classes. Readers become firmly grounded in the relation between components, classes, and objects, the ways objects are created and destroyed, how clients find servers, and the basics of security and threading.After giving you a grounding in how DCOM works, this book introduces you to the Microsoft tools that make it all easy. By showing what really happens each time you choose a button in a wizard, Learning DCOM makes it possible for you to choose what you need.This book is for anyone who wants to understand DCOM. While thoroughly practical in its goals, it doesn't stint on the background you need to make your programs safe, efficient, and easy to maintain.Topics include:
- MIDL (Microsoft Interface Definition Language, the language for defining COM interfaces)
- COM error and exception handling
- Custom, dispatch, and dual interfaces
- Standard and custom factories
- Management of in-process versus out-of-process servers
- Distributed memory management
- Pragmatic explanation of the DCOM wire protocol
- Standard, custom, handler, and automation marshaling
- Multithreading and apartments
- Security at the system configuration and programming level
- Active Template Library (ATL), ATL wizards -- and what they don't do
- Writing a component that can be invoked from Visual Basic
- Techniques for using distributed components
- Creating an ActiveX control and embedding it in a Web client
- Authentication and the use of Windows NT security features
- Techniques for merging marshaling code
- Connection and distributed events management
- An introduction to COM+ features