Class Table

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.

Column Type Key Nullable
CLSID GUID Y N
Context Identifier Y N
Component_ Identifier Y N
ProgId_Default Text N Y
Description Text N Y
AppId_ GUID N Y
FileTypeMask Text N Y
Icon_ Identifier N Y
IconIndex Integer N Y
DefInprocHandler Filename N Y
Argument Formatted N Y
Feature_ Identifier N N
Attributes Integer N Y

 

Column Information

CLSID

The Class identifier (ID) of a COM server.

Context

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.

 

Component_

External key into the Component table specifying the component whose key file provides the COM server.

ProgId_Default

The default Program ID associated with this Class ID. This column is a foreign key into the ProgID table.

Description

Localized description associated with the Class ID and Program ID.

AppId_

Application ID containing DCOM information for the associated application (string GUID). This column is a foreign key into the AppId table.

FileTypeMask

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.

Icon_

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.

IconIndex

Icon index into the icon file. This can be null.

Non-negative numbers only.

DefInprocHandler

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.

 

Argument

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.

Feature_

External key into the Feature table specifying the feature that provides the COM server.

External key to column one of the Feature table.

Attributes

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

 

Remarks

This table is referred to when the RegisterClassInfo action or the UnregisterClassInfo action are executed.

Validation

ICE03
ICE06
ICE19
ICE32
ICE36
ICE41
ICE42
ICE46
ICE66
ICE69