Partilhar via


CRegKey Classe

Observação

A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Esta classe fornece métodos para manipular entradas no registo do sistema.

Importante

Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas no Windows Runtime.

Sintaxe

class CRegKey

Membros

Construtores Públicos

Nome Description
CRegKey::CRegKey O construtor.
CRegKey::~CRegKey O destruidor.

Métodos Públicos

Nome Description
CRegKey::Attach Chame este método para anexar um HKEY ao CRegKey objeto, definindo o m_hKey handle do membro para hKey.
CRegKey::Close Chame este método para libertar o m_hKey handle do membro e defini-lo para NULL.
CRegKey::Create Chame este método para criar a chave especificada, se esta não existir como subchave de hKeyParent.
CRegKey::DeleteSubKey Chame este método para remover a chave especificada do registo.
CRegKey::DeleteValue Chame este método para remover um campo de valores de m_hKey.
CRegKey::Detach Chame este método para separar a m_hKey alça de membro do CRegKey objeto e defina m_hKey para NULL.
CRegKey::EnumKey Chame este método para enumerar as subchaves da chave aberta do registo.
CRegKey::Flush Chame este método para escrever todos os atributos da chave do registo aberto no registo.
CRegKey::GetKeySecurity Chame este método para recuperar uma cópia do descritor de segurança que protege a chave do registo aberto.
CRegKey::NotifyChangeKeyValue Este método notifica o chamador sobre alterações nos atributos ou conteúdos da chave de registo aberto.
CRegKey::Open Chame este método para abrir a chave especificada e defina m_hKey para a alavanca dessa chave.
CRegKey::QueryBinaryValue Chame este método para recuperar os dados binários de um nome de valor especificado.
CRegKey::QueryDWORDValue Chame este método para recuperar os DWORD dados de um nome de valor especificado.
CRegKey::QueryGUIDValue Chame este método para recuperar os dados GUID para um nome de valor especificado.
CRegKey::QueryMultiStringValue Chame este método para recuperar os dados multistring para um nome de valor especificado.
CRegKey::QueryQWORDValue Chame este método para recuperar os QWORD dados de um nome de valor especificado.
CRegKey::QueryStringValue Chame este método para recuperar os dados da cadeia para um nome de valor especificado.
CRegKey::QueryValue Chame este método para recuperar os dados do campo de valores especificado de m_hKey. Versões anteriores deste método já não são suportadas e são marcadas como ATL_DEPRECATED.
CRegKey::RecurseDeleteKey Chame este método para remover a chave especificada do registo e remover explicitamente quaisquer subchaves.
CRegKey::SetBinaryValue Chame este método para definir o valor binário da chave do registo.
CRegKey::SetDWORDValue Chame este método para definir o DWORD valor da chave do registo.
CRegKey::SetGUIDValue Chame este método para definir o valor GUID da chave do registo.
CRegKey::SetKeySecurity Chame este método para definir a segurança da chave do registo.
CRegKey::SetKeyValue Chame este método para armazenar dados num campo de valor especificado de uma chave especificada.
CRegKey::SetMultiStringValue Chame este método para definir o valor multistring da chave do registo.
CRegKey::SetQWORDValue Chame este método para definir o QWORD valor da chave do registo.
CRegKey::SetStringValue Chame este método para definir o valor da cadeia da chave do registo.
CRegKey::SetValue Chame este método para armazenar dados no campo de valores especificado de m_hKey. Versões anteriores deste método já não são suportadas e são marcadas como ATL_DEPRECATED.

Operadores Públicos

Nome Description
CRegKey::operator HKEY Converte um CRegKey objeto em um HKEY.
CRegKey::operator = Operador de atribuição.

Membros de Dados Públicos

Nome Description
CRegKey::m_hKey Contém um handle da chave de registo associada ao CRegKey objeto.
CRegKey::m_pTM Apontador para CAtlTransactionManager objeto

Observações

CRegKey fornece métodos para criar e eliminar chaves e valores no registo do sistema. O registo contém um conjunto específico de definições para componentes do sistema, como números de versão do software, mapeamentos lógico-físico do hardware instalado e objetos COM.

CRegKey fornece uma interface de programação para o registo do sistema para uma dada máquina. Por exemplo, para abrir uma chave de registo específica, chame CRegKey::Open. Para recuperar ou modificar um valor de dados, chame CRegKey::QueryValue ou CRegKey::SetValue, respetivamente. Para fechar uma chave, ligue CRegKey::Closepara .

Quando fecha uma chave, os seus dados do registo são escritos (limpos) no disco rígido. Este processo pode demorar vários segundos. Se a sua aplicação tiver de escrever explicitamente dados do registo no disco rígido, pode chamar a RegFlushKey função Win32. No entanto, RegFlushKey consome muitos recursos do sistema e só deve ser chamado quando absolutamente necessário.

Importante

Quaisquer métodos que permitam ao chamador especificar uma localização de registo têm o potencial de ler dados que não são de confiança. Os métodos que utilizam devem RegQueryValueEx ter em conta que esta função não trata explicitamente cadeias que são terminadas por nulo. Ambas as condições devem ser verificadas pelo código de chamada.

Requerimentos

Cabeçalho:atlbase.h

CRegKey::Attach

Chame este método para anexar an HKEY ao CRegKey objeto, definindo o m_hKey handle do membro para hKey.

void Attach(HKEY hKey) throw();

Parâmetros

hKey
O handle de uma chave de registo.

Observações

Attach afirmará se m_hKey não for não-NULL.

CRegKey::Close

Chame este método para libertar o m_hKey handle do membro e defini-lo para NULL.

LONG Close() throw();

Valor de retorno

Se for bem-sucedido, retorna ERROR_SUCCESS; caso contrário, retorna um valor de erro.

CRegKey::Create

Chame este método para criar a chave especificada, se esta não existir como subchave 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();

Parâmetros

hKeyParent
A pega de uma chave aberta.

lpszKeyName
Especifica o nome de uma chave a ser criada ou aberta. Este nome deve ser uma subchave de hKeyParent.

lpszClass
Especifica a classe da chave a ser criada ou aberta. O valor padrão é REG_NONE.

dwOptions
Opções para a chave. O valor predefinido é REG_OPTION_NON_VOLATILE. Para uma lista de valores e descrições possíveis, veja RegCreateKeyEx no SDK do Windows.

samDesired
O acesso de segurança para a chave. O valor predefinido é KEY_READ | KEY_WRITE. Para uma lista de valores e descrições possíveis, veja RegCreateKeyEx.

lpSecAttr
Um apontador para uma SECURITY_ATTRIBUTES estrutura que indica se a alavanca da chave pode ser herdada por um processo filho. Por defeito, este parâmetro é NULL (ou seja, o handle não pode ser herdado).

lpdwDisposition
[fora] Se não-NULL, recupera ou REG_CREATED_NEW_KEY (se a chave não existiu e foi criada) ou REG_OPENED_EXISTING_KEY (se a chave existiu e foi aberta).

Valor de retorno

Se for bem-sucedido, retorna ERROR_SUCCESS e abre a chave. Se o método falhar, o valor de retorno é um código de erro não nulo definido em WINERROR.H.

Observações

Create coloca o m_hKey membro na alavanca desta chave.

CRegKey::CRegKey

O construtor.

CRegKey() throw();
CRegKey(CRegKey& key) throw();
explicit CRegKey(HKEY hKey) throw();
CRegKey(CAtlTransactionManager* pTM) throw();

Parâmetros

key
Uma referência a um objeto CRegKey.

hKey
Um handle para uma chave de registo.

pTM
Apontador para CAtlTransactionManager objeto

Observações

Cria um novo CRegKey objeto. O objeto pode ser criado a partir de um objeto existente CRegKey , ou de um handle para uma chave de registo.

CRegKey::~CRegKey

O destruidor.

~CRegKey() throw();

Observações

O destruidor liberta m_hKey.

CRegKey::DeleteSubKey

Chame este método para remover a chave especificada do registo.

LONG DeleteSubKey(LPCTSTR lpszSubKey) throw();

Parâmetros

lpszSubKey
Especifica o nome da chave a eliminar. Este nome deve ser uma subchave de m_hKey.

Valor de retorno

Se for bem-sucedido, devolve ERROR_SUCCESS. Se o método falhar, o valor de retorno é um código de erro não nulo definido em WINERROR.H.

Observações

DeleteSubKey Só pode eliminar uma chave que não tenha subchaves. Se a chave tiver subchaves, chame RecurseDeleteKey em vez disso.

CRegKey::DeleteValue

Chame este método para remover um campo de valores de m_hKey.

LONG DeleteValue(LPCTSTR lpszValue) throw();

Parâmetros

lpszValue
Especifica o campo de valor a remover.

Valor de retorno

Se for bem-sucedido, devolve ERROR_SUCCESS. Se o método falhar, o valor de retorno é um código de erro não nulo definido em WINERROR.H.

CRegKey::Detach

Chame este método para separar a m_hKey alça de membro do CRegKey objeto e defina m_hKey para NULL.

HKEY Detach() throw();

Valor de retorno

O HKEY associado ao CRegKey objeto.

CRegKey::EnumKey

Chame este método para enumerar as subchaves da chave aberta do registo.

LONG EnumKey(
    DWORD iIndex,
    LPTSTR pszName,
    LPDWORD pnNameLength,
    FILETIME* pftLastWriteTime = NULL) throw();

Parâmetros

iIndex
O índice subchave. Este parâmetro deve ser zero para a primeira chamada e depois incrementado para chamadas subsequentes

pszName
Aponta para um buffer que recebe o nome da subchave, incluindo o carácter nulo que termina. Apenas o nome da subchave é copiado para o buffer, não a hierarquia completa de chaves.

pnNameLength
Apontador para uma variável que especifica o tamanho, em TCHARs, do buffer especificado pelo pszName parâmetro. Este tamanho deve incluir o carácter nulo que termina. Quando o método retorna, a variável apontada por pnNameLength contém o número de caracteres armazenados no buffer. A contagem devolvida não inclui o carácter nulo de terminação.

pftLastWriteTime
Apontador para uma variável que recebe o momento em que a subchave enumerada foi escrita pela última vez.

Valor de retorno

Se o método for bem-sucedido, o valor de retorno é ERROR_SUCCESS. Se o método falhar, o valor de retorno é um código de erro não nulo definido em WINERROR.H.

Observações

Para enumerar as subchaves, chame CRegKey::EnumKey com um índice zero. Incremente o valor do índice e repita até que o método devolva ERROR_NO_MORE_ITEMS. Para obter mais informações, consulte RegEnumKeyEx no SDK do Windows.

CRegKey::Flush

Chame este método para escrever todos os atributos da chave do registo aberto no registo.

LONG Flush() throw();

Valor de retorno

Se o método for bem-sucedido, o valor de retorno é ERROR_SUCCESS. Se o método falhar, o valor de retorno é um código de erro não nulo definido em WINERROR.H.

Observações

Para obter mais informações, consulte RegEnumFlush no SDK do Windows.

CRegKey::GetKeySecurity

Chame este método para recuperar uma cópia do descritor de segurança que protege a chave do registo aberto.

LONG GetKeySecurity(
    SECURITY_INFORMATION si,
    PSECURITY_DESCRIPTOR psd,
    LPDWORD pnBytes) throw();

Parâmetros

si
O SECURITY_INFORMATION valor que indica a informação de segurança solicitada.

psd
Um ponteiro para um buffer que recebe uma cópia do descritor de segurança solicitado.

pnBytes
O tamanho, em bytes, do buffer apontado por psd.

Valor de retorno

Se o método for bem-sucedido, o valor de retorno é ERROR_SUCCESS. Se o método falhar, o valor de retorno é um código de erro não nulo definido em WINERROR.H.

Observações

Para obter mais informações, veja RegGetKeySecurity.

CRegKey::m_hKey

Contém um handle da chave de registo associada ao CRegKey objeto.

HKEY m_hKey;

CRegKey::m_pTM

Ponteiro para um objeto CAtlTransactionManager.

CAtlTransactionManager* m_pTM;

Observações

CRegKey::NotifyChangeKeyValue

Este método notifica o chamador sobre alterações nos atributos ou conteúdos da chave de registo aberto.

LONG NotifyChangeKeyValue(
    BOOL bWatchSubtree,
    DWORD dwNotifyFilter,
    HANDLE hEvent,
    BOOL bAsync = TRUE) throw();

Parâmetros

bWatchSubtree
Especifica uma bandeira que indica se deve reportar alterações na chave especificada e em todas as suas subchaves ou apenas na chave especificada. Se este parâmetro for TRUE, o método reporta alterações na chave e nas suas subchaves. Se o parâmetro for FALSE, o método reporta alterações apenas na chave.

dwNotifyFilter
Especifica um conjunto de flags que controlam quais as alterações que devem ser reportadas. Este parâmetro pode ser uma combinação dos seguintes valores:

Valor Meaning
REG_NOTIFY_CHANGE_NAME Avise o chamador se uma subchave for adicionada ou eliminada.
REG_NOTIFY_CHANGE_ATTRIBUTES Notifique o chamador sobre alterações nos atributos da chave, como a informação do descritor de segurança.
REG_NOTIFY_CHANGE_LAST_SET Notifique o chamador sobre alterações a um valor da chave. Isto pode incluir adicionar ou eliminar um valor, ou alterar um valor existente.
REG_NOTIFY_CHANGE_SECURITY Notifique o interlocutor sobre alterações ao descritor de segurança da chave.

hEvent
Atende a um evento. Se o bAsync parâmetro for TRUE, o método retorna imediatamente e as alterações são reportadas sinalizando este evento. Se bAsync for FALSE, hEvent é ignorado.

bAsync
Especifica um flag que indica como o método reporta as alterações. Se este parâmetro for TRUE, o método retorna imediatamente e reporta alterações sinalizando o evento especificado. Quando este parâmetro é FALSE, o método não retorna até que ocorra uma alteração. Se hEvent não especificar um evento válido, o bAsync parâmetro não pode ser TRUE.

Valor de retorno

Se o método for bem-sucedido, o valor de retorno é ERROR_SUCCESS. Se o método falhar, o valor de retorno é um código de erro não nulo definido em WINERROR.H.

Observações

Observação

Este método não notifica o chamador se a chave especificada for eliminada.

Para mais detalhes e um programa de exemplo, veja RegNotifyChangeKeyValue.

CRegKey::Open

Chame este método para abrir a chave especificada e defina m_hKey para a alavanca dessa chave.

LONG Open(
    HKEY hKeyParent,
    LPCTSTR lpszKeyName,
    REGSAM samDesired = KEY_READ | KEY_WRITE) throw();

Parâmetros

hKeyParent
A pega de uma chave aberta.

lpszKeyName
Especifica o nome de uma chave a ser criada ou aberta. Este nome deve ser uma subchave de hKeyParent.

samDesired
O acesso de segurança para a chave. O valor predefinido é KEY_ALL_ACCESS. Para uma lista de valores e descrições possíveis, veja RegCreateKeyEx no SDK do Windows.

Valor de retorno

Se bem-sucedido, retorna ERROR_SUCCESS; caso contrário, um valor de erro não nulo definido em WINERROR.H.

Observações

Se o lpszKeyName parâmetro for NULL ou apontar para uma cadeia vazia, Open abre um novo handle da chave identificada por hKeyParent, mas não fecha nenhum handle previamente aberto.

Ao contrário de CRegKey::Create, Open não criará a chave especificada se ela não existir.

CRegKey::operator HKEY

Converte um CRegKey objeto em um HKEY.

operator HKEY() const throw();

CRegKey::operator =

Operador de atribuição.

CRegKey& operator= (CRegKey& key) throw();

Parâmetros

key
A chave para copiar.

Valor de retorno

Devolve uma referência à nova chave.

Observações

Este operador desliga-se key do seu objeto atual e atribui-o ao CRegKey objeto em vez disso.

CRegKey::QueryBinaryValue

Chame este método para recuperar os dados binários de um nome de valor especificado.

LONG QueryBinaryValue(
    LPCTSTR pszValueName,
    void* pValue,
    ULONG* pnBytes) throw();

Parâmetros

pszValueName
Apontador para uma NULLcadeia terminada em que contém o nome do valor a consultar.

pValue
Aponta para um buffer que recebe os dados do valor.

pnBytes
Apontador para uma variável que especifica o tamanho, em bytes, do buffer apontado pelo pValue parâmetro. Quando o método retorna, esta variável contém o tamanho dos dados copiados para o buffer.

Valor de retorno

Se o método tiver sucesso, ERROR_SUCCESS é devolvido. Se o método falhar em ler um valor, devolve um código de erro não nulo definido em WINERROR.H. Se os dados referenciados não forem do tipo REG_BINARY, ERROR_INVALID_DATA é devolvido.

Observações

Este método utiliza RegQueryValueEx e confirma que o tipo correto de dados é devolvido. Consulte RegQueryValueEx para obter mais detalhes.

Importante

Este método permite ao chamador especificar qualquer localização do registo, potencialmente lendo dados que não são de confiança. Além disso, a RegQueryValueEx função usada por este método não lida explicitamente com cadeias que são terminadas por nulo. Ambas as condições devem ser verificadas pelo código de chamada.

CRegKey::QueryDWORDValue

Chame este método para recuperar os DWORD dados de um nome de valor especificado.

LONG QueryDWORDValue(
    LPCTSTR pszValueName,
    DWORD& dwValue) throw();

Parâmetros

pszValueName
Apontador para uma NULLcadeia terminada em que contém o nome do valor a consultar.

dwValue
Apontar para um buffer que recebe o DWORD.

Valor de retorno

Se o método tiver sucesso, ERROR_SUCCESS é devolvido. Se o método falhar em ler um valor, devolve um código de erro não nulo definido em WINERROR.H. Se os dados referenciados não forem do tipo REG_DWORD, ERROR_INVALID_DATA é devolvido.

Observações

Este método utiliza RegQueryValueEx e confirma que o tipo correto de dados é devolvido. Consulte RegQueryValueEx para obter mais detalhes.

Importante

Este método permite ao chamador especificar qualquer localização do registo, potencialmente lendo dados que não são de confiança. Além disso, a RegQueryValueEx função usada por este método não lida explicitamente com cadeias que são terminadas por nulo. Ambas as condições devem ser verificadas pelo código de chamada.

CRegKey::QueryGUIDValue

Chame este método para recuperar os dados GUID para um nome de valor especificado.

LONG QueryGUIDValue(
    LPCTSTR pszValueName,
    GUID& guidValue) throw();

Parâmetros

pszValueName
Apontador para uma NULLcadeia terminada em que contém o nome do valor a consultar.

guidValue
Apontador para uma variável que recebe o GUID.

Valor de retorno

Se o método tiver sucesso, ERROR_SUCCESS é devolvido. Se o método falhar em ler um valor, devolve um código de erro não nulo definido em WINERROR.H. Se os dados referenciados não forem um GUID válido, ERROR_INVALID_DATA são devolvidos.

Observações

Este método utiliza e CRegKey::QueryStringValue converte a cadeia num GUID usando CLSIDFromString.

Importante

Este método permite ao chamador especificar qualquer localização do registo, potencialmente lendo dados que não são de confiança.

CRegKey::QueryMultiStringValue

Chame este método para recuperar os dados multistring para um nome de valor especificado.

LONG QueryMultiStringValue(
    LPCTSTR pszValueName,
    LPTSTR pszValue,
    ULONG* pnChars) throw();

Parâmetros

pszValueName
Apontador para uma NULLcadeia terminada em que contém o nome do valor a consultar.

pszValue
Apontador para um buffer que recebe os dados multistring. Uma multistring é um array de NULLcadeias terminadas em , terminadas por dois caracteres nulos.

pnChars
O tamanho, em TCHARs, do buffer apontava para .pszValue Quando o método retorna, pnChars contém o tamanho, em TCHARs, da multistring recuperada, incluindo um carácter nulo de terminação.

Valor de retorno

Se o método tiver sucesso, ERROR_SUCCESS é devolvido. Se o método falhar em ler um valor, devolve um código de erro não nulo definido em WINERROR.H. Se os dados referenciados não forem do tipo REG_MULTI_SZ, ERROR_INVALID_DATA é devolvido.

Observações

Este método utiliza RegQueryValueEx e confirma que o tipo correto de dados é devolvido. Consulte RegQueryValueEx para obter mais detalhes.

Importante

Este método permite ao chamador especificar qualquer localização do registo, potencialmente lendo dados que não são de confiança. Além disso, a RegQueryValueEx função usada por este método não lida explicitamente com cadeias que são terminadas por nulo. Ambas as condições devem ser verificadas pelo código de chamada.

CRegKey::QueryQWORDValue

Chame este método para recuperar os QWORD dados de um nome de valor especificado.

LONG QueryQWORDValue(
    LPCTSTR pszValueName,
    ULONGLONG& qwValue) throw();

Parâmetros

pszValueName
Apontador para uma NULLcadeia terminada em que contém o nome do valor a consultar.

qwValue
Apontar para um buffer que recebe o QWORD.

Valor de retorno

Se o método tiver sucesso, ERROR_SUCCESS é devolvido. Se o método falhar em ler um valor, devolve um código de erro não nulo definido em WINERROR.H. Se os dados referenciados não forem do tipo REG_QWORD, ERROR_INVALID_DATA é devolvido.

Observações

Este método utiliza RegQueryValueEx e confirma que o tipo correto de dados é devolvido. Consulte RegQueryValueEx para obter mais detalhes.

Importante

Este método permite ao chamador especificar qualquer localização do registo, potencialmente lendo dados que não são de confiança. Além disso, a RegQueryValueEx função usada por este método não lida explicitamente com cadeias que são terminadas por nulo. Ambas as condições devem ser verificadas pelo código de chamada.

CRegKey::QueryStringValue

Chame este método para recuperar os dados da cadeia para um nome de valor especificado.

LONG QueryStringValue(
    LPCTSTR pszValueName,
    LPTSTR pszValue,
    ULONG* pnChars) throw();

Parâmetros

pszValueName
Apontador para uma NULLcadeia terminada em que contém o nome do valor a consultar.

pszValue
Apontador para um buffer que recebe os dados da cadeia.

pnChars
O tamanho, em TCHARs, do buffer apontado para .pszValue Quando o método retorna, pnChars contém o tamanho, em TCHARs, da cadeia recuperada, incluindo um carácter nulo de terminação.

Valor de retorno

Se o método tiver sucesso, ERROR_SUCCESS é devolvido. Se o método falhar em ler um valor, devolve um código de erro não nulo definido em WINERROR.H. Se os dados referenciados não forem do tipo REG_SZ, ERROR_INVALID_DATA é devolvido. Se o método devolver ERROR_MORE_DATA, pnChars igual a zero, não é o tamanho do buffer necessário em bytes.

Observações

Este método utiliza RegQueryValueEx e confirma que o tipo correto de dados é devolvido. Consulte RegQueryValueEx para obter mais detalhes.

Importante

Este método permite ao chamador especificar qualquer localização do registo, potencialmente lendo dados que não são de confiança. Além disso, a RegQueryValueEx função usada por este método não lida explicitamente com cadeias que são terminadas por nulo. Ambas as condições devem ser verificadas pelo código de chamada.

CRegKey::QueryValue

Chame este método para recuperar os dados do campo de valores especificado de m_hKey. Versões anteriores deste método já não são suportadas e são marcadas 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);

Parâmetros

pszValueName
Apontador para uma NULLcadeia terminada em que contém o nome do valor a consultar. Se pszValueName for NULL ou uma cadeia vazia, "", o método recupera o tipo e os dados para o valor não nomeado ou por defeito da chave, se existirem.

pdwType
Apontador para uma variável que recebe um código indicando o tipo de dados armazenados no valor especificado. O pdwType parâmetro pode ser NULL se o código de tipo não for necessário.

pData
Aponta para um buffer que recebe os dados do valor. Este parâmetro pode ser necessário NULL se os dados não forem necessários.

pnBytes
Apontador para uma variável que especifica o tamanho, em bytes, do buffer apontado pelo pData parâmetro. Quando o método retorna, esta variável contém o tamanho dos dados copiados para pData.

dwValue
Os dados numéricos do campo de valor.

lpszValueName
Especifica o campo de valor a ser consultado.

szValue
Os dados da cadeia do campo de valor.

pdwCount
O tamanho dos dados da cadeia. O seu valor é inicialmente definido para o tamanho do szValue buffer.

Valor de retorno

Se for bem-sucedido, retorna ERROR_SUCCESS; caso contrário, um código de erro não nulo definido em WINERROR.H.

Observações

As duas versões originais de QueryValue já não são suportadas e estão marcadas como ATL_DEPRECATED. O compilador emitirá um aviso se estes formulários forem usados.

O método restante chama RegQueryValueEx.

Importante

Este método permite ao chamador especificar qualquer localização do registo, potencialmente lendo dados que não são de confiança. Além disso, a RegQueryValueEx função usada por este método não lida explicitamente com cadeias que são terminadas por nulo. Ambas as condições devem ser verificadas pelo código de chamada.

CRegKey::RecurseDeleteKey

Chame este método para remover a chave especificada do registo e remover explicitamente quaisquer subchaves.

LONG RecurseDeleteKey(LPCTSTR lpszKey) throw();

Parâmetros

lpszKey
Especifica o nome da chave a eliminar. Este nome deve ser uma subchave de m_hKey.

Valor de retorno

Se bem-sucedido, retorna ERROR_SUCCESS; caso contrário, um valor de erro não nulo definido em WINERROR.H.

Observações

Se a chave tiver subchaves, deve chamar este método para eliminar a chave.

CRegKey::SetBinaryValue

Chame este método para definir o valor binário da chave do registo.

LONG SetBinaryValue(
    LPCTSTR pszValueName,
    const void* pValue,
    ULONG nBytes) throw();

Parâmetros

pszValueName
Apontador para uma cadeia que contém o nome do valor a definir. Se um valor com este nome ainda não estiver presente, o método adiciona-o à chave.

pValue
Apontador para um buffer contendo os dados a armazenar com o nome do valor especificado.

nBytes
Especifica o tamanho, em bytes, da informação apontada pelo pValue parâmetro.

Valor de retorno

Se o método for bem-sucedido, o valor de retorno é ERROR_SUCCESS. Se o método falhar, o valor de retorno é um código de erro não nulo definido em WINERROR.H.

Observações

Este método serve RegSetValueEx para escrever o valor no registo.

CRegKey::SetDWORDValue

Chame este método para definir o DWORD valor da chave do registo.

LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue) throw();

Parâmetros

pszValueName
Apontador para uma cadeia que contém o nome do valor a definir. Se um valor com este nome ainda não estiver presente, o método adiciona-o à chave.

dwValue
Os DWORD dados a serem armazenados com o nome do valor especificado.

Valor de retorno

Se o método for bem-sucedido, o valor de retorno é ERROR_SUCCESS. Se o método falhar, o valor de retorno é um código de erro não nulo definido em WINERROR.H.

Observações

Este método serve RegSetValueEx para escrever o valor no registo.

CRegKey::SetGUIDValue

Chame este método para definir o valor GUID da chave do registo.

LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue) throw();

Parâmetros

pszValueName
Apontador para uma cadeia que contém o nome do valor a definir. Se um valor com este nome ainda não estiver presente, o método adiciona-o à chave.

guidValue
Referência ao GUID a ser armazenada com o nome do valor especificado.

Valor de retorno

Se o método for bem-sucedido, o valor de retorno é ERROR_SUCCESS. Se o método falhar, o valor de retorno é um código de erro não nulo definido em WINERROR.H.

Observações

Este método utiliza CRegKey::SetStringValue e converte o GUID numa cadeia usando StringFromGUID2.

CRegKey::SetKeyValue

Chame este método para armazenar dados num campo de valor especificado de uma chave especificada.

LONG SetKeyValue(
    LPCTSTR lpszKeyName,
    LPCTSTR lpszValue,
    LPCTSTR lpszValueName = NULL) throw();

Parâmetros

lpszKeyName
Especifica o nome da chave a ser criada ou aberta. Este nome deve ser uma subchave de m_hKey.

lpszValue
Especifica os dados a armazenar. Este parâmetro deve ser não-NULL.

lpszValueName
Especifica o campo valor a definir. Se um campo de valor com este nome ainda não existir na chave, é adicionado.

Valor de retorno

Se for bem-sucedido, retorna ERROR_SUCCESS; caso contrário, um código de erro não nulo definido em WINERROR.H.

Observações

Chame este método para criar ou abrir a lpszKeyName chave e armazenar os lpszValue dados no lpszValueName campo valor.

CRegKey::SetKeySecurity

Chame este método para definir a segurança da chave do registo.

LONG SetKeySecurity(SECURITY_INFORMATION si, PSECURITY_DESCRIPTOR psd) throw();

Parâmetros

si
Especifica os componentes do descritor de segurança a definir. O valor pode ser uma combinação dos seguintes valores:

Valor Meaning
DACL_SECURITY_INFORMATION Define a lista de controlo de acesso discricionária (DACL) da chave. A chave deve ter WRITE_DAC acesso, ou o processo que chama deve ser o proprietário do objeto.
GROUP_SECURITY_INFORMATION Define o identificador de segurança principal do grupo (SID) da chave. A chave deve ter WRITE_OWNER acesso, ou o processo que chama deve ser o proprietário do objeto.
OWNER_SECURITY_INFORMATION Define o SID do proprietário da chave. A chave deve ter WRITE_OWNER acesso, ou o processo que chama deve ser o proprietário do objeto ou ter o SE_TAKE_OWNERSHIP_NAME privilégio ativado.
SACL_SECURITY_INFORMATION Define a lista de controlo de acesso ao sistema (SACL) da chave. A chave tem de ter ACCESS_SYSTEM_SECURITY acesso. A forma correta de obter este acesso é ativar o SE_SECURITY_NAMEprivilégio no token de acesso atual do chamador, abrir o handle para ACCESS_SYSTEM_SECURITY acesso e depois desativar o privilégio.

psd
Apontar para uma SECURITY_DESCRIPTOR estrutura que especifica os atributos de segurança a definir para a chave especificada.

Valor de retorno

Se o método for bem-sucedido, o valor de retorno é ERROR_SUCCESS. Se o método falhar, o valor de retorno é um código de erro não nulo definido em WINERROR.H.

Observações

Define os atributos de segurança da chave. Consulte RegSetKeySecurity para obter mais detalhes.

CRegKey::SetMultiStringValue

Chame este método para definir o valor multistring da chave do registo.

LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue) throw();

Parâmetros

pszValueName
Apontador para uma cadeia que contém o nome do valor a definir. Se um valor com este nome ainda não estiver presente, o método adiciona-o à chave.

pszValue
Apontador para os dados multistring a serem armazenados com o nome do valor especificado. Uma multistring é um array de NULLcadeias terminadas em , terminadas por dois caracteres nulos.

Valor de retorno

Se o método for bem-sucedido, o valor de retorno é ERROR_SUCCESS. Se o método falhar, o valor de retorno é um código de erro não nulo definido em WINERROR.H.

Observações

Este método serve RegSetValueEx para escrever o valor no registo.

CRegKey::SetQWORDValue

Chame este método para definir o QWORD valor da chave do registo.

LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue) throw();

Parâmetros

pszValueName
Apontador para uma cadeia que contém o nome do valor a definir. Se um valor com este nome ainda não estiver presente, o método adiciona-o à chave.

qwValue
Os QWORD dados a serem armazenados com o nome do valor especificado.

Valor de retorno

Se o método for bem-sucedido, o valor de retorno é ERROR_SUCCESS. Se o método falhar, o valor de retorno é um código de erro não nulo definido em WINERROR.H.

Observações

Este método serve RegSetValueEx para escrever o valor no registo.

CRegKey::SetStringValue

Chame este método para definir o valor da cadeia da chave do registo.

LONG SetStringValue(
    LPCTSTR pszValueName,
    LPCTSTR pszValue,
    DWORD dwType = REG_SZ) throw();

Parâmetros

pszValueName
Apontador para uma cadeia que contém o nome do valor a definir. Se um valor com este nome ainda não estiver presente, o método adiciona-o à chave.

pszValue
Apontador para os dados da cadeia a serem armazenados com o nome do valor especificado.

dwType
O tipo da string a escrever no registo: ou REG_SZ (o padrão) ou REG_EXPAND_SZ (para multistrings).

Valor de retorno

Se o método for bem-sucedido, o valor de retorno é ERROR_SUCCESS. Se o método falhar, o valor de retorno é um código de erro não nulo definido em WINERROR.H.

Observações

Este método serve RegSetValueEx para escrever o valor no registo.

CRegKey::SetValue

Chame este método para armazenar dados no campo de valores especificado de m_hKey. Versões anteriores deste método já não são suportadas e são marcadas 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);

Parâmetros

pszValueName
Apontador para uma cadeia que contém o nome do valor a definir. Se um valor com este nome ainda não estiver presente na chave, o método adiciona-o à chave. Se pszValueName for NULL ou uma cadeia vazia, "", o método define o tipo e os dados para o valor não nomeado ou padrão da chave.

dwType
Especifica um código que indica o tipo de dados apontados pelo pValue parâmetro.

pValue
Apontador para um buffer contendo os dados a armazenar com o nome do valor especificado.

nBytes
Especifica o tamanho, em bytes, da informação apontada pelo pValue parâmetro. Se os dados forem do tipo REG_SZ, REG_EXPAND_SZ, ou REG_MULTI_SZ, nBytes devem incluir o tamanho do carácter nulo terminante.

hKeyParent
A pega de uma chave aberta.

lpszKeyName
Especifica o nome de uma chave a ser criada ou aberta. Este nome deve ser uma subchave de hKeyParent.

lpszValue
Especifica os dados a armazenar. Este parâmetro deve ser não-NULL.

lpszValueName
Especifica o campo valor a definir. Se um campo de valor com este nome ainda não existir na chave, é adicionado.

dwValue
Especifica os dados a armazenar.

bMulti
Se falso, indica que a cadeia é do tipo REG_SZ. Se for verdadeiro, indica que a cadeia é uma multistring do tipo REG_MULTI_SZ.

nValueLen
Se bMulti for verdadeiro, nValueLen é o comprimento da lpszValue cadeia em caracteres. Se bMulti for falso, um valor de -1 indica que o método calculará automaticamente o comprimento.

Valor de retorno

Se for bem-sucedido, retorna ERROR_SUCCESS; caso contrário, um código de erro não nulo definido em WINERROR.H.

Observações

As duas versões originais estão SetValue marcadas como ATL_DEPRECATED e não devem mais ser usadas. O compilador emitirá um aviso se estes formulários forem usados.

O terceiro método chama RegSetValueEx.

Consulte também

Exemplo de DCOM
Visão geral da classe