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 |