Beispielcode für die Suche nach Attributen
Im folgenden Codebeispiel wird gezeigt, wie sie die ADS_SEARCHPREF_ATTRIBTYPES_ONLY Suchpräferenz verwenden, um nur die Namen von Attributen abzurufen, denen Werte zugewiesen wurden. Im Beispiel wird eine ADS_SEARCHPREF_INFO-Struktur initialisiert und die Suchpräferenz festgelegt, indem die SetSearchPreference-Methode der IDirectorySearch-Schnittstelle aufgerufen wird. Im Beispiel wird dann die ExecuteSearch-Methode aufgerufen, um die Suche auszuführen.
// Setting the search preference.
// m_pSearch is a valid pointer to an IDirectorySearch interface.
ADS_SEARCHPREF_INFO prefInfo[1];
LPWSTR pszColumn = NULL;
// Set the search preference to indicate attribute names only.
prefInfo[0].dwSearchPref = ADS_SEARCHPREF_ATTRIBTYPES_ONLY;
prefInfo[0].vValue.dwType = ADSTYPE_BOOLEAN;
prefInfo[0].vValue.Integer = TRUE;
hr = m_pSearch->SetSearchPreference(prefInfo, 1);
// Execute the search.
hr = m_pSearch->ExecuteSearch(
L"(|(objectCategory=domainDNS)(objectCategory=organizationalUnit))",
NULL, -1, &hSearch );
if(FAILED(hr))
{
return;
}
// Retrieve the column name.
hr = m_pSearch->GetNextRow(hSearch);
if(FAILED(hr))
{
return;
}
while( m_pSearch->GetNextColumnName( hSearch, &pszColumn ) != S_ADS_NOMORE_COLUMNS )
{
wprintf(L"%S ", pszColumn );
FreeADsMem( pszColumn );
}