Buddy Group Events
The following code examples demonstrate how to handle Buddy Group events. The operations in the Initialize RTC and Create a Buddy Group and Add Buddies code examples must be performed before using this example.
Note This example does not contain error checking or releases appropriate for real code.
C++ Code Example 1: Event Sink
// The event sink to attach to the event HRESULT Event(RTC_EVENT RTCEvent, IDispatch* pEvent) { // The RTC event sink of events shown in the example switch(RTCEvent) { case RTCE_GROUP: HandleGroupEvents(pEvent); break; // Add handlers for other events. } return S_OK; }
C++ Code Example 2: Event Handler
HRESULT HandleGroupEvents(IDispatch *pEvent) { HRESULT hr = S_OK; LONG lStatusCode = S_OK; IRTCBuddyGroupEvent * pGE; RTC_GROUP_EVENT_TYPE enEventType; hr = pEvent->QueryInterface(IID_IRTCBuddyGroupEvent, (LPVOID *)&pGE); // If (hr != S_OK), process the error here. hr = pGE->get_EventType(&enEventType); // If (hr != S_OK), process the error here. hr = pGE->get_StatusCode(&lStatusCode); // If (hr != S_OK), process the error here. // Check the status code: if (FAILED(lStatusCode)) { // If the status code is a failure HRESULT, this // signifies that the operation did not complete // successfully. Handle failures here. } // Process the event based on its type. switch (enEventType) { case RTCGET_GROUP_ADD: // The group has been added successfully. // Update the user interface by // displaying the group. break; case RTCGET_GROUP_REMOVE: // The group has been removed successfully. // Update the user interface by removing // the group. break; case RTCGET_GROUP_UPDATE: // The group has been modified successfully. break; case RTCGET_GROUP_BUDDY_ADD: // A buddy has been successfully added to // the group. Update the user interface // by displaying the buddy as part of the group. break; case RTCGET_GROUP_BUDDY_REMOVE: // A buddy has been successfully removed from // the group. Update the user interface // by removing the buddy from the group. break; case RTCGET_GROUP_ROAMED: // There is a successful transition from a // nonroaming state to a roaming state. // This will happen only if you add groups and // buddies to the groups before you begin roaming. break; } return hr; }
Visual Basic Example: Event Handler
' In Event Handler, process the event based on its type. Dim pEvent As IRTCBuddyGroupEvent ' Add code here to retrieve the event as pEvent. lEventType = pEvent.EventType select Case enEventType case RTCGET_GROUP_ADD: ' The group has been added successfully. ' Update the user interface by displaying ' the group. case RTCGET_GROUP_REMOVE: ' The group has been removed successfully. ' Update the user interface by removing ' the group. case RTCGET_GROUP_UPDATE: ' The group has been modified successfully. case RTCGET_GROUP_BUDDY_ADD: ' A buddy has been successfully added to the group. ' Update the user interface by displaying ' the buddy as part of the group. case RTCGET_GROUP_BUDDY_REMOVE: ' A buddy has been successfully removed from the ' group. Update the user interface by removing ' the buddy from the group. case RTCGET_GROUP_ROAMED: ' There is a successful transition from ' a nonroaming state to a roaming state. ' This will happen only if you add groups and ' buddies to the groups before you begin roaming. end select