The Component Object Model
Component Object Model (COM) is a software specification developed by Microsoft that explicitly defines how binary software components may interact with one another. COM also defines the format of compiled machine code, irrespective of the programming language used to create a COM component. Since COM is a binary standard, it removes compatibility barriers normally associated with the development of reusable software components—at least for Windows users. The rationale behind component software is to extend the functionality of software, without writing a lot of code, by "plugging-in" small elements of software.
COM implements object-oriented principles by encapsulating object-oriented, reusable components as binary entities, rather than as source code stored in language-specific class libraries. COM does this in a way that permits developers to update COM components without breaking the applications that use them.
Interface-based programming using objects
In COM, the only way to manipulate data associated with an object is through an interface to methods in the object. Since developers can add new functionality without breaking legacy applications, COM overcomes compatibility issues traditionally associated with DLLs.
When a COM component is updated to add additional or improved functionality, a new interface is defined that provides access to new methods (functions) in the object. Programs written for the original interface continue to work, since the updated COM component still supports the original, unchanged set of interfaces and methods as it did before, in addition to its new interfaces and methods.
Once the public interface is defined, it can't be changed later. Instead, COM component developers define a new interface that provides access to methods in the component. Since each set of methods belong to one interface, dramatic changes can be made between releases of COM components without incurring compatibility problems.
Note: CIC 2020 R1 was built using Microsoft VisualStudio 2019. Previous CIC releases were built using earlier releases of VisualStudio. Because of this, binary files from older releases are potentially incompatible with CIC 2020 R1, and Genesys does not support their use with CIC 2020 R1. Any custom tools built with the CIC Designer COM API using an older compiler must be recompiled for use in CIC 2020 R1 and higher.