CCoeAppUi:HandleApplicationSpecificEventL() is
called for application-specific events where event codes are from EEventUser upwards in TEventCode. You can define
a data structure to be delivered in the window server event. The data can
be accessed through a pointer, which can be obtained by calling TWsEvent::EventData(). The maximum event
data size is defined as EWsEventDataSize.
void HandleApplicationSpecificEventL(TInt aType,const TWsEvent& aEvent)
Code example:
First define a data structure for the event data:
class TEventsEventType
{
public:
// Event iData
TBufC< TWsEvent::EWsEventDataSize> data;
};
Then create an event and send it to all window groups:
// Create a window server event TWsEvent event; TEventsEventType eventType; // Set event data. eventType.data = KData; event.SetType(ETestEvent1); // set event type event.SetTimeNow(); // set the event time event.SetHandle(iWsSession.WsHandle()); // set window server handle *(TEventsEventType*)(event.EventData()) = eventType; // set event data // Send the created event User::LeaveIfError(iWsSession.SendEventToAllWindowGroups(event));
Catch the event using the following method:
void CEventsAppUi::HandleApplicationSpecificEventL(TInt aType,const TWsEvent& aEvent)
{
// Check the event type
if (aType == ETestEvent1)
{
// Cast to TEventsEventType
TEventsEventType event;
event = *(TEventsEventType*)aEvent.EventData();
// Print the data
iEikonEnv->InfoMsg(event.data);
}
// Call the base class implementation
CEikAppUi::HandleApplicationSpecificEventL(aType, aEvent);
}