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方法會嘗試讀取所要求屬性的架構定義,使其可以在包含在ADS_SEARCH_COLUMN結構中的ADSVALUE結構中,以適當的格式傳回屬性值。 不過,即使架構定義無法使用,GetColumn仍可成功,在此情況下,ADS_SEARCH_COLUMN結構的dwADsType成員會傳回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
標頭 iads.h
Dll Activeds.dll;Adsldp.dll;Adsldpc.dll

另請參閱

ADSI 錯誤碼

ADS_SEARCH_COLUMN

IDirectorySearch

IDirectorySearch::FreeColumn