マージ モジュールの Registry テーブルの作成

レジストリ情報の種類に応じて、マージ モジュールの Registry テーブルを使用します。

TypeLib、Class、AppId、ProgId、Extension、Verb、または MIME テーブル

タイプ ライブラリ、クラス、拡張機能、動詞のために、レジストリ情報をマージ モジュールの TypeLibClassAppIdProgIdExtensionVerb、または MIME テーブルに作成します。 Registry テーブルを使用してこの情報を追加する場合、Windows 2000 では、これらのコンポーネントのシステム全体のアドバタイズを提供できません。

マージ モジュールの作成者は、次の理由により、Class テーブルを使用して登録しないことを決定できます。

  • Class テーブルによって登録するには、ファイルがそのコンポーネントの KeyPath である必要があります。 この場合は、コンポーネントの編成に許容できない変更が必要になる可能性があります。
  • COM 呼び出しによって、アドバタイズされたクラスを再インストールするインストーラーの試行がトリガーされる可能性があります。 クライアント コンピューターがユーザー インターフェイスをサポートしていない場合に再インストールがトリガーされないようにするために、作成者は、Class テーブルを使用してクラスを登録しないことを決定できます。

Registry テーブル

Registry テーブルを使用して、TypeLib、Class、AppId、ProgId、Extension、Verb、または MIME テーブルに作成できないレジストリ情報を追加します。 Windows 2000 では、Registry テーブルを使用するコンポーネントのシステム全体のアドバタイズを提供できません。

Registry テーブルを作成するときには、[#File] または [!File] 形式を使用してファイル パスを参照します。[Directory]Filename 形式は使用しません。 後者の形式は、run-from-source (ソースからの実行) インストールをサポートしていません。 前者の形式では、見つからないファイルや障害のあるコンポーネントも検出しやすくなります。

書式設定されたテキストを Registry テーブルの Key 列で使用する場合は、注意が必要です。 Windows インストーラーは、既にインストールされているコンポーネントを再インストールしないため、書式設定されたテキストをこのフィールドで使用すると、アプリケーションの削除時にレジストリ キーが残される可能性があります。

SelfReg テーブル

SelfReg テーブルの使用はお勧めしません。 自己登録を使用しない理由の一覧については、「SelfReg テーブル」を参照してください。 代わりに、可能な場合は TypeLib、Class、AppId、ProgId、Extension、Verb、MIME テーブルを使用し、他のすべての場合は Registry テーブルを使用する必要があります。