Directory Services


The IDirectorySearch::GetPreviousRow method gets the previous row of the search result. If the provider does not provide cursor support, it should return E_NOTIMPL.

HRESULT GetPreviousRow( 


[in] Provides a handle to the search context.

Return Values

This method returns the standard return values, as well as the following:

For other return values, see ADSI Error Codes.

Return Code Description
S_OK The previous row was successfully obtained.
E_NOTIMPL The provider does not provide the cursor support for search.


When the ADS_SEARCHPREF_CACHE_RESULTS flag is not set, only forward scrolling is permitted, because the client might not cache all the query results.

Example Code [C++]

hr = m_pSearch->ExecuteSearch(L"(&(objectCategory=user)(st=WA))", pszAttr, dwCount, &hSearch );
if ( SUCCEEDED(hr) )
   while(  m_pSearch->GetNextRow(hSearch)  != S_ADS_NOMORE_ROWS )
	/* Get the data */
   // Print it backward
   hr = m_pSearch->GetPreviousRow( hSearch );
   while( hr != S_ADS_NOMORE_ROWS  &&  hr != E_NOTIMPL)
	/* Get the data */


Client: Included in Windows XP and Windows 2000 Professional.
Server: Included in Windows Server 2003 and Windows 2000 Server.
Redistributable: Requires Active Directory Client Extension on Windows NT 4.0 SP6a and Windows 95/98/Me.
Header: Declared in Iads.h.

See Also

IDirectorySearch, ADSI Error Codes