COM Class

A COM Class object represents a COM class registration or unregistration. It is used to associate COM class identifiers with the server (DLL or .exe executable) that implements the COM class. A COM Class object contains subordinate COM Server and COM Verb objects that specify the associated servers and the user-visible actions, respectively. Registration or unregistration of a COM class is controlled by its component and its servers and verbs.

Situation InstallMate
Not linked to a component The COM class is registered if any of its servers or verbs are registered.
Linked to a component The COM class is registered if its component is installed, or if any of its servers or verbs are registered.

InstallMate allows you to register a COM class either implicitly, if one of its dependents is registered, or explicitly, for example if it doesn't have any dependents. See COM classes for more information.

Tip: Many DLL-based COM servers have a DllRegisterServer entry point that will register the COM class(es) implemented by the server. If your COM server implements that entry point, you might find it more convenient to register the COM server by specifying Use DllRegisterServer in the file's Registration attribute. In that case, you don't need to register the COM class or its servers and verbs separately.

Attributes

The following attributes and options are available.

Attribute Description
CLSID Enter the COM class identifier, which is a GUID (Globally Unique IDentifier).
Display name Enter the user-visible name of the COM class.
Version Enter the version number of the COM class implementation in the format major.minor.
ProgID Enter the ProgID for the COM class. The ProgID is the symbolic name of the COM class, usually in the format ProductName.ClassName.Version. It is used to uniquely identify (this version of) the class. The ProgID may be up to 39 characters long, may not contain punctuation except for the period ('.'), and must not start with a digit.
Unversioned ID

Enter the unversioned ProgID of the COM class, or leave empty if the class only has one ProgID. The unversioned ProgID is typically used to provide a version-independent identifier for the class; it contains a reference to the version-specific ProgID that defines the actual class information.

The Unversioned ProgID typically uses the format ProductName.ClassName, i.e., the ProgID minus the version number. You should only define the Unversioned field if the ProgID field contains the ProgID of the current version of the COM class; for older versions of the ProgID, you should leave Unversioned empty.

Control Check this box to mark the COM class as an ActiveX control; clear it if the class is not an ActiveX control.
Insertable Check this box to mark the COM class as an insertable object class (used by COM-aware container applications); clear it if the COM class does not represent an insertable object class.
Programmable Check this box to mark the COM class as an ActiveX component; clear it if the class is not an ActiveX component.
Short name Enter the short user-visible name of the COM class, which is used in context menus.
Application Enter the user-visible name of the application that implements the COM class, which is used in the Paste Special dialog box of COM-aware applications.
Icon... Click this button to open the Select Icon dialog box that allows you to specify an icon for the COM class. If you don't specify an icon, the class will use a generic icon provided by Windows.
Reset icon

Click this box to remove the COM class icon and revert to the generic icon.

Note: InstallMate will display the "No icon" icon if no icon is associated with the class.

DCOM AppID Enter the GUID of the DCOM server that hosts the COM class in distributed environments, or leave empty if the class does not have a DCOM host. If you do define the AppID, you probably also want to register the DCOM Server itself.
Typelib ID Enter the GUID of the type library that describes the COM class, or leave empty if you don't want to link the COM class to a type library. If you do define the type library GUID, you probably also want to register the TypeLib itself.

Related topics

COM classes, Working with attribute panes