COM classes
The COM classes page defines the COM classes and other COM-related information that must be registered for your product. It is organized in a Windows Explorer-like fashion: on the left is a tree that represents the COM classes, DCOM servers, and type libraries, and on the right the contents of the currently selected server or type library are shown in a list.
COM Class #1 COM server #1 COM server #2 ...more COM servers... COM verb #1 COM verb #2 ...more COM verbs... COM Class #2 COM server #1 COM server #2 ...more COM servers... COM verb #1 COM verb #2 ...more COM verbs...
Installation and removal of COM Classes
Installation and removal of COM classes and their associated servers and verbs is controlled by components. However, in contrast to most other component-controlled installation items, COM classes, COM handlers, and COM verbs are interrelated. To ensure correct installation and removal, InstallMate therefore applies some additional rules as summarised in the following table.
Item | Not linked to component | Linked to component |
---|---|---|
COM class |
Installed if any of its servers or verbs are installed. | Installed if its component is installed, or if any of its servers or verbs are installed. This allows installation of a COM class either independently or in conjunction with its dependents. |
COM server | Installed if its executable is installed. | Installed if its component is installed. |
COM verb | Installed if its COM class is installed. | Installed if its component is installed. |
Taken together, these rules allow great flexibility during COM class registration. For example, you can:
- Make COM verb or COM server installation optional (by specifying separate components for each);
- Install different COM servers to handle different target systems (e.g., language-dependent servers);
- Associate multiple COM verbs with a COM class and allow each verb's installation to be controlled by a different component.
In the simplest case you do not link any of the COM classes, servers, or verbs to a component. In that case, the COM servers will be installed if their executables are installed; as a side effect all associated COM classes and their COM verbs are also installed automatically.
For more fine-grained control you link one or more COM servers or verbs to their own components (and through that, to features), which allows installation-time control over the COM servers and verbs that are installed. This is useful if you want to make COM servers or COM verbs subject to the customer's preferences or target system requirements.
COM class, server, and verb removal is the opposite of installation; it follows the removal of the components that caused installation in the first place, either directly or indirectly.
Installation and removal of type libraries
Installation and removal of file types and their associated file extensions and shell verbs is controlled by components. However, in contrast to most other component-controlled installation items, file types, file extensions, and shell verbs are interrelated. To ensure correct installation and removal, InstallMate therefore applies some additional rules as summarised in the following table.
Item | Not linked to component | Linked to component |
---|---|---|
Type library |
Installed if any of its versions are installed. | Installed if its component is installed, or if any of its versions are installed. This allows installation of a type library either independently or in conjunction with its dependents. |
Type library version | Installed if any of its localizations are installed. | Installed if its component is installed, or if any of its localizations is installed. This allows installation of a type library version either independently or in conjunction with its dependents. |
Type library localization | Installed if its library file is installed. | Installed if its component is installed. |
Taken together, these rules allow great flexibility during type library registration. For example, you can:
- Make file extension or shell verb installation optional (by specifying separate components for each);
- Install different executables to handle different shell verbs (e.g., one executable to view and another to edit);
- Associate multiple file extensions with a file type and allow each extension's installation to be controlled by a different component.
In the simplest case you do not link any of the file types, extensions, or shell verbs to a component. In that case, the shell verbs will be installed if their executables are installed; as a side effect all associated file types and their file extensions are also installed automatically.
For more fine-grained control you link one or more shell verbs or file extensions to their own components (and through that, to features), which allows installation-time control over the file extensions and shell verbs that are installed. This is useful if you want to make file extension or shell verb associations subject to the customer's preferences.
File type, file extension, and shell verb removal is the opposite of installation; it follows the removal of the components that caused installation in the first place, either directly or indirectly.
Related topics
COM Class, COM Server, COM Verb, DCOM Server, TypeLib, TypeLib Localization, TypeLib Version, Working with project pages