Clase CRegKey
Esta clase proporciona métodos para manipular entradas en el Registro del sistema.
Importante
Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.
class CRegKey
Nombre | Descripción |
---|---|
CRegKey::CRegKey |
Constructor . |
CRegKey::~CRegKey |
El destructor . |
Nombre | Descripción |
---|---|
CRegKey::Attach |
Llame a este método para adjuntar un elemento HKEY al objeto CRegKey estableciendo el manipulador del miembro m_hKey en hKey . |
CRegKey::Close |
Llame a este método para liberar el manipulador del miembro m_hKey y establecerlo en NULL . |
CRegKey::Create |
Llame a este método para crear la clave especificada, si no existe como subclave de hKeyParent . |
CRegKey::DeleteSubKey |
Llame a este método para quitar la clave especificada del Registro. |
CRegKey::DeleteValue |
Llame a este método para quitar un campo de valor de m_hKey . |
CRegKey::Detach |
Llame a este método para desasociar el manipulador del miembro m_hKey del objeto CRegKey y establecer m_hKey en NULL . |
CRegKey::EnumKey |
Llame a este método para enumerar las subclaves de la clave del Registro abierta. |
CRegKey::Flush |
Llame a este método para escribir todos los atributos de la clave del Registro abierta en el Registro. |
CRegKey::GetKeySecurity |
Llame a este método para recuperar una copia del descriptor de seguridad que protege la clave del Registro abierta. |
CRegKey::NotifyChangeKeyValue |
Este método notifica al autor de la llamada los cambios realizados en los atributos o el contenido de la clave del Registro abierta. |
CRegKey::Open |
Llame a este método para abrir la clave especificada y establecer m_hKey en el manipulador de esta clave. |
CRegKey::QueryBinaryValue |
Llame a este método para recuperar los datos binarios de un nombre de valor especificado. |
CRegKey::QueryDWORDValue |
Llame a este método para recuperar los datos de tipo DWORD de un nombre de valor especificado. |
CRegKey::QueryGUIDValue |
Llame a este método para recuperar los datos de tipo GUID de un nombre de valor especificado. |
CRegKey::QueryMultiStringValue |
Llame a este método para recuperar los datos de tipo cadena múltiple de un nombre de valor especificado. |
CRegKey::QueryQWORDValue |
Llame a este método para recuperar los datos de tipo QWORD de un nombre de valor especificado. |
CRegKey::QueryStringValue |
Llame a este método para recuperar los datos de tipo cadena de un nombre de valor especificado. |
CRegKey::QueryValue |
Llame a este método para recuperar los datos del campo de valor especificado de m_hKey . Las versiones anteriores de este método ya no se admiten y se marcan como ATL_DEPRECATED . |
CRegKey::RecurseDeleteKey |
Llame a este método para quitar la clave especificada del Registro y quitar explícitamente las subclaves. |
CRegKey::SetBinaryValue |
Llame a este método para establecer el valor binario de la clave del Registro. |
CRegKey::SetDWORDValue |
Llame a este método para establecer el valor DWORD de la clave del Registro. |
CRegKey::SetGUIDValue |
Llame a este método para establecer el valor GUID de la clave del Registro. |
CRegKey::SetKeySecurity |
Llame a este método para establecer la seguridad de la clave del Registro. |
CRegKey::SetKeyValue |
Llame a este método para almacenar datos en un campo de valor especificado de una clave especificada. |
CRegKey::SetMultiStringValue |
Llame a este método para establecer el valor de cadena múltiple de la clave del Registro. |
CRegKey::SetQWORDValue |
Llame a este método para establecer el valor QWORD de la clave del Registro. |
CRegKey::SetStringValue |
Llame a este método para establecer el valor de cadena de la clave del Registro. |
CRegKey::SetValue |
Llame a este método para almacenar datos en el campo de valor especificado de m_hKey . Las versiones anteriores de este método ya no se admiten y se marcan como ATL_DEPRECATED . |
Nombre | Descripción |
---|---|
CRegKey::operator HKEY |
Convierte un objeto CRegKey en un objeto HKEY . |
CRegKey::operator = |
Operador de asignación. |
Nombre | Descripción |
---|---|
CRegKey::m_hKey |
Contiene un manipulador de la clave del Registro asociada al objeto CRegKey . |
CRegKey::m_pTM |
Puntero al objeto CAtlTransactionManager |
CRegKey
proporciona métodos para crear y eliminar claves y valores del Registro del sistema. El registro contiene un conjunto de definiciones específico de la instalación para componentes del sistema, como números de versión de software, asignaciones lógicas a físicas del hardware instalado y objetos COM.
CRegKey
proporciona una interfaz de programación para el Registro del sistema de una máquina determinada. Por ejemplo, para abrir una clave del Registro determinada, llame a CRegKey::Open
. Para recuperar o modificar un valor de datos, llame a CRegKey::QueryValue
o CRegKey::SetValue
, respectivamente. Para cerrar una clave, llame a CRegKey::Close
.
Al cerrar una clave, sus datos del Registro se escriben (vacían) en el disco duro. Este proceso puede tardar varios segundos. Si la aplicación debe escribir explícitamente datos del Registro en el disco duro, puede llamar a la función Win32 RegFlushKey
. Sin embargo, RegFlushKey
usa muchos recursos del sistema y solo se debe llamar cuando sea absolutamente necesario.
Importante
Los métodos que permiten al autor de la llamada especificar una ubicación del Registro tienen la posibilidad de leer datos que pueden no ser de confianza. Los métodos que usan RegQueryValueEx
deben tener en cuenta que esta función no controla explícitamente las cadenas terminadas en null. El código que realiza la llamada debe comprobar ambas condiciones.
Encabezado: atlbase.h
Llame a este método para adjuntar un elemento HKEY
al objeto CRegKey
estableciendo el manipulador del miembro m_hKey
en hKey
.
void Attach(HKEY hKey) throw();
hKey
Manipulador de una clave del Registro.
Attach
hará una aserción si m_hKey
no es NULL
.
Llame a este método para liberar el manipulador del miembro m_hKey
y establecerlo en NULL
.
LONG Close() throw();
Si la operación se realiza correctamente, devuelve ERROR_SUCCESS
; de lo contrario, devuelve un valor de error.
Llame a este método para crear la clave especificada, si no existe como subclave de hKeyParent
.
LONG Create(
HKEY hKeyParent,
LPCTSTR lpszKeyName,
LPTSTR lpszClass = REG_NONE,
DWORD dwOptions = REG_OPTION_NON_VOLATILE,
REGSAM samDesired = KEY_READ | KEY_WRITE,
LPSECURITY_ATTRIBUTES lpSecAttr = NULL,
LPDWORD lpdwDisposition = NULL) throw();
hKeyParent
Manipulador de una clave abierta.
lpszKeyName
Especifica el nombre de una clave que se va a crear o abrir. Este nombre debe ser una subclave de hKeyParent
.
lpszClass
Especifica la clase de la clave que se va a crear o abrir. El valor predeterminado es REG_NONE.
dwOptions
Opciones de la clave. El valor predeterminado es REG_OPTION_NON_VOLATILE
. Para ver una lista de valores posibles y sus descripciones, consulte RegCreateKeyEx
en Windows SDK.
samDesired
Acceso de seguridad de la clave. El valor predeterminado es KEY_READ | KEY_WRITE
. Para ver una lista de valores posibles y sus descripciones, consulte RegCreateKeyEx
.
lpSecAttr
Puntero a una estructura SECURITY_ATTRIBUTES
que indica si un proceso secundario puede heredar el manipulador de la clave. De forma predeterminada, este parámetro es NULL
(lo que significa que el identificador no se puede heredar).
lpdwDisposition
[out] Si no es NULL
, recupera REG_CREATED_NEW_KEY
(si la clave no existía y se creó) o REG_OPENED_EXISTING_KEY
(si la clave existía y se abrió).
Si se ejecuta correctamente, devuelve ERROR_SUCCESS
y abre la clave. Si se produce un error en el método, el valor devuelto es un código de error distinto de cero definido en WINERROR.H
.
Create
establece el miembro m_hKey
en el manipulador de esta clave.
Constructor .
CRegKey() throw();
CRegKey(CRegKey& key) throw();
explicit CRegKey(HKEY hKey) throw();
CRegKey(CAtlTransactionManager* pTM) throw();
key
Referencia a un objeto CRegKey
.
hKey
Manipulador de una clave del Registro.
pTM
Puntero al objeto CAtlTransactionManager
Crea un nuevo objeto CRegKey
. El objeto se puede crear a partir de un objeto CRegKey
existente o de un manipulador de una clave del Registro.
El destructor .
~CRegKey() throw();
El destructor libera m_hKey
.
Llame a este método para quitar la clave especificada del Registro.
LONG DeleteSubKey(LPCTSTR lpszSubKey) throw();
lpszSubKey
Especifica el nombre de la clave que se va a eliminar. Este nombre debe ser una subclave de m_hKey
.
Si la operación se realiza correctamente, devuelve ERROR_SUCCESS
. Si se produce un error en el método, el valor devuelto es un código de error distinto de cero definido en WINERROR.H
.
DeleteSubKey
solo puede eliminar una clave que no tenga subclaves. Si la clave tiene subclaves, llame a RecurseDeleteKey
en su lugar.
Llame a este método para quitar un campo de valor de m_hKey
.
LONG DeleteValue(LPCTSTR lpszValue) throw();
lpszValue
Especifica el campo de valor que se va a quitar.
Si la operación se realiza correctamente, devuelve ERROR_SUCCESS
. Si se produce un error en el método, el valor devuelto es un código de error distinto de cero definido en WINERROR.H
.
Llame a este método para desasociar el manipulador del miembro m_hKey
del objeto CRegKey
y establecer m_hKey
en NULL
.
HKEY Detach() throw();
Elemento HKEY asociado al objeto CRegKey
.
Llame a este método para enumerar las subclaves de la clave del Registro abierta.
LONG EnumKey(
DWORD iIndex,
LPTSTR pszName,
LPDWORD pnNameLength,
FILETIME* pftLastWriteTime = NULL) throw();
iIndex
Índice de la subclave. Este parámetro debe ser cero para la primera llamada y, a continuación, incrementarse para las llamadas posteriores.
pszName
Puntero a un búfer que recibe el nombre de la subclave, incluido el carácter nulo de terminación. Solo se copia en el búfer el nombre de la subclave, no la jerarquía de claves completa.
pnNameLength
Puntero a una variable que especifica el tamaño, en TCHARs
, del búfer especificado por el parámetro pszName
. El tamaño debe incluir el carácter nulo de terminación. Cuando el método vuelve, la variable a la que apunta pnNameLength
contiene el número de caracteres almacenados en el búfer. El recuento devuelto no incluye el carácter nulo de terminación.
pftLastWriteTime
Puntero a una variable que recibe la hora en la que se escribió por última vez la subclave enumerada.
Si el método se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS
. Si se produce un error en el método, el valor devuelto es un código de error distinto de cero definido en WINERROR.H
.
Para enumerar las subclaves, llame a CRegKey::EnumKey
con un índice de valor cero. Incremente el valor de índice y repita hasta que el método devuelva ERROR_NO_MORE_ITEMS
. Para más información, consulte RegEnumKeyEx
en Windows SDK.
Llame a este método para escribir todos los atributos de la clave del Registro abierta en el Registro.
LONG Flush() throw();
Si el método se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS
. Si se produce un error en el método, el valor devuelto es un código de error distinto de cero definido en WINERROR.H
.
Para más información, consulte RegEnumFlush
en Windows SDK.
Llame a este método para recuperar una copia del descriptor de seguridad que protege la clave del Registro abierta.
LONG GetKeySecurity(
SECURITY_INFORMATION si,
PSECURITY_DESCRIPTOR psd,
LPDWORD pnBytes) throw();
si
Valor de tipo SECURITY_INFORMATION
que indica la información de seguridad solicitada.
psd
Puntero a un búfer que recibe una copia del descriptor de seguridad solicitado.
pnBytes
Tamaño, en bytes, del búfer al que apunta psd
.
Si el método se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS
. Si se produce un error en el método, el valor devuelto es un código de error distinto de cero definido en WINERROR.H
.
Para obtener más información, vea RegGetKeySecurity
.
Contiene un manipulador de la clave del Registro asociada al objeto CRegKey
.
HKEY m_hKey;
Un puntero a un objeto CAtlTransactionManager
.
CAtlTransactionManager* m_pTM;
Este método notifica al autor de la llamada los cambios realizados en los atributos o el contenido de la clave del Registro abierta.
LONG NotifyChangeKeyValue(
BOOL bWatchSubtree,
DWORD dwNotifyFilter,
HANDLE hEvent,
BOOL bAsync = TRUE) throw();
bWatchSubtree
Especifica una marca que indica si se deben notificar los cambios en la clave especificada y en todas sus subclaves o solo en la clave especificada. Si este parámetro es TRUE
, el método notifica los cambios en la clave y sus subclaves. Si el parámetro es FALSE
, el método solo notifica los cambios en la clave.
dwNotifyFilter
Especifica un conjunto de marcas que controlan qué cambios se deben notificar. Este parámetro puede ser una combinación de los siguientes valores:
Valor | Significado |
---|---|
REG_NOTIFY_CHANGE_NAME |
Notificar al autor de la llamada si se agrega o elimina una subclave. |
REG_NOTIFY_CHANGE_ATTRIBUTES |
Notificar al autor de la llamada los cambios en los atributos de la clave, como la información del descriptor de seguridad. |
REG_NOTIFY_CHANGE_LAST_SET |
Notificar al autor de la llamada los cambios en un valor de la clave. Esto puede incluir agregar o eliminar un valor, o cambiar un valor existente. |
REG_NOTIFY_CHANGE_SECURITY |
Notificar al autor de la llamada los cambios en el descriptor de seguridad de la clave. |
hEvent
Identificador para un evento. Si el parámetro bAsync
es TRUE
, el método vuelve inmediatamente y los cambios se notifican mediante la señalización de este evento. Si bAsync
es FALSE
, hEvent
se omite.
bAsync
Especifica una marca que indica cómo notifica el método los cambios. Si este parámetro es TRUE
, el método vuelve inmediatamente y notifica los cambios mediante la señalización del evento especificado. Cuando este parámetro es FALSE
, el método no vuelve hasta que se ha producido un cambio. Si hEvent
no especifica un evento válido, el bAsync
parámetro no puede ser TRUE
.
Si el método se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS
. Si se produce un error en el método, el valor devuelto es un código de error distinto de cero definido en WINERROR.H
.
Nota
Este método no notifica al autor de la llamada si se elimina la clave especificada.
Para obtener más información y un programa de ejemplo, consulte RegNotifyChangeKeyValue
.
Llame a este método para abrir la clave especificada y establecer m_hKey
en el manipulador de esta clave.
LONG Open(
HKEY hKeyParent,
LPCTSTR lpszKeyName,
REGSAM samDesired = KEY_READ | KEY_WRITE) throw();
hKeyParent
Manipulador de una clave abierta.
lpszKeyName
Especifica el nombre de una clave que se va a crear o abrir. Este nombre debe ser una subclave de hKeyParent
.
samDesired
Acceso de seguridad de la clave. El valor predeterminado es KEY_ALL_ACCESS
. Para ver una lista de valores posibles y sus descripciones, consulte RegCreateKeyEx
en Windows SDK.
Si se ejecuta correctamente, devuelve ERROR_SUCCESS
; de lo contrario, devuelve un valor de error distinto de cero definido en WINERROR.H
.
Si el parámetro lpszKeyName
es NULL
o apunta a una cadena vacía, Open
abre un nuevo manipulador de la clave identificada por hKeyParent
, pero no cierra ningún manipulador abierto previamente.
A diferencia de CRegKey::Create
, Open
no creará la clave especificada si no existe.
Convierte un objeto CRegKey
en un objeto HKEY
.
operator HKEY() const throw();
Operador de asignación.
CRegKey& operator= (CRegKey& key) throw();
key
Clave que se va a copiar.
Devuelve una referencia a la nueva clave.
Este operador desasocia el elemento key
de su objeto actual y lo asigna al objeto CRegKey
en su lugar.
Llame a este método para recuperar los datos binarios de un nombre de valor especificado.
LONG QueryBinaryValue(
LPCTSTR pszValueName,
void* pValue,
ULONG* pnBytes) throw();
pszValueName
Puntero a una cadena terminada en NULL
que contiene el nombre del valor que se va a consultar.
pValue
Puntero a un búfer que recibe los datos del valor.
pnBytes
Puntero a una variable que especifica el tamaño, en bytes, del búfer al que apunta el parámetro pValue
. Cuando el método vuelve, esta variable contiene el tamaño de los datos copiados en el búfer.
Si el método se ejecuta correctamente, se devuelve ERROR_SUCCESS
. Si el método no puede leer un valor, devuelve un código de error distinto de cero definido en WINERROR.H
. Si los datos a los que se hace referencia no son de tipo REG_BINARY
, se devuelve ERROR_INVALID_DATA
.
Este método utiliza RegQueryValueEx
y confirma que se devuelve el tipo de datos correcto. Consulte RegQueryValueEx
para obtener más detalles.
Importante
Este método permite al autor de la llamada especificar cualquier ubicación del Registro, por lo que podría leer datos que pueden no ser de confianza. Además, la función RegQueryValueEx
usada por este método no controla explícitamente las cadenas terminadas en null. El código que realiza la llamada debe comprobar ambas condiciones.
Llame a este método para recuperar los datos de tipo DWORD
de un nombre de valor especificado.
LONG QueryDWORDValue(
LPCTSTR pszValueName,
DWORD& dwValue) throw();
pszValueName
Puntero a una cadena terminada en NULL
que contiene el nombre del valor que se va a consultar.
dwValue
Puntero a un búfer que recibe el elemento DWORD
.
Si el método se ejecuta correctamente, se devuelve ERROR_SUCCESS
. Si el método no puede leer un valor, devuelve un código de error distinto de cero definido en WINERROR.H
. Si los datos a los que se hace referencia no son de tipo REG_DWORD
, se devuelve ERROR_INVALID_DATA
.
Este método utiliza RegQueryValueEx
y confirma que se devuelve el tipo de datos correcto. Consulte RegQueryValueEx
para obtener más detalles.
Importante
Este método permite al autor de la llamada especificar cualquier ubicación del Registro, por lo que podría leer datos que pueden no ser de confianza. Además, la función RegQueryValueEx
usada por este método no controla explícitamente las cadenas terminadas en null. El código que realiza la llamada debe comprobar ambas condiciones.
Llame a este método para recuperar los datos de tipo GUID de un nombre de valor especificado.
LONG QueryGUIDValue(
LPCTSTR pszValueName,
GUID& guidValue) throw();
pszValueName
Puntero a una cadena terminada en NULL
que contiene el nombre del valor que se va a consultar.
guidValue
Puntero a una variable que recibe el GUID.
Si el método se ejecuta correctamente, se devuelve ERROR_SUCCESS
. Si el método no puede leer un valor, devuelve un código de error distinto de cero definido en WINERROR.H
. Si los datos a los que se hace referencia no son un GUID válido, se devuelve ERROR_INVALID_DATA
.
Este método usa CRegKey::QueryStringValue
y convierte la cadena en un GUID mediante CLSIDFromString
.
Importante
Este método permite al autor de la llamada especificar cualquier ubicación del Registro, por lo que podría leer datos que pueden no ser de confianza.
Llame a este método para recuperar los datos de tipo cadena múltiple de un nombre de valor especificado.
LONG QueryMultiStringValue(
LPCTSTR pszValueName,
LPTSTR pszValue,
ULONG* pnChars) throw();
pszValueName
Puntero a una cadena terminada en NULL
que contiene el nombre del valor que se va a consultar.
pszValue
Puntero a un búfer que recibe los datos de cadena múltiple. Una cadena múltiple es una matriz de cadenas terminadas en NULL
y terminada por dos caracteres NULL.
pnChars
Tamaño, en TCHARs
, del búfer al que apunta pszValue
. Cuando el método vuelve, pnChars
contiene el tamaño, en TCHARs
, de la cadena múltiple recuperada, incluido un carácter nulo de terminación.
Si el método se ejecuta correctamente, se devuelve ERROR_SUCCESS
. Si el método no puede leer un valor, devuelve un código de error distinto de cero definido en WINERROR.H
. Si los datos a los que se hace referencia no son de tipo REG_MULTI_SZ
, se devuelve ERROR_INVALID_DATA
.
Este método utiliza RegQueryValueEx
y confirma que se devuelve el tipo de datos correcto. Consulte RegQueryValueEx
para obtener más detalles.
Importante
Este método permite al autor de la llamada especificar cualquier ubicación del Registro, por lo que podría leer datos que pueden no ser de confianza. Además, la función RegQueryValueEx
usada por este método no controla explícitamente las cadenas terminadas en null. El código que realiza la llamada debe comprobar ambas condiciones.
Llame a este método para recuperar los datos de tipo QWORD
de un nombre de valor especificado.
LONG QueryQWORDValue(
LPCTSTR pszValueName,
ULONGLONG& qwValue) throw();
pszValueName
Puntero a una cadena terminada en NULL
que contiene el nombre del valor que se va a consultar.
qwValue
Puntero a un búfer que recibe el elemento QWORD
.
Si el método se ejecuta correctamente, se devuelve ERROR_SUCCESS
. Si el método no puede leer un valor, devuelve un código de error distinto de cero definido en WINERROR.H
. Si los datos a los que se hace referencia no son de tipo REG_QWORD
, se devuelve ERROR_INVALID_DATA
.
Este método utiliza RegQueryValueEx
y confirma que se devuelve el tipo de datos correcto. Consulte RegQueryValueEx
para obtener más detalles.
Importante
Este método permite al autor de la llamada especificar cualquier ubicación del Registro, por lo que podría leer datos que pueden no ser de confianza. Además, la función RegQueryValueEx
usada por este método no controla explícitamente las cadenas terminadas en null. El código que realiza la llamada debe comprobar ambas condiciones.
Llame a este método para recuperar los datos de tipo cadena de un nombre de valor especificado.
LONG QueryStringValue(
LPCTSTR pszValueName,
LPTSTR pszValue,
ULONG* pnChars) throw();
pszValueName
Puntero a una cadena terminada en NULL
que contiene el nombre del valor que se va a consultar.
pszValue
Puntero a un búfer que recibe los datos de cadena.
pnChars
Tamaño, en TCHAR, del búfer al que apunta pszValue
. Cuando el método vuelve, pnChars
contiene el tamaño, en TCHARs
, de la cadena recuperada, incluido un carácter nulo de terminación.
Si el método se ejecuta correctamente, se devuelve ERROR_SUCCESS
. Si el método no puede leer un valor, devuelve un código de error distinto de cero definido en WINERROR.H
. Si los datos a los que se hace referencia no son de tipo REG_SZ
, se devuelve ERROR_INVALID_DATA
. Si el método devuelve ERROR_MORE_DATA
, pnChars
es igual a cero, no el tamaño de búfer necesario en bytes.
Este método utiliza RegQueryValueEx
y confirma que se devuelve el tipo de datos correcto. Consulte RegQueryValueEx
para obtener más detalles.
Importante
Este método permite al autor de la llamada especificar cualquier ubicación del Registro, por lo que podría leer datos que pueden no ser de confianza. Además, la función RegQueryValueEx
usada por este método no controla explícitamente las cadenas terminadas en null. El código que realiza la llamada debe comprobar ambas condiciones.
Llame a este método para recuperar los datos del campo de valor especificado de m_hKey
. Las versiones anteriores de este método ya no se admiten y se marcan como ATL_DEPRECATED
.
LONG QueryValue(
LPCTSTR pszValueName,
DWORD* pdwType,
void* pData,
ULONG* pnBytes) throw();
ATL_DEPRECATED LONG QueryValue(
DWORD& dwValue,
LPCTSTR lpszValueName);
ATL_DEPRECATED LONG QueryValue(
LPTSTR szValue,
LPCTSTR lpszValueName,
DWORD* pdwCount);
pszValueName
Puntero a una cadena terminada en NULL
que contiene el nombre del valor que se va a consultar. Si pszValueName
es NULL
o una cadena vacía, ""
, el método recupera el tipo y los datos del valor predeterminado o sin nombre de la clave, si existe.
pdwType
Puntero a una variable que recibe un código que indica el tipo de datos almacenados en el valor especificado. El parámetro pdwType
puede ser NULL
si el código de tipo no es necesario.
pData
Puntero a un búfer que recibe los datos del valor. Este parámetro puede ser NULL
si los datos no son necesarios.
pnBytes
Puntero a una variable que especifica el tamaño, en bytes, del búfer al que apunta el parámetro pData
. Cuando el método vuelve, esta variable contiene el tamaño de los datos copiados en pData
.
dwValue
Datos numéricos del campo de valor.
lpszValueName
Especifica el campo de valor que se va a consultar.
szValue
Datos de cadena del campo de valor.
pdwCount
Tamaño de los datos de cadena. Su valor se establece inicialmente en el tamaño del búfer szValue
.
Si se ejecuta correctamente, devuelve ERROR_SUCCESS
; de lo contrario, devuelve un código de error distinto de cero definido en WINERROR.H
.
Las dos versiones originales de QueryValue
ya no se admiten y se marcan como ATL_DEPRECATED
. El compilador emitirá una advertencia si se usan estas formas.
El método restante llama a RegQueryValueEx
.
Importante
Este método permite al autor de la llamada especificar cualquier ubicación del Registro, por lo que podría leer datos que pueden no ser de confianza. Además, la función RegQueryValueEx
usada por este método no controla explícitamente las cadenas terminadas en null. El código que realiza la llamada debe comprobar ambas condiciones.
Llame a este método para quitar la clave especificada del Registro y quitar explícitamente las subclaves.
LONG RecurseDeleteKey(LPCTSTR lpszKey) throw();
lpszKey
Especifica el nombre de la clave que se va a eliminar. Este nombre debe ser una subclave de m_hKey
.
Si se ejecuta correctamente, devuelve ERROR_SUCCESS
; de lo contrario, devuelve un valor de error distinto de cero definido en WINERROR.H
.
Si la clave tiene subclaves, debe llamar a este método para eliminar la clave.
Llame a este método para establecer el valor binario de la clave del Registro.
LONG SetBinaryValue(
LPCTSTR pszValueName,
const void* pValue,
ULONG nBytes) throw();
pszValueName
Puntero a una cadena que contiene el nombre del valor que se va a establecer. Si aún no existe un valor con este nombre, el método lo agrega a la clave.
pValue
Puntero a un búfer que contiene los datos que se van a almacenar con el nombre de valor especificado.
nBytes
Especifica el tamaño, en bytes, de la información a la que apunta el parámetro pValue
.
Si el método se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS
. Si se produce un error en el método, el valor devuelto es un código de error distinto de cero definido en WINERROR.H
.
Este método usa RegSetValueEx
para escribir el valor en el Registro.
Llame a este método para establecer el valor DWORD
de la clave del Registro.
LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue) throw();
pszValueName
Puntero a una cadena que contiene el nombre del valor que se va a establecer. Si aún no existe un valor con este nombre, el método lo agrega a la clave.
dwValue
Datos de tipo DWORD
que se van a almacenar con el nombre de valor especificado.
Si el método se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS
. Si se produce un error en el método, el valor devuelto es un código de error distinto de cero definido en WINERROR.H
.
Este método usa RegSetValueEx
para escribir el valor en el Registro.
Llame a este método para establecer el valor GUID de la clave del Registro.
LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue) throw();
pszValueName
Puntero a una cadena que contiene el nombre del valor que se va a establecer. Si aún no existe un valor con este nombre, el método lo agrega a la clave.
guidValue
Referencia al GUID que se va a almacenar con el nombre de valor especificado.
Si el método se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS
. Si se produce un error en el método, el valor devuelto es un código de error distinto de cero definido en WINERROR.H
.
Este método usa CRegKey::SetStringValue
y convierte el GUID en una cadena mediante StringFromGUID2
.
Llame a este método para almacenar datos en un campo de valor especificado de una clave especificada.
LONG SetKeyValue(
LPCTSTR lpszKeyName,
LPCTSTR lpszValue,
LPCTSTR lpszValueName = NULL) throw();
lpszKeyName
Especifica el nombre de la clave que se va a crear o abrir. Este nombre debe ser una subclave de m_hKey
.
lpszValue
Especifica los datos que se van a almacenar. Este parámetro debe ser distinto de NULL
.
lpszValueName
Especifica el campo de valor que se va a establecer. Si aún no existe un campo de valor con este nombre en la clave, se agrega.
Si se ejecuta correctamente, devuelve ERROR_SUCCESS
; de lo contrario, devuelve un código de error distinto de cero definido en WINERROR.H
.
Llame a este método para crear o abrir la clave lpszKeyName
y almacenar los datos de lpszValue
en el campo de valor lpszValueName
.
Llame a este método para establecer la seguridad de la clave del Registro.
LONG SetKeySecurity(SECURITY_INFORMATION si, PSECURITY_DESCRIPTOR psd) throw();
si
Especifica los componentes del descriptor de seguridad que se va a establecer. El valor puede ser una combinación de los valores siguientes:
Valor | Significado |
---|---|
DACL_SECURITY_INFORMATION |
Establece la lista de control de acceso discrecional (DACL) de la clave. La clave debe tener acceso WRITE_DAC o el proceso que realiza la llamada debe ser el propietario del objeto. |
GROUP_SECURITY_INFORMATION |
Establece el identificador de seguridad (SID) del grupo principal de la clave. La clave debe tener acceso WRITE_OWNER o el proceso que realiza la llamada debe ser el propietario del objeto. |
OWNER_SECURITY_INFORMATION |
Establece el SID del propietario de la clave. La clave debe tener acceso WRITE_OWNER o el proceso que realiza la llamada debe ser el propietario del objeto o tener habilitado el privilegio SE_TAKE_OWNERSHIP_NAME . |
SACL_SECURITY_INFORMATION |
Establece la lista de control de acceso del sistema (SACL) de la clave. La clave debe tener acceso ACCESS_SYSTEM_SECURITY . La manera adecuada de obtener este acceso es habilitar el SE_SECURITY_NAME privilegio en el token de acceso actual del autor de la llamada, abrir el identificador de ACCESS_SYSTEM_SECURITY acceso y, a continuación, deshabilitar el privilegio. |
psd
Puntero a una estructura SECURITY_DESCRIPTOR
que especifica los atributos de seguridad que se van a establecer para la clave especificada.
Si el método se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS
. Si se produce un error en el método, el valor devuelto es un código de error distinto de cero definido en WINERROR.H
.
Establece los atributos de seguridad de la clave. Consulte RegSetKeySecurity
para obtener más detalles.
Llame a este método para establecer el valor de cadena múltiple de la clave del Registro.
LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue) throw();
pszValueName
Puntero a una cadena que contiene el nombre del valor que se va a establecer. Si aún no existe un valor con este nombre, el método lo agrega a la clave.
pszValue
Puntero a los datos de cadena múltiple que se van a almacenar con el nombre de valor especificado. Una cadena múltiple es una matriz de cadenas terminadas en NULL
y terminada por dos caracteres NULL.
Si el método se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS
. Si se produce un error en el método, el valor devuelto es un código de error distinto de cero definido en WINERROR.H
.
Este método usa RegSetValueEx
para escribir el valor en el Registro.
Llame a este método para establecer el valor QWORD
de la clave del Registro.
LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue) throw();
pszValueName
Puntero a una cadena que contiene el nombre del valor que se va a establecer. Si aún no existe un valor con este nombre, el método lo agrega a la clave.
qwValue
Datos de tipo QWORD
que se van a almacenar con el nombre de valor especificado.
Si el método se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS
. Si se produce un error en el método, el valor devuelto es un código de error distinto de cero definido en WINERROR.H
.
Este método usa RegSetValueEx
para escribir el valor en el Registro.
Llame a este método para establecer el valor de cadena de la clave del Registro.
LONG SetStringValue(
LPCTSTR pszValueName,
LPCTSTR pszValue,
DWORD dwType = REG_SZ) throw();
pszValueName
Puntero a una cadena que contiene el nombre del valor que se va a establecer. Si aún no existe un valor con este nombre, el método lo agrega a la clave.
pszValue
Puntero a los datos de cadena que se van a almacenar con el nombre de valor especificado.
dwType
Tipo de la cadena que se va a escribir en el Registro: REG_SZ
(valor predeterminado) o REG_EXPAND_SZ
(para cadenas múltiples).
Si el método se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS
. Si se produce un error en el método, el valor devuelto es un código de error distinto de cero definido en WINERROR.H
.
Este método usa RegSetValueEx
para escribir el valor en el Registro.
Llame a este método para almacenar datos en el campo de valor especificado de m_hKey
. Las versiones anteriores de este método ya no se admiten y se marcan como ATL_DEPRECATED
.
LONG SetValue(
LPCTSTR pszValueName,
DWORD dwType,
const void* pValue,
ULONG nBytes) throw();
static LONG WINAPI SetValue(
HKEY hKeyParent,
LPCTSTR lpszKeyName,
LPCTSTR lpszValue,
LPCTSTR lpszValueName = NULL);
ATL_DEPRECATED LONG SetValue(
DWORD dwValue,
LPCTSTR lpszValueName);
ATL_DEPRECATED LONG SetValue(
LPCTSTR lpszValue,
LPCTSTR lpszValueName = NULL,
bool bMulti = false,
int nValueLen = -1);
pszValueName
Puntero a una cadena que contiene el nombre del valor que se va a establecer. Si aún no está presente en la clave un valor con este nombre, el método lo agrega a la clave. Si pszValueName
es NULL
o una cadena vacía, ""
, el método establece el tipo y los datos del valor predeterminado o sin nombre de la clave.
dwType
Especifica un código que indica el tipo de datos al que apunta el parámetro pValue
.
pValue
Puntero a un búfer que contiene los datos que se van a almacenar con el nombre de valor especificado.
nBytes
Especifica el tamaño, en bytes, de la información a la que apunta el parámetro pValue
. Si los datos son de tipo REG_SZ
, REG_EXPAND_SZ
o REG_MULTI_SZ
, nBytes
debe incluir el tamaño del carácter nulo de terminación.
hKeyParent
Manipulador de una clave abierta.
lpszKeyName
Especifica el nombre de una clave que se va a crear o abrir. Este nombre debe ser una subclave de hKeyParent
.
lpszValue
Especifica los datos que se van a almacenar. Este parámetro debe ser distinto de NULL
.
lpszValueName
Especifica el campo de valor que se va a establecer. Si aún no existe un campo de valor con este nombre en la clave, se agrega.
dwValue
Especifica los datos que se van a almacenar.
bMulti
Si es false, indica que la cadena es de tipo REG_SZ
. Si es true, indica que la cadena es una cadena múltiple de tipo REG_MULTI_SZ
.
nValueLen
Si bMulti
es true, nValueLen
es la longitud de la cadena lpszValue
en caracteres. Si bMulti
es false, un valor de -1 indica que el método calculará la longitud automáticamente.
Si se ejecuta correctamente, devuelve ERROR_SUCCESS
; de lo contrario, devuelve un código de error distinto de cero definido en WINERROR.H
.
Las dos versiones originales de SetValue
se marcan como ATL_DEPRECATED
y ya no se deben usar. El compilador emitirá una advertencia si se usan estas formas.
El tercer método llama a RegSetValueEx
.