COM Programming  «Prev  Next»
Lesson 3 What you need
Objective Discover what you need to take this course.

Com Fundamentals (Course Requirements)

Containment, Delegation and Aggregation

Software

To complete COM Fundamentals II successfully, you should acrquire Microsoft C++ from the following website visualstudio.microsoft.com/downloads. The examples in the course have been done using version Visual C++ 6.0.
No additional software beyond what you need to access this course is required.

Platform support

You can take this course on Windows, Macintosh, or Unix platforms.
As of 2019, Visual Studio 2019 can be run on Mac OS. visual-studio-2019-for-mac-is-now-available.
Out of historical reasons, Visual Studio runs best on MS Windows. However, you can choose whichever combination of 1) Operating System and 2) IDE that works best for you.

Course download

Downloadable course project files are available for this course. They include the binary files you need to complete the course project, as well as completed course project files for both Visual C++ 5 and Visual C++ 6.

Recommended Reading


The following textbook is recommended for this couse as accompanying text.
Inside Microsoft Programming
This books are not required to take this course, but do contain helpful, additional information. You can reach the Bookstore page at any time by clicking the Resources button on the toolbar.

COM Reuse

A further way of reuse that is utilized by COM is aggregation. Aggregation is reuse of a COM component. An aggregation component consists of one outer component and one or more inner components. At run time, the instance of the outer component, called outer object, is the one that deals with the clients. In turn, the outer object will make a request to the system to generate an instance of the inner component, called an inner object.
The outer object, as coded in the outer component, may give its client a pointer to an interface implemented in the inner object. This is the heart of COM aggregation, an instance of a component (the outer component) reuses an implementation made in another component (the inner component) or is contained in an instance of the inner component. The outer component may make only a part of the inner component’s interfaces available to its client.
Hauck tried to use COM aggregation to implement an architecture called Mediator-Based Architecture. This architecture requires a client to be able to access any of the inner component’s interfaces. This is clearly against the specification of aggregation.