COM or Component Object Model is (or in near future) was Microsoft's answer to CORBA. The technology which launched the Distributed Architecture comprising of Active X controls, OLE Components, Reusable Objects and Automation. COM programming reflects a major shift from the traditional C/C++ programming language and the best way to brace for this shift is to get an inside view from one of the pioneers of COM era - Dale Rogerson.
Inside COM - The Book
The book starts by tracing the history of programming as to what led to the evolution of components and the issues involved. Then it shifts to interfaces and covers in detail the QueryInterface and IUnknown pointers.
Then the lifeline of COM i.e. Reference Counting is covered alongwith AddRef and Release methods. Next on to Dynamic Linking and onto the world of HResults, GUIDs and the registry. Other major topics covered are Class Factories, Component Reuse, Automation and Multithreaded COM Programming.
There are a lot of good things going on for this book. They are:
1) We get to see the inside of a tricky technology from somebody who knows it in detail. The depth to which Rogerson goes in explaining the interfaces and reference counting and then building on it by covering the complex topics of Class Factories, Automation and Multithreading.
2) There are meaningful sections on the Memory Management and the Registry Management and how it is used in COM.
3) There are meaningful examples to correlate the theoretical concepts of COM technology.
4) Also, Dale Rogerson's presentation of content is very interesting. He presents in a very personalized manner taking us through good analogies from personal experience and from real life objects.
5) Code is provided wherever appropriate with good explanations to make it much easier to understand.
My problem with most of COM related books was it jumped into the IUnknown and cryptic code before proper explanation that a few pages into the book, I was totally lost. Inside COM, though takes a slow and steady approach and makes a perfect transition from basics to more complex topics.
Actually, it is not a con as the book itself proclaims that it is meant for beginners to intermediate users of COM. So the advanced topics like Marshalling and Smart Pointers and sending across user defined attributes etc. are kept to a minimal.
CD includes all source code from the book. Saves a lot of time as you need not type everything again to see it run. Simply load it onto VC++ and have a go at the code and start experimenting with COM. For users who are not easily connected with the internet, the COM Specification is available in the CD as well for you to go through.
About the Author
Dale Rogerson has been one of pioneering contributors to MSDN on COM related topics.
He has experience in developing internal COM Interfaces as a part of Microsoft Visual C++ development team. Dale is veteran writer of articles and books. Before joining Microsoft, he was a quality assurance hardware engineer on UNIX computers. He holds a bachelor's degree in Electrical Engineering.
1) Components -> Traces the history of component based development and hence COM. Talks about what led to development of COM and the benefits of the same. Leads you to the door of COM
2) The Interface -> Introduces the Interfaces, the benefits of interfaces and Virtual Table and its role in COM.
3) The Query Interface -> Takes a look into the magical and hysterical world of IUnknown and Query Interface.
4) Reference Counting -> All about the lifetime of a COM Component and the Reference Counting.
5) Dynamic Linking -> All about COM Dlls and spaghetti code.
6) HResults, GUIDs, the Registry and Other Details.
7) The Class Factory -> Gives the low down of COM Class factorieshe CoCreateInstance and IClassFactory.
8) Component Reuse -> Covers Containment and Aggregation using COM.
9) Making It Easier -> Wraps up the association of the class factories and the Interfaces.
10) Servers In EXEs -> The dirty details of the IDL, Marshaling and Proxy Stub are unveiled here.
11) Dispatch Interfaces and Automation -> Covers IDispatch, type libraries and COM Datatypes.
12) Multiple Threads -> Welcome to COM threading models, Apartment Threading and Free Threading.
13) Putting It All Together -> The Wrap around of all the topics and rearing them all in.
Inside COM is a Microsoft Press book published and distributed by WP Publishers. It costs Rs. 375.00 in the South Asian Edition and $34.99 at other places.
Inside COM is an excellent book to start up with COM technology. It gives a smooth start for anybody who is totally new to the technology without scaring him off. Of course, once you are done with this book you might do well to go to MSDN for more details on the low down on COM Marshalling and advanced topics in COM Threading Models.
From me a 5 star rating for this book. Highly recommended for beginners in COM.