HKEY_CLASSES_ROOT キー
HKEY_CLASSES_ROOT (HKCR) キーには、ファイル名拡張子の関連付けと、ProgIDs、CLSID、IIDなどの COM クラス登録情報が含まれます。 これは主に、16 ビット Windows のレジストリとの互換性を目的としています。
クラス登録とファイル名拡張子の情報は、HKEY_LOCAL_MACHINE キーと HKEY_CURRENT_USER キーの両方に格納されます。 HKEY_LOCAL_MACHINE\Software\Classes キーには、ローカル コンピューター上のすべてのユーザーに適用できる既定の設定が含まれています。 HKEY_CURRENT_USER\Software\Classes キーには、対話型ユーザーにのみ適用される設定が含まれています。 HKEY_CLASSES_ROOT キーは、これら 2 つのソースからの情報をマージするレジストリのビューを提供します。 HKEY_CLASSES_ROOT では、以前のバージョンの Windows 用に設計されたアプリケーション用に、このマージされたビューも提供されます。
ユーザー固有の設定は、既定の設定よりも優先されます。 たとえば、既定の設定では、.doc ファイルを処理する特定のアプリケーションを指定できます。 ただし、ユーザーはレジストリで別のアプリケーションを指定することで、この設定をオーバーライドできます。
RegOpenKeyEx や RegQueryValueEx などのレジストリ関数、HKEY_CLASSES_ROOT キーを指定できます。 対話型ユーザー アカウントで実行されているプロセスからこれらの関数を呼び出すと、HKEY_LOCAL_MACHINE\Software\Classes の既定の設定が、HKEY_CURRENT_USER\Software\Classesの対話型ユーザーの設定とマージされます。 これらの設定をマージする方法の詳細については、「HKEY_CLASSES_ROOT の結合ビュー参照してください。
対話型ユーザーの設定を変更するには、HKEY_CLASSES_ROOTではなく、HKEY_CURRENT_USER\Software\Classes に変更を保存します。
既定の設定を変更するには、HKEY_LOCAL_MACHINE\Software\Classesの下に変更を保存します。 HKEY_CLASSES_ROOTのキーにキーを書き込む場合、HKEY_LOCAL_MACHINE\Software\Classesに情報が格納されます。 HKEY_CLASSES_ROOTの下のキーに値を書き込み、そのキーが既に HKEY_CURRENT_USER\Software\Classesの下に存在する場合、システムは HKEY_LOCAL_MACHINE\Software\Classesの下ではなくそこに情報を格納します。
対話型ユーザー以外のセキュリティ コンテキストで実行されているプロセスは、レジストリ関数で HKEY_CLASSES_ROOT キーを使用しないでください。 代わりに、このようなプロセスは、既定の設定にアクセスするために HKEY_LOCAL_MACHINE\Software\Classes キーを明示的に開くことができます。 HKEY_LOCAL_MACHINE\Software\Classes の内容を指定したユーザーの設定とマージするレジストリ キーを開くには、これらのプロセスで RegOpenUserClassesRoot 関数を呼び出すことができます。 たとえば、クライアント 偽装 スレッドは、偽装するクライアントのマージされたビューを取得する必要がある場合 RegOpenUserClassesRoot を呼び出すことができます。 指定 ユーザーのユーザー プロファイルが読み込まれていない場合、RegOpenUserClassesRoot は失敗します。 ログオン時に、対話型ユーザーのプロファイルが自動的に読み込まれます。 他のユーザーの場合は、LoadUserProfile 関数を呼び出して、ユーザーのプロファイルを明示的に読み込む必要があります。
アプリケーションが管理者権限で実行され、ユーザー アカウント制御が無効になっている場合、COM ランタイムはユーザーごとの COM 構成を無視し、コンピューターごとの COM 構成にのみアクセスします。 管理者権限を必要とするアプリケーションでは、コンピューターごとの COM 構成ストア (HKEY_LOCAL_MACHINE\Software\Classes) へのインストール時に依存 COM オブジェクトを登録する必要があります。 詳細については、「AC: UAC: COM Per-User Configuration」を参照してください。
Windows Server 2003 および Windows XP/2000: アプリケーションは、依存する COM オブジェクトを、コンピューターごとまたはユーザーごとの COM 構成ストア (HKEY_LOCAL_MACHINE\Software\Classes または HKEY_CURRENT_USER\Software\Classes) に登録できます。
関連トピック