Basic COM  «Prev 

Client and Server COM Views

As developers of both the client and the server, we know that the interface pointers used by the client in the lesson's example are part of an instance of C++ class CMyComObject. However, the client does not actually see this. Instead, it sees two COM interface pointers,
  1. one to IMyComInterface and
  2. one to IYourComInterface, and not a pointer to a specific C++ class.

COM Server and Client

The COM implementer is the server, which is mostly created with C++ and uses the ATL.
COM consumer client
  1. Can use all kinds of languages such as C#, C++, and VB.
  2. Internet controls such as the ActiveX control for client and COM on the server

What Is ATL Server?

With Windows NT/2000 and Internet Information Services (IIS), Microsoft introduced a platform capable of handling the mission-critical tasks described previously. Combine IIS with (ISAPI) Internet Server Application Programming Interface development and developers are capable of getting the flexibility, control, performance, reliability, and scalability they desire. Unfortunately, ISAPI development is difficult, and there is a lot of infrastructure that the developers themselves must provide before they can even think of working on their application logic.
With Visual C++ .NET, the Visual C++ libraries team has created a library that greatly aids ISAPI development. That library is ATL Server.
The ATL Server library has been designed to be a lightweight, thin wrapper over ISAPI. As such, the library allows developers to maintain complete control over their Web applications (by plugging directly into the underlying layers wherever they deem it necessary) while also greatly reducing development time by giving developers much of the code that they would normally have to write, test, and document themselves.
The ATL Server classes are well-contained, separate parts that come together to form a complete “framework” that helps developers create ISAPI applications much more productively. The classes are built on top of one another, with high-level functionality built on top of low-level functionality, so nothing is hidden and the pieces can be easily replaced and changed without affecting other portions of the application.


1) Server's view of a COM Interfaces 2) Client's view of a COM object and interfaces
1) Server's view of a COM Interfaces 2) Client's view of a COM object and interfaces
COM Programming with Microsoft .NET