バージョンに依存しないProgIDキー

ProgID を CLSID に関連付けます。 オブジェクトアプリケーションの最新バージョンを判別するために使用します。

レジストリ エントリ

HKEY_LOCAL_MACHINE\SOFTWARE\Classes
   <version-independent ProgID>
      CurVer = ProgID

解説

HKEY_LOCAL_MACHINE\SOFTWARE\Classes キーは、以前のバージョンの COM との互換性のために保持されていた HKEY_CLASSES_ROOT キーに対応します。

<バージョンに依存しないProgID>の形式は<program>.<component>で、ピリオドで区切られ、スペースは使用せず、バージョン番号は使用しません。 バージョンに依存しないProgIDは、ProgIDと同様に、人間が判読できる名前で登録できます。

ProgIDは、クラスの最新バージョンのProgIDです。

アプリケーションでは、バージョンに依存しないProgIDキーの下に、バージョンに依存しないプログラム識別子を登録する必要があります。 バージョンに依存しないProgIDは、アプリケーションのクラスを参照し、バージョン間では変更されません。代わりに、Microsoft Word文書など、すべてのバージョンで一定のままになります。 マクロ言語で使用され、現在インストールされているアプリケーションのクラスのバージョンを参照します。 バージョンに依存しないProgIDは、オブジェクトアプリケーションの最新バージョンの名前に対応している必要があります。

たとえば、コンテナーアプリケーションがツールバーボタンを含むグラフまたは表を作成する場合は、バージョンに依存しないProgIDが使用されます。 このような状況では、アプリケーションはバージョンに依存しないProgIDを使用して、必要なオブジェクトアプリケーションの最新バージョンを特定できます。

バージョンに依存しないProgIDは、アプリケーションコードによってのみ格納および管理されます。 バージョンに依存しないProgIDが指定されている場合、CLSIDFromProgID関数は現在のバージョンのCLSIDを返します。

CLSIDFromProgIDProgIDFromCLSIDを使用して、これら2つの表現を変換できます。

IOleObject :: GetUserTypeまたはOleRegGetUserTypeを使用して、識別子を表示可能な文字列に変更できます。

カスタムハンドラーが使用されていない場合は、次の例に示すように、エントリをOLE32に設定する必要があります。

HKEY_CLASSES_ROOT\CLSID\{00000402-0000-0000-C000-000000000046}
   InprocHandler = ole32.dll

CLSIDFromProgID

ProgIDFromCLSID

<ProgID>キー