Função RegEnumKeyExA (winreg.h)
Enumera as subchaves da chave do Registro aberta especificada. A função recupera informações sobre uma subchave cada vez que é chamada.
Sintaxe
LSTATUS RegEnumKeyExA(
[in] HKEY hKey,
[in] DWORD dwIndex,
[out] LPSTR lpName,
[in, out] LPDWORD lpcchName,
LPDWORD lpReserved,
[in, out] LPSTR lpClass,
[in, out, optional] LPDWORD lpcchClass,
[out, optional] PFILETIME lpftLastWriteTime
);
Parâmetros
[in] hKey
Um identificador para uma chave aberta do Registro. A chave deve ter sido aberta com o KEY_ENUMERATE_SUB_KEYS direito de acesso. Para obter mais informações, consulte de Direitos de Acesso e Segurança de Chave do Registro.
Esse identificador é retornado pelo RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyExou função regOpenKeyTransacted. Também pode ser uma das seguintes chaves predefinidas :
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_CONFIG
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_PERFORMANCE_DATA
- HKEY_USERS
[in] dwIndex
O índice da subchave a ser recuperada. Esse parâmetro deve ser zero para a primeira chamada para a função RegEnumKeyEx e incrementada para chamadas subsequentes.
Como as subchaves não são ordenadas, qualquer nova subchave terá um índice arbitrário. Isso significa que a função pode retornar subchaves em qualquer ordem.
[out] lpName
Um ponteiro para um buffer que recebe o nome da subchave, incluindo a terminação caractere de nulo. A função copia apenas o nome da subchave, não a hierarquia de chave completa, para o buffer.
Se a função falhar, nenhuma informação será copiada para esse buffer.
Para obter mais informações, consulte limites de tamanho do elemento do Registro.
[in, out] lpcchName
Um ponteiro para uma variável que especifica o tamanho do buffer especificado pelo parâmetro lpName, em caracteres. Esse tamanho deve incluir a terminação caractere de nulo. Se a função for bem-sucedida, a variável apontada por lpcchName conterá o número de caracteres armazenados no buffer, não incluindo a terminação caractere de nulo.
Para determinar o tamanho do buffer necessário, use a função RegQueryInfoKey para determinar o tamanho da subchave maior para a chave identificada pelo parâmetro hKey.
lpReserved
Esse parâmetro é reservado e deve ser NULL.
[in, out] lpClass
Um ponteiro para um buffer que recebe a classe definida pelo usuário da subchave enumerada. Esse parâmetro pode ser NULL.
[in, out, optional] lpcchClass
Um ponteiro para uma variável que especifica o tamanho do buffer especificado pelo parâmetro lpClass
[out, optional] lpftLastWriteTime
Um ponteiro para estrutura FILETIME que recebe o tempo em que a subchave enumerada foi gravada pela última vez. Esse parâmetro pode ser NULL.
Valor de retorno
Se a função for bem-sucedida, o valor retornado será ERROR_SUCCESS.
Se a função falhar, o valor retornado será um código de erro do sistema. Se não houver mais subchaves disponíveis, a função retornará ERROR_NO_MORE_ITEMS.
Se o lpName buffer for muito pequeno para receber o nome da chave, a função retornará ERROR_MORE_DATA.
Observações
Para enumerar subchaves, um aplicativo deve inicialmente chamar a função RegEnumKeyEx com o parâmetro dwIndex definido como zero. Em seguida, o aplicativo deve incrementar o parâmetro dwIndex e chamar RegEnumKeyEx até que não haja mais subchaves (o que significa que a função retorna ERROR_NO_MORE_ITEMS).
O aplicativo também pode definir dwIndex para o índice da última subchave na primeira chamada para a função e decrementar o índice até que a subchave com o índice 0 seja enumerada. Para recuperar o índice da última subchave, use a função RegQueryInfoKey.
Embora um aplicativo esteja usando a função RegEnumKeyEx, ele não deve fazer chamadas para nenhuma função de registro que possa alterar a chave que está sendo enumerada.
Observe que as operações que acessam determinadas chaves do Registro são redirecionadas. Para obter mais informações, consulte de Virtualização do Registro e dados de aplicativo de 32 bits e 64 bits no Registro.
Nota
Em versões herdadas do Windows, essa API também é exposta por kernel32.dll.
Exemplos
Para obter um exemplo, consulte Enumerando subchaves do Registro.
Nota
O cabeçalho winreg.h define RegEnumKeyEx como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 2000 Professional [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows 2000 Server [somente aplicativos da área de trabalho] |
da Plataforma de Destino |
Windows |
cabeçalho | winreg.h (inclua Windows.h) |
biblioteca | Advapi32.lib |
de DLL |
Advapi32.dll |
Consulte também
RegCreateKeyEx
RegDeleteKey
RegOpenKeyEx