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); }