The last module discussed many of COM's core concepts. We studied the
binary requirements of COM methods and interfaces,
COM objects, and
IUnknown
. We also used IDL to define COM interfaces and COM objects in a type library.
This module continues the discussion of core COM concepts. We will examine how COM objects are created, COM servers, and COM clients.
At the end of this module you will be able to:
- Understand how a class factory creates instances of a COM objects
- List the COM requirements of an in-process COM server
- Describe how COM objects in an in-process server are registered
- Describe how COM clients create instances of COM objects and use COM interfaces
In later modules, we will put our knowledge of core concepts COM to work. We will use the active template library (ATL) to develop an in-process COM server, a COM object, and COM interfaces. We will also develop a COM client that uses our COM object.
COM (Component Object Model) was one of the fastest growing models in object technology prioer to COM+ and .NET technologies.
Microsoft exposes any new technology by implementing each new subsystem as a COM object. COM is the way to interact with subsystems like
- ADSI (Active Directory Services Interface),
- MTS (Microsoft Transaction Server),
- DirectX,
- Shell extensions,
- ActiveX controls,
- OLE DB (Object Linking and Embedding) and
- ActiveX scripting.
The central tenet of COM is the concept of language independence. COM based components can be built in wide variety of development environments. So it is better for windows developers to understand the core infrastructure of COM.
This understanding will enable you to easily take advantage of those new subsystems as well as make it easier for you to expose your own subsystems.