Processando os resultados da pesquisa

Após a primeira chamada para IDirectorySearch::GetFirstRow ou IDirectorySearch::GetNextRow, S_OK, S_ADS_NOMORE_ROWS ou um resultado de erro é retornado.

Se o valor de retorno for S_ADS_NOMORE_ROWS, não foram encontrados mais objetos correspondentes ao filtro. Se um resultado de erro for retornado, a consulta falhou. Em ambos os casos, você não é obrigado a processar as linhas no resultado porque nada foi retornado.

Se S_OK for retornado, uma linha foi recuperada. Você pode analisar as colunas por nome usando IDirectorySearch::GetColumn. O nome é lDAPDisplayName do atributo na coluna. O conjunto de todas as colunas foi definido pelo parâmetro pAttributeNames do método IDirectorySearch::ExecuteSearch . Se NULL foi especificado, o conjunto de todas as colunas é a união de todas as propriedades encontradas para todos os objetos retornados. Para ler todo o conjunto de colunas retornado para um objeto, use IDirectorySearch::GetNextColumnName para iterar cada coluna e use o nome da coluna retornado para chamar IDirectorySearch::GetColumn.

O método IDirectorySearch::GetColumn retorna uma estrutura ADS_SEARCH_COLUMN que contém o nome do atributo, o tipo do atributo, a contagem de valores e um ponteiro para uma matriz de estruturas ADSVALUE que contêm os valores. Você pode percorrer as estruturas ADSVALUE para ler os valores da propriedade retornada pela coluna. Você deve ler o membro apropriado da estrutura ADSVALUE com base no ADSTYPE especificado pelo membro dwADsType da estrutura ADS_SEARCH_COLUMN (ou o membro dwType da estrutura ADSVALUE). Por exemplo, se dwADsType fosse ADSTYPE_INTEGER, você leria o membro Integer de cada estrutura ADSVALUE .

Para obter mais informações e um exemplo de código, consulte Código de exemplo para pesquisar usuários.