Método IDirectorySearch::GetColumn (iads.h)
El método IDirectorySearch::GetColumn obtiene datos de una columna con nombre del resultado de búsqueda.
Sintaxis
HRESULT GetColumn(
[in] ADS_SEARCH_HANDLE hSearchResult,
[in] LPWSTR szColumnName,
[out] PADS_SEARCH_COLUMN pSearchColumn
);
Parámetros
[in] hSearchResult
Proporciona un identificador para el contexto de búsqueda.
[in] szColumnName
Proporciona el nombre de la columna para la que se solicitan los datos.
[out] pSearchColumn
Proporciona la dirección de una estructura de ADS_SEARCH_COLUMN asignada por el método que contiene la columna de la fila actual del resultado de búsqueda.
Valor devuelto
Este método devuelve los valores devueltos estándar, así como los siguientes.
Para obtener otros valores devueltos, consulta Códigos de error ADSI.
Comentarios
El método asigna la memoria de la estructura ADS_SEARCH_COLUMN para contener los datos de la columna. Pero el autor de la llamada debe liberar la memoria llamando a IDirectorySearch::FreeColumn.
El método IDirectorySearch::GetColumn intenta leer la definición de esquema del atributo solicitado para que pueda devolver los valores de atributo en el formato adecuado en las estructuras ADSVALUE , contenidas en la estructura ADS_SEARCH_COLUMN . Sin embargo, GetColumn puede realizarse correctamente incluso cuando la definición de esquema no está disponible, en cuyo caso el miembro dwADsType de la estructura ADS_SEARCH_COLUMN devuelve ADSTYPE_PROV_SPECIFIC y el valor se devuelve en una estructura ADS_PROV_SPECIFIC . Al procesar los resultados de una llamada a GetColumn , debe comprobar dwADsType para asegurarse de que los datos se devolvieron en el formato esperado.
Ejemplos
ADS_SEARCH_COLUMN col;
/*.. Omit the set preference and execute*/
while( m_pSearch->GetNextRow( hSearch) != S_ADS_NOMORE_ROWS )
{
// Get the Name and display it in the list.
hr = m_pSearch->GetColumn( hSearch, pszAttr[0], &col );
if ( SUCCEEDED(hr) )
{
switch (col.dwADsType)
{
case ADSTYPE_CASE_IGNORE_STRING:
printf("%S\n", col.pADsValues->CaseIgnoreString);
break;
case ADSTYPE_PROV_SPECIFIC:
printf("%S\n", col.pADsValues->ProviderSpecific.lpValue);
break;
default:
printf("Unexpected ADsType: %d\n", col.dwADsType);
break;
}
{
m_pSearch->FreeColumn( &col );
}
}
}
m_pSearch->CloseSearchHandle( hSearch );
Requisitos
Cliente mínimo compatible | Windows Vista |
Servidor mínimo compatible | Windows Server 2008 |
Plataforma de destino | Windows |
Encabezado | iads.h |
Archivo DLL | Activeds.dll; Adsldp.dll; Adsldpc.dll |