The Class table contains COM server-related information that must be generated as a part of the product advertisement. Each row may generate a set of registry keys and values. The associated ProgId information is included in this table.
The Class table has the following columns.
The Class identifier (ID) of a COM server.
The server context for this server. Enter one of the following values for the CLSID Key.
CLSID KEY Description LocalServer Specifies the full path to a 16-bit local server application. LocalServer32 Specifies the full path to a 32-bit local server application. InprocServer Specifies the path to an in-process server DLL. InprocServer32 Specifies the path to a 32-bit in-process server and the threading model.
External key into the Component table specifying the component whose key file provides the COM server.
The default Program ID associated with this Class ID. This column is a foreign key into the ProgID table.
Localized description associated with the Class ID and Program ID.
Contains information for the HKCR (this CLSID) key.
If multiple patterns exist, they must be delimited by a semicolon, and numeric subkeys are generated: 0, 1, 2... For more information about this functionality, see GetClassFile.
The file providing the icon associated with this CLSID. The installer writes the entry in this column under the DefaultIcon key associated with the ProgId. If it is not null, the column is a foreign key into the Icon table. If it is null, the COM server provides the icon resource. Advertised file associations and shortcuts require a non-null value in this column to display properly.
Icon index into the icon file. This can be null.
Non-negative numbers only.
This field specifies the default in-process handler for the server context specified in the Context field.
This field must be Null if an InprocServer or InprocServer CLSID key appears in the Context field.
If a LocalServer or LocalServer32 CLSID key appears in the Context field, the value in the DefInprocHandler field identifies the default in-process handler.
Value Description non-numeric value The installer treats a non-numeric value in the DefInprocHandler field as a system file serving as the 32-bit in-process handler specified by the InprocHandler32 key. Null The DefInprocHandler and Argument fields can both be Null for a LocalServer or LocalServer32 CLSID key. 1 = default (system) The default is the 16-bit in-process handler specified by InprocHandler. In this case, the value of InprocHandler is the name in the registry under which the value of the default in-process handler is stored. For example, HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID. 2 = default (system) The default is the 32-bit in-process handler specified by InprocHandler32. In this case, the value of InprocHandler32 is the name in the registry under which the value of the default in-process handler is stored. For example, HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID. 3 = default (system) The default is a 16-bit or 32-bit in-process handler.
If a LocalServer or LocalServer32 CLSID key appears in the Context field, the text in this field is registered as the argument against the server and is used by COM to invoke the server. The DefInprocHandler and Argument fields can both be Null if LocalServer or LocalServer32 appears in the Context field.
Note that the resolution of properties in the Argument field is limited. A property formatted as [Property] in this field can only be resolved if the property already has the intended value when the component owning the class is installed. For example, for the argument "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and the component that owns the class.
External key into the Feature table specifying the feature that provides the COM server.
External key to column one of the Feature table.
If msidbClassAttributesRelativePath is set in this column, the bare file name can be used for COM servers. The installer registers the file name only instead of the complete path. This enables the server in the current directory to take precedence and allows multiple copies of the same component.
Attribute Decimal Hexadecimal msidbClassAttributesRelativePath 1 0x001