Skip to content

Essential COM

Select Format

Select Condition ThriftBooks Help Icon

Recommended

Format: Paperback

Condition: Very Good

$6.29
Save $48.70!
List Price $54.99
Almost Gone, Only 1 Left!

Book Overview

All Windows programmers take advantage of features made possible by COM and DCOM, but they generally do so at arm's length through an intermediate programming technology such as ActiveX. Offering... This description may be from another edition of this product.

Customer Reviews

5 ratings

[in, unique] IBindCtx *pbc

The basic idea of COM as a binary standard that supports querying for supported interfaces and object lifetime through reference counting could hardly be simpler: five pages, End of book! So why does it turn out to be so complicated in practice? Evil enters in various ways and threatens to become overwhelming: the need to work efficiently with remote servers across a long wire, to implement effective security, handle various threading models (those wretched apartments!), marshaling (ugh!), proxies and stubs (yuck!), the need to just plain find things such as class ID's in the registry (another palpable evil), global interface tables, problems of COM identity, and so on and so on. Control of object lifetime through reference counting turns out to be a quagmire -- which references should be counted, external or internal or both, or does it just depend? Thanks to smart pointers retrofitted to legacy applications, aggregation, and the niceties of internal and external QI, it can be a nightmare to find and remove reference counting bugs. To top it all off, COM doesn't even accurately report reference counts -- only zero and nonzero can be trusted. Because of all this, no hard and fast rules for good COM programming can be given, just general guidelines that won't always apply. What started out as simple and elegant gets twisted all out of shape. Nevertheless, although what we have now is truly disgusting, it either works or can be made to work, more or less. It's not Box's fault that modern software development has become a can of worms, and although it would be an interesting exercise to reexamine Windows, say, -- or Unix, or whatever -- from the ground up and rebuild it "optimally" with no regard for back-compatibility, no one is likely to do this. Box starts out with a beautiful discussion, the best I have seen, of the underlying rationale behind COM. You can think of Chapter One as COM before the Fall. The rest of the book deals with COM after the Fall -- that is, how COM is forced to deal with the actual world into which it was born through no fault of its own. He gives an advanced, top-down view of the subject. To understand the book you will need a solid grasp of multiple inheritance and of C++ in general and should have had some prior experience with COM, otherwise you'll find the more advanced topics unmotivated and undigestible. As with any nontrivial programming paradigm, if you already have the kind of first-hand experience that's been gained the hard way by running afoul of a variety of pitfalls, you will be ripe and ready for a treatment at the level of Box's book. If you are not ready for this book there are other places to start, such as Grimes' book called DCOM Programming (Wrox Press). For instance, Box assumes the reader knows what marshaling does; he never explains what goes on inside the wire. The closest he comes is in the listing on p. 222 for the IRpcChannelBuffer, where the comment "payload goes here" appears af

Cornerstone COM Text

I bought Essential COM about two years ago, and have since purchased and read other COM texts. I can say with certainty that if you want to start learning COM, this should be your first or second book on the topic. However, don't expect to be able to run out and start working with COM after reading the first few chapters. This is a very theory-oriented book aimed at developing a thorough understanding of COM, with few code-oriented examples that are used for explanation rather than demonstration purposes. The writing can be dense at times, but this is more a factor of the book's topic than the author's writing style.The text requires knowledge of C++ and a desire to learn something new. If you buy this book and don't understand what you're reading, try reading Chappell's Understanding ActiveX and OLE before returning to Essential COM.But by all means, this book is one of the best treatments of COM available.

Excellent for the intermediate COM developer

Although not the easiest book to read, Essential COM contains more information pound-for-pound than any other COM book. The book covers C++ COM, not ATL, and provides the reader with an intensive treatment of the underpinnings and rationale behind the COM specification. Some of the more obscure parts of COM are examined, and can be confusing to the novice COM programmer (Chapters 3 and 5 will drive you nuts), but a proper understanding of all the materials will definitely give you a leg up. If you are looking for lots of programming examples or a cut-and-paste guide to beginning COM, this is not it, but if you want an insider's view, give this book a try.

Explains COM clearly and thoroughly (all in due time)

This is the best COM book I've read so far. Don Box has an amazing mind. He's able to organize and express this complex body of knowledge in a way that makes complete sense. There are two problems that I hope he will address in a later version.One is that the book would benefit from a more "drill-down" approach, presenting the basic, most common usage first, and then drilling down into the esoterica. For example, when talking about class objects, I think it would be most useful to talk about them first in their role as implementors of IClassFactory, which is their most common function, and then tell us about all of the other cool stuff you can do with them if you want. If the book did a better job of formalizing what was most important and what was of secondary importance, making liberal use of multi-level headings, I think it would be a lot more usable as a reference.Second, the real-world examples are of limited use. In chapter 5 Don states, "Occasionally, it is necessary to marshal interfaces explicitly from one apartment to another outside the context of an activation request or method call." Why? I'm sure there's a good answer, possibly somewhere in this book, but I can't find it anywhere near this statement. He just goes on to explain how to do it, without explaining why.Things like this make it a bit frustrating. But this is without a doubt the most thorough and lucid introduction to COM I've ever read. And as other readers have mentioned, the first chapter is a triumph in itself, finally explaining the true foundation of COM in a way that cuts through the confusion.

Superlative book - But understand where it fits on the shelf

I bought and read this book about 16 months ago. I've re-read it twice since then. This is not because I didnt understand the book the first time -- its because there are so many layers of information in the book.Some authors seem to be able to write 20 books on a subject -- You've seen the authors that do 3 C++ books a year, or 3 COM books a year. This is great for publishers, and the successful "serial author". (I am aware that Stroustrup has 2 other C++ books and Don has taken part in Effective COM -- but they're not on the same subject material)Don takes a different approach. He's only going to write one COM book and do it properly. He does. This book is the most dense in terms of giving solid information to help you understand whats going on. Whats going on when your product is about to ship and there's only 3 "showstopper" bugs left. Thats when understanding it properly matters. It also matters when you want to design something. These details also matter to VB projects when they ship, or when they're being designed.I generally read any COM book I see sitting around. So I've probably read about 6000 pages on COM. I've seen about 1000 wizard screenshots. I've seen 40 analogy-riddled COM explanations. I've seen "cute and funny" examples. This is the only one I've bought and I've never regretted it or covetted my neighbour's book.Similarly with C++ books, there are authors who sell a rehash of the same material 20 times. I read any of these lying about too -- another 10,000 pages with 50 useful per book. I only _bought_ Stroustrup.It's not (nor was it intended to be) _the_ tutorial. It doesnt have screenshots. Its not 'funny'. Depending on your initial level of knowledge, you should probably read one or two other books such as Inside COM (or intros to other books of that ilk) -- in fact the best primers are probably articles in MSDN. Use these as a primer as necessary. When you've read 1500 pages of these, come back to Essential COM, and you'll have any gaps in your knowledge filled in.If I was allowed to own only 3 books on C++/COM development, they would be Stroustrup, Box and Effective COM. (Although Mr Bunny's Guides would come close :)Finally, would people, regardless of positive or negative opinions held, please be kind enough to give their identity -- IMHO it invalidates your opinion if you're not willing to stand behind it.
Copyright © 2023 Thriftbooks.com Terms of Use | Privacy Policy | Do Not Sell/Share My Personal Information | Cookie Policy | Cookie Preferences | Accessibility Statement
ThriftBooks® and the ThriftBooks® logo are registered trademarks of Thrift Books Global, LLC
GoDaddy Verified and Secured