IDirectorySearch::GetColumn 方法 (iads.h)

IDirectorySearch::GetColumn 方法从搜索结果的命名列获取数据。

语法

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

parameters

[in] hSearchResult

提供搜索上下文的句柄。

[in] szColumnName

提供为其请求数据的列的名称。

[out] pSearchColumn

提供方法分配 的ADS_SEARCH_COLUMN 结构的地址,该结构包含搜索结果当前行中的列。

返回值

此方法返回标准返回值以及以下内容。

有关其他返回值,请参阅 ADSI 错误代码

注解

方法为 ADS_SEARCH_COLUMN 结构分配内存,以保存列的数据。 但调用方必须通过调用 IDirectorySearch::FreeColumn 来释放内存。

IDirectorySearch::GetColumn 方法尝试读取所请求属性的架构定义,以便它可以在 adsVALUE 结构(包含在 ADS_SEARCH_COLUMN 结构中)中以适当的格式返回属性值。 但是,即使架构定义不可用,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