Skip to Content
Learning DCOM
book

Learning DCOM

by Thuan L. Thai
April 1999
Intermediate to advanced
502 pages
15h 5m
English
O'Reilly Media, Inc.
Content preview from Learning DCOM

Transparency

When a client invokes a method on a remote object’s interface, it doesn’t know, and doesn’t have to know, where the target object exists. Yet the method invocation will find its way to the target object. This is the idea of location transparency, and it is one of the beauties of COM. As you have seen, the marshaling provided automatically by RPC is usually sufficient to pass arguments from a client to a server component. COM needs a little help, however, in one situation: where you try to pass an interface pointer as an argument so that the same object can be used by both a client and a server.

When you pass data between two different execution contexts (e.g., two processes) in COM, it is said to go from one apartment to another. In this section, assume that a client and a server occupy separate apartments and you have to get the interface pointer between them.

COM marshals an interface pointer in one apartment (the exporting apartment) and unmarshals it in another (the importing apartment). If a client invokes an interface method implemented by a particular object to obtain an interface pointer, as indicated by the [out] attribute in the following method signature, COM, on the object side, will marshal the interface pointer into a chunk (series of bytes) using the CoMarshalInterface API function.

On the client side, COM will unmarshal the chunk into a valid interface pointer, using the CoUnmarshalInterface API function.

HRESULT TakeOcr([out] IOcr **ppOcr);

The same can ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Learning Go

Learning Go

Jon Bodner
Effective C

Effective C

Robert C. Seacord
Learning Algorithms

Learning Algorithms

George Heineman

Publisher Resources

ISBN: 9781449307011Errata Page