Interfaces

COM strictly separates interface from implementation. An interface that you specify says nothing about its implementation details. Once published, developers can implement your interface however they want, using whatever language or platform they desire. In other words, an interface specification is implementation, language, and platform independent. It is, therefore, the basic unit that supports universal interoperability and location transparency in COM. As such, interfaces are the first requirement for distributed objects.

Distributed objects can live anywhere in cyberspace. In order to send messages to one another, they must know, at a contractual level, the kinds of messages they can send. In COM, you can specify the details of these messages using interfaces. An interface is a group of related functions that forms a logical set of functionality.

For example, say you have an extremely powerful optical character recognition (OCR) engine, which can read characters at a rate of 100 pages per minute and with a 99.9 percent accuracy. In order to allow the world to use this precious power in a distributed environment, you need to provide your service by exposing an interface, which I’ll call IOcr. IOcr supports a number of related functions, including OcrImage to obtain text for a given image and OcrZone to obtain text for a selected rectangle of an image. These two functions are related, which is why they’re grouped together under a single interface, IOcr. By convention, ...

Get Learning DCOM now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.