This app is having two class Id.
AEECLSID_SHELL_MAIN_APP - Main application class Id
AEECLSID_SHELL_SUPPORT_APP - Support application class id
The application sends events from AEECLSID_SHELL_MAIN_APP to AEECLSID_SHELL_SUPPORT_APP
the excerpt is given below.
ISHELL_SendEvent (pMe->a.m_pIShell, AEECLSID_SHELL_SUPPORT_APP,
EVT_USER, SEND_EVENT_16BITDATA, COMMON_32BIT_EVENT_DATA);
The following are the definitions of the constants in the above functions.
#define SEND_EVENT_16BITDATA 0
#define POST_EVENT_16BITDATA 1
#define HANDLE_EVENT_16BITDATA 2
#define COMMON_32BIT_EVENT_DATA 0
For testing purpose, altered the above data as
#define SEND_EVENT_16BITDATA 0
#define POST_EVENT_16BITDATA 1
#define COMMON_32BIT_EVENT_DATA "This is a sample data 32 bit"
and the receiving end, the loop is printed as
case EVT_USER:
{
switch (wParam)
{
case SEND_EVENT_16BITDATA:
DBGPRINTF("======= The Event Received in SendEvent is %s",dwParam);
ISHELL_StartApplet(pMe->a.m_pIShell,AEECLSID_SHELL_SUPPORT_APP);
return TRUE;
case POST_EVENT_16BITDATA:
DBGPRINTF("======= The Event Received in PostEvent is %s",dwParam);
ISHELL_StartApplet(pMe->a.m_pIShell,AEECLSID_SHELL_SUPPORT_APP);
return TRUE;
}
}
There is another event passing mechanism introduced in Brew 3.1 is ISHELL_SendURL and ISHELL_PostURL.
ISHELL_SendURL() posts asynchronous event EVT_APP_POST_URL to the applet associated with the URL scheme. The following are the signatures of the app.
boolean ISHELL_PostURL(IShell *po, const char * pszURL);
boolean ISHELL_SendURL(IShell *po, const char * pszURL);
A somewhat nice reference for this is available at the pdf
No comments:
Post a Comment