Class テーブル

Class テーブルには、製品アドバタイズの一環で生成する必要がある COM サーバー関連の情報が含まれています。 各行により、一連のレジストリ キーと値を生成できます。 関連付けられた ProgId 情報はこのテーブルに含まれています。

Class テーブルには次の列があります。

Column 種類 キー Nullable
CLSID GUID Y N
Context Identifier Y N
Component_ Identifier Y N
ProgId_Default テキスト N Y
説明 [テキスト] N Y
AppId_ GUID N Y
FileTypeMask テキスト N Y
Icon_ Identifier N Y
IconIndex 整数 N Y
DefInprocHandler Filename N Y
引数 Formatted N Y
Feature_ Identifier N N
属性 整数 N Y

 

列情報

CLSID

COM サーバーのクラス識別子 (ID)。

Context

このサーバーのサーバー コンテキスト。 CLSID キーには、次のいずれかの値を入力します。

CLSID キー 説明
LocalServer 16 ビット ローカル サーバー アプリケーションの完全なパスを指定します。
LocalServer32 32 ビット ローカル サーバー アプリケーションの完全なパスを指定します。
InprocServer インプロセス サーバー DLL のパスを指定します。
InprocServer32 32 ビット インプロセス サーバーとスレッド モデルのパスを指定します。

 

Component_

Component テーブルの外部キー。COM サーバーを提供するキー ファイルを持つコンポーネントを指定します。

ProgId_Default

このクラス ID に関連付けられた既定のプログラム ID。 この列は、ProgID テーブルの外部キーです。

Description

クラス ID とプログラム ID に関連付けられた、ローカライズされた説明。

AppId_

関連付けられたアプリケーションの DCOM 情報を含むアプリケーション ID (文字列 GUID)。 この列は、AppId テーブルの外部キーです。

FileTypeMask

HKCR (この CLSID) キーの情報が含まれています。

複数のパターンが存在する場合は、セミコロンで区切る必要があります。また、0、1、2... という数値のサブキーは生成されます。この機能の詳細については、「GetClassFile」を参照してください。

Icon_

この CLSID に関連付けられたアイコンを提供するファイル。 この列のエントリは、インストーラーによって ProgId に関連付けられた DefaultIcon キー以下に書き込まれます。 null でない場合、この列は Icon テーブルの外部キーです。 null の場合、COM サーバーがアイコン リソースを提供します。 アドバタイズされたファイルの関連付けとショートカットを正しく表示するには、この列に null でない値を指定する必要があります。

IconIndex

アイコン ファイルのアイコン インデックス。 これは、null を指定できます。

負ではない数値のみ。

DefInprocHandler

このフィールドには、Context フィールドに指定されたサーバー コンテキストの既定のインプロセス ハンドラーを指定します。

Context フィールドに InprocServer または InprocServer CLSID キーがある場合、このフィールドは Null にする必要があります。

Context フィールドに LocalServer または LocalServer32 CLSID キーがある場合、DefInprocHandler フィールド値は既定のインプロセス ハンドラーになります。

説明
数値以外の値 インストーラーは、DefInprocHandler フィールドの数値以外の値を、InprocHandler32 キーで指定された 32 ビット インプロセス ハンドラーとして機能するシステム ファイルとして扱います。
[Null] LocalServer または LocalServer32 CLSID キーの場合、DefInprocHandler フィールドと Argument フィールドは両方とも null にすることができます。
1 = 既定値 (システム) 既定値は、InprocHandler に指定された 16 ビットのインプロセス ハンドラーです。 この場合、InprocHandler の値は、既定のインプロセス ハンドラーの値が格納されているレジストリの名前です。 たとえば、HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID です。
2 = 既定値 (システム) 既定値は、InprocHandler32 に指定された 32 ビットのインプロセス ハンドラーです。 この場合、InprocHandler32 の値は、既定のインプロセス ハンドラーの値が格納されているレジストリの名前です。 たとえば、HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID です。
3 = 既定値 (システム) 既定値は、16 ビットまたは 32 ビットのインプロセス ハンドラーです。

 

Argument

Context フィールドに LocalServer または LocalServer32 CLSID キーがある場合、このフィールドのテキストはサーバーに対する引数として登録され、サーバーを呼び出すために COM によって使われます。 Context フィールドに LocalServer または LocalServer32 がある場合、DefInprocHandler フィールドと Argument フィールドの両方を Null にすることができます。

Argument フィールドのプロパティの解決は制限されていることに注意してください。 このフィールドの [Property] という形式のプロパティは、クラスを所有するコンポーネントがインストールされたときに、そのプロパティが既に意図した値である場合にのみ解決できます。 たとえば、引数 "[#MyDoc.doc]" を正しい値に解決するには、ファイル MyDoc.doc とそのクラスを所有するコンポーネントを同じプロセスでインストールする必要があります。

Feature_

COM サーバーを提供する機能を指定する Feature テーブルの外部キー。

Feature テーブルの列 1 の外部キー。

Attributes

この列に msidbClassAttributesRelativePath が設定されている場合、COM サーバーにベア ファイル名を使用できます。 インストーラーによって、完全なパスではなくファイル名のみを登録します。 そのため、現在のディレクトリ内のサーバーが優先されます。また、同じコンポーネントの複数コピーが可能です。

属性 Decimal 16 進数
msidbClassAttributesRelativePath 1 0x001

 

解説

RegisterClassInfo アクションまたは UnregisterClassInfo アクションの実行時に、このテーブルが参照されます。

検証

ICE03
ICE06
ICE19
ICE32
ICE36
ICE41
ICE42
ICE46
ICE66
ICE69