Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The following code example demonstrates how to receive a user search response. The operations in the Initialize RTC and Register to Receive Events (RTCE_USERSEARCH events) code examples must be performed before using this example.
C++ Code Example
IRTCUserSearchResultsEvent *pUserSearchResultsEvent = NULL;
IRTCEnumUserSearchResults *pUserSearchResults = NULL;
IRTCUserSearchResult *pUserSearchResult = NULL;
// This returns the status of the search.
LONG lStatusCode;
// This is used to match the return object with the request made.
LONG lReturnCookie;
ULONG ulFetched = 0;
// This Boolean value informs the user of more possible results.
VARIANT_BOOL fMoreAvailable = FALSE;
// These strings are for storing the search results.
BSTR bstrURI = NULL;
BSTR bstrDisplayName = NULL;
BSTR bstrTitle = NULL;
BSTR bstrOffice = NULL;
BSTR bstrPhone = NULL;
BSTR bstrCompany = NULL;
BSTR bstrCity = NULL;
BSTR bstrState = NULL;
BSTR bstrCountry = NULL;
BSTR bstrEmail = NULL;
// This HRESULT is for receiving errors.
HRESULT hr = 0;
// Create the UserSearch results event object from
// the IDispatch object returned with the event.
hr = pIDispatch->QueryInterface( IID_IRTCUserSearchResultsEvent,
reinterpret_cast<void**>
(&pUserSearchResultsEvent));
// Release the IDispatch object.
// If (hr != S_OK), process the error here.
// Retrieve the cookie from the search.
hr = pUserSearchResultsEvent->get_Cookie(&lReturnCode);
// If (hr != S_OK), process the error here.
// You can use this cookie to match the response with
// the request.
// Retrieve the status code from the search.
hr = pUserSearchResultsEvent->get_StatusCode(&lStatusCode);
// If (hr != S_OK), process the error here.
// If (lStatusCode != S_OK), the UserSearch operation failed;
// process the error here.
// Check whether there are more results available.
hr = pUserSearchResultsEvent->get_MoreAvailable(&fMoreAvailable);
// If (hr != S_OK), process the error here.
// If (fMoreAvailable), there might be more results
// available if the search is narrowed.
// Enumerate through the user search results.
hr = pUserSearchResultsEvent->EnumerateResults(&pUserSearchResults);
// Release the IRTCUserSearchResultsEvent object.
// If (hr != S_OK), process the error here.
while( S_OK == pUserSearchResults->Next(1, &pUserSearchResult, &ulFetched) )
{
hr = pUserSearchResult->get_Value(RTCUSC_URI, &bstrURI);
// If (hr != S_OK), process the error here.
hr = pUserSearchResult->get_Value(RTCUSC_DISPLAYNAME, &bstrDisplayName);
// If (hr != S_OK), process the error here.
hr = pUserSearchResult->get_Value(RTCUSC_TITLE, &bstrTitle);
// If (hr != S_OK), process the error here.
hr = pUserSearchResult->get_Value(RTCUSC_OFFICE, &bstrOffice);
// If (hr != S_OK), process the error here.
hr = pUserSearchResult->get_Value(RTCUSC_PHONE, &bstrPhone);
// If (hr != S_OK), process the error here.
hr = pUserSearchResult->get_Value(RTCUSC_COMPANY, &bstrCompany);
// If (hr != S_OK), process the error here.
hr = pUserSearchResult->get_Value(RTCUSC_CITY, &bstrCity);
// If (hr != S_OK), process the error here.
hr = pUserSearchResult->get_Value(RTCUSC_STATE, &bstrState);
// If (hr != S_OK), process the error here.
hr = pUserSearchResult->get_Value(RTCUSC_COUNTRY, &bstrCounty);
// If (hr != S_OK), process the error here.
hr = pUserSearchResult->get_Value(RTCUSC_EMAIL, &bstrEmail);
// If (hr != S_OK), process the error here.
// Add the necessary code for printing or processing
// strings here.
// Release IRTCUserSearchResult and all BSTRs
// before the end of the loop.
}
// Release the IRTCEnumUserSearchResults object.
FakePre-3c7d75f1a6b049768e8d831719181815-c1ef5b6efd804f21903f4a5d931984a6
Visual Basic Code Example
' The application must perform the operations in the
' "Initialize RTC" and "Register to Receive Events"
' (RTCE_USERSEARCH events) before using this example.
' Set the error handling routine here.
' On Error GoTo MyErrorRoutine
Dim objUserSearchResultsEvent As IRTCUserSearchResultsEvent
Dim objUserSearchCollection As IRTCCollection
Dim objUserSearchResult As IRTCUserSearchResult
Dim lStatusCode As Long
Dim lCookie As Long
Dim lResultCount As Long
Dim lResultLoopVar As Long
Dim fMoreAvailable As Boolean
Dim strURI As String
Dim strDisplayName As String
Dim strTitle As String
Dim strOffice As String
Dim strPhone As String
Dim strCompany As String
Dim strCity As String
Dim strState As String
Dim strCountry As String
Dim strEmail As String
' objEvent is the IDispatch object that was returned
' with the event. The IRTCUserSearchResultsEvent can
' be extracted from it if the event was an
' RTCE_USERSEARCH event.
Set objUserSearchResultsEvent = objEvent
' Retrieve the cookie from the search. You can use
' this cookie to match the response with the request.
lCookie = objUserSearchResultsEvent.Cookie
' Retrieve the status code from the search.
lStatusCode = objUserSearchResultsEvent.StatusCode
' If (Hex(lStatusCode) > 0) the UserSearch operation
' failed, process the error here.
' Check if there are more results available.
fMoreAvailable = objUserSearchResultsEvent.MoreAvailable
' If (fMoreAvailable = TRUE) there might be more results
' available if the search is narrowed.
' Retrieve the results from the
' IRTCUserSearchResultsEvent object.
Set objUserSearchCollection = objUserSearchResultsEvent.Results
' Retrieve the number of results returned.
lResultCount = objUserSearchCollection.Count
' Loop through the results that were returned.
For lResultLoopVar = 1 To lResultCount
' Retrieve this individual result
Set objUserSearchResult = objUserSearchCollection.Item(lResultLoopVar)
strURI = objUserSearchResult.Value(RTCUSC_URI)
strDisplayName = objUserSearchResult.Value(RTCUSC_DISPLAYNAME)
strTitle = objUserSearchResult.Value(RTCUSC_TITLE)
strOffice = objUserSearchResult.Value(RTCUSC_OFFICE)
strPhone = objUserSearchResult.Value(RTCUSC_PHONE)
strCompany = objUserSearchResult.Value(RTCUSC_COMPANY)
strCity = objUserSearchResult.Value(RTCUSC_CITY)
strState = objUserSearchResult.Value(RTCUSC_STATE)
strCountry = objUserSearchResult.Value(RTCUSC_COUNTRY)
strEmail = objUserSearchResult.Value(RTCUSC_EMAIL)
' Add necessary code for printing or processing strings here.
' Release this individual result
Set objUserSearchResult = Nothing
Next lResultLoopVar
' Release Collection and Event objects
Set objUserSearchCollection = Nothing
Set objUserSearchResultsEvent = Nothing