Category: COM (Component Object Model)

COM (Component Object Model) is a technology from Microsoft, which is designed to create software based on interacting components. This category includes articles about using COM technology or solving problems related to its use.


COM technology is widely used to link components of Windows operating systems. In particular, Shell subsystem uses COM to load suitable editors for a file with a particular extension. OLE (Object Linking and Embedding) is based on COM and allows you to implement the binding and integration of objects from other programs in compound documents (for example, Microsoft Word and Visio documents). OLE control elements were created based on COM technology (OLE Controls, or OCX controls); they represent reusable GUI interface elements (later renamed into ActiveX controls).


ATL / WTL library templates and / or MFC library classes are used for development of applications that use COM in C ++. ATL (Active Template Library) was and remains the most popular library for creating COM components. It contains templates that simplify the creation of the required interfaces for a component and primitive templates used in COM.

Fixing asynchronous COM bug at application startup

My article “Asynchronous COM for Windows Vista and Win7 — memory overwrite bug” is describing an error that appeared in these operation systems. Reliable work of the asynchronous COM was extremely important for the software that was under development (and for sale as well by this time). Multiple appeals to Microsoft with a request to fix

Asynchronous COM for Windows Vista and Win7 – memory overwrite bug

COM technology (Component Object Model) has been developing for almost twenty years and work of the vast majority of system components is still based on it. I think that this will continue in the nearest future. Asynchronous COM is an option of using this technology. Some applications of the early 2000s used it to build

API DLL or COM object? Creating a COM object without registration

One of the major questions that an architector might face creating a multi-component project is how the components will interact. The mechanism of interaction could consist of COM interfaces usage and traditional import / export of functions and classes if we are talking about components that export a set of functions (in fact libraries). The way