IDirectorySearch::GetColumn-Methode (iads.h)

Die IDirectorySearch::GetColumn-Methode ruft Daten aus einer benannten Spalte des Suchergebnisses ab.

Syntax

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

Parameter

[in] hSearchResult

Stellt ein Handle für den Suchkontext bereit.

[in] szColumnName

Gibt den Namen der Spalte an, für die Daten angefordert werden.

[out] pSearchColumn

Stellt die Adresse einer methodeseitig zugeordneten ADS_SEARCH_COLUMN-Struktur bereit, die die Spalte aus der aktuellen Zeile des Suchergebnisses enthält.

Rückgabewert

Diese Methode gibt die Standardrückgabewerte sowie folgendes zurück.

Weitere Rückgabewerte finden Sie unter ADSI-Fehlercodes.

Hinweise

Die -Methode weist den Arbeitsspeicher für die ADS_SEARCH_COLUMN-Struktur zu, um die Daten der Spalte zu speichern. Der Aufrufer muss jedoch den Speicher durch Aufrufen von IDirectorySearch::FreeColumn freigeben.

Die IDirectorySearch::GetColumn-Methode versucht, die Schemadefinition des angeforderten Attributs zu lesen, damit sie die Attributwerte im entsprechenden Format in den ADSVALUE-Strukturen zurückgeben kann, die in der ADS_SEARCH_COLUMN-Struktur enthalten sind. GetColumn kann jedoch auch dann erfolgreich sein, wenn die Schemadefinition nicht verfügbar ist. In diesem Fall gibt das dwADsType-Element der ADS_SEARCH_COLUMN-Struktur ADSTYPE_PROV_SPECIFIC zurück, und der Wert wird in einer ADS_PROV_SPECIFIC-Struktur zurückgegeben. Wenn Sie die Ergebnisse eines GetColumn-Aufrufs verarbeiten, müssen Sie dwADsType überprüfen, um sicherzustellen, dass die Daten im erwarteten Format zurückgegeben wurden.

Beispiele

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

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile iads.h
DLL Activeds.dll; Adsldp.dll; Adsldpc.dll

Weitere Informationen

ADSI-Fehlercodes

ADS_SEARCH_COLUMN

Idirectorysearch

IDirectorySearch::FreeColumn