Поделиться через


Метод IDirectorySearch::GetColumn (iads.h)

Метод IDirectorySearch::GetColumn получает данные из именованного столбца результата поиска.

Синтаксис

HRESULT GetColumn(
  [in]  ADS_SEARCH_HANDLE  hSearchResult,
  [in]  LPWSTR             szColumnName,
  [out] PADS_SEARCH_COLUMN pSearchColumn
);

Параметры

[in] hSearchResult

Предоставляет дескриптор для контекста поиска.

[in] szColumnName

Предоставляет имя столбца, для которого запрашивается данные.

[out] pSearchColumn

Предоставляет адрес структуры, выделенной методом ADS_SEARCH_COLUMN , содержащей столбец из текущей строки результата поиска.

Возвращаемое значение

Этот метод возвращает стандартные возвращаемые значения, а также следующие.

Другие возвращаемые значения см. в разделе Коды ошибок ADSI.

Комментарии

Метод выделяет память для структуры ADS_SEARCH_COLUMN для хранения данных столбца. Но вызывающий объект должен освободить память, вызвав IDirectorySearch::FreeColumn.

Метод IDirectorySearch::GetColumn пытается прочитать определение схемы запрошенного атрибута, чтобы он мог возвращать значения атрибутов в соответствующем формате в структурах ADSVALUE , содержащихся в структуре ADS_SEARCH_COLUMN . Однако GetColumn может завершиться успешно, даже если определение схемы недоступно. В этом случае элемент dwADsType структуры ADS_SEARCH_COLUMN возвращает ADSTYPE_PROV_SPECIFIC, а значение возвращается в ADS_PROV_SPECIFIC структуре. При обработке результатов вызова GetColumn необходимо проверить dwADsType , чтобы убедиться, что данные были возвращены в ожидаемом формате.

Примеры

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 );

Требования

   
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header iads.h
DLL Activeds.dll; Adsldp.dll; Adsldpc.dll

См. также раздел

Коды ошибок ADSI

ADS_SEARCH_COLUMN

IDirectorySearch

IDirectorySearch::FreeColumn