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