HKEY_CLASSES_ROOT キー
HKEY_CLASSES_ROOT (HKCR) キーには、ProgID、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構成」を参照してください。
Windows Server 2003 および Windows XP/2000: アプリケーションは、依存 COM オブジェクトをコンピューターごとまたはユーザーごとの COM 構成ストア (HKEY_LOCAL_MACHINE\Software\Classes または HKEY_CURRENT_USER\Software\Classes) に登録できます。
関連トピック