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