| Lesson 3
| What you need
| Discover what you need to take this course.
Software Platform Requirements for COM
To complete COM Fundamentals I
successfully, you will need a copy of Microsoft Visual C++ which can be obtained by downloading the
community edition of Visual C++ from Microsoft by using the following link.
The examples in the course have been done using Microsoft Visual C++. The following text is recommended as accompaniment for this course on COM.
Microsoft Visual C++ Windows Applications
No additional software beyond what you need to access this course is required.
Your computer should be running Windows 7 or Windows 10.
If you are using a Mac or Mac Book Pro then please visit the following link for additional information
Visit the course Resources page. You can reach this page at any time by clicking the Resources button on the toolbar.
These 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 technologies bring with them a great deal of new terminology, so some terms are presented here before going any deeper into the guts of ActiveX and OLE.
Although an instance of a COM object is usually referred to simply as an object, the type that identifies that object is usually referred to as a component class or coclass. Therefore, to create an instance of a COM object, you must pass the CLSID of the COM class you want to create. The chunk of data that is shared between applications is referred to as an OLE object. Applications that have the capability to contain OLE objects are referred to as OLE containers.
A document that contains one or more OLE objects is usually referred to as a compound document. Although OLE objects can be contained within a particular document, full-scale applications that can be hosted within the context of another document are known as ActiveX
documents. As the name implies, an OLE object can be linked or embedded into a compound document. Linked objects are stored in a file on disk.
With object linking, multiple containers or even the server application can link to the same OLE object on disk. When one application modifies the linked object, the modification is reflected in all the other applications maintaining a link to that object.
Embedded objects are stored by the OLE container application. Only the container application is able to edit the OLE object. Embedding prevents other applications from accessing (and therefore modifying or corrupting) your data, but it does put the burden of managing the data on the container.
Another facet of ActiveX that you will learn more about in this chapter is Automation, which is a means by which you can allow applications (called Automation controllers) to manipulate objects associated with other applications or libraries
(called an Automation server). Automation enables you to manipulate objects in another application and, conversely, to expose elements of your application to other developers.