Función RegOpenUserClassesRoot (winreg.h)

Recupera un identificador de la clave HKEY_CLASSES_ROOT para un usuario especificado. El usuario se identifica mediante un token de acceso. La clave devuelta tiene una vista del Registro que combina el contenido de la clave HKEY_LOCAL_MACHINE\Software\Classes con el contenido de las claves Software\Classes en el subárbol del Registro del usuario. Para obtener más información, consulte HKEY_CLASSES_ROOT Clave.

Sintaxis

LSTATUS RegOpenUserClassesRoot(
  [in]  HANDLE hToken,
        DWORD  dwOptions,
  [in]  REGSAM samDesired,
  [out] PHKEY  phkResult
);

Parámetros

[in] hToken

Identificador de un token de acceso principal o suplantación que identifica al usuario de interés. Puede ser un identificador de token devuelto por una llamada a las funciones LogonUser, CreateRestrictedToken, DuplicateToken, DuplicateTokenEx, OpenProcessToken o OpenThreadToken .

El identificador debe tener acceso TOKEN_QUERY. Para obtener más información, vea Derechos de acceso para objetos Access-Token.

dwOptions

Este parámetro está reservado y debe ser cero.

[in] samDesired

Máscara que especifica los derechos de acceso deseados a la clave. Se produce un error en la función si el descriptor de seguridad de la clave no permite el acceso solicitado para el proceso de llamada. Para obtener más información, consulte Derechos de acceso y seguridad de clave del Registro.

[out] phkResult

Puntero a una variable que recibe un identificador de la clave abierta. Cuando ya no necesite el identificador devuelto, llame a la función RegCloseKey para cerrarlo.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS.

Si la función no se ejecuta correctamente, el valor devuelto es un código de error distinto de cero definido en Winerror.h. Puede usar la función FormatMessage con la marca FORMAT_MESSAGE_FROM_SYSTEM para obtener una descripción genérica del error.

Comentarios

La función RegOpenUserClassesRoot permite recuperar la información de HKEY_CLASSES_ROOT combinada para los usuarios distintos del usuario interactivo. Por ejemplo, el componente de servidor de una aplicación cliente/servidor podría usar RegOpenUserClassesRoot para recuperar la información combinada de un cliente.

RegOpenUserClassesRoot produce un error si no se carga el perfil de usuario del usuario especificado. Cuando un usuario inicia sesión de forma interactiva, el sistema carga automáticamente el perfil del usuario. Para otros usuarios, puede llamar a la función LoadUserProfile para cargar el perfil del usuario. Sin embargo, LoadUserProfile puede llevar mucho tiempo, por lo que no lo llame para este propósito a menos que sea absolutamente necesario tener la información combinada del usuario HKEY_CLASSES_ROOT .

Las aplicaciones que se ejecutan en el contexto de seguridad del usuario que ha iniciado sesión de forma interactiva no necesitan usar RegOpenUserClassesRoot. Estas aplicaciones pueden llamar a la función RegOpenKeyEx para recuperar una vista combinada de la clave de HKEY_CLASSES_ROOT para el usuario interactivo.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winreg.h (incluya Windows.h)
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

LoadUserProfile

RegCloseKey

RegOpenKeyEx

Funciones del Registro

Introducción al Registro