?? zhuzhu.c
字號:
#include "zhuzhu.h"
int AEEClsCreateInstance(AEECLSID ClsId, IShell *pIShell, IModule *po, void **ppObj)
{
*ppObj = NULL;
if( ClsId == AEECLSID_ZHUZHU )
{
if( AEEApplet_New(sizeof(zhuzhu),
ClsId,
pIShell,
po,
(IApplet**)ppObj,
(AEEHANDLER)zhuzhu_HandleEvent,
(PFNFREEAPPDATA)zhuzhu_FreeAppData) )
{
if(zhuzhu_InitAppData((zhuzhu*)*ppObj))
{
return(AEE_SUCCESS);
}
else
{
IAPPLET_Release((IApplet*)*ppObj);
return EFAILED;
}
}
}
return(EFAILED);
}
static boolean zhuzhu_HandleEvent(zhuzhu* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
switch (eCode)
{
case EVT_APP_START:
ISHELL_CloseApplet(pMe->a.m_pIShell, FALSE);
zhuzhu_LoadDefaultConfigValues(pMe);
zhuzhu_LoadConfig(pMe);
return TRUE;
case EVT_APP_START_BACKGROUND:
zhuzhu_LoadDefaultConfigValues(pMe);
zhuzhu_LoadConfig(pMe);
return TRUE;
case EVT_APP_STOP:
if (!pMe->m_pClose)
*((boolean*) dwParam) = FALSE;
return(TRUE);
case EVT_APP_SUSPEND:
return(TRUE);
case EVT_APP_RESUME:
return(TRUE);
case EVT_KEY_HOOK_PRESS:
if (wParam == AVK_UP || wParam == AVK_DOWN || wParam == AVK_LEFT || wParam == AVK_RIGHT)
if (zhuzhu_CheckApp(pMe) && zhuzhu_CheckAppNoSt(pMe))
ISound_Vibrate(pMe->m_pSound, 10);
return(FALSE);
case EVT_USER:
if (wParam == 0x000F && dwParam == 0x0001){
pMe->m_pClose = TRUE;
ISHELL_CloseApplet(pMe->a.m_pIShell, FALSE);
}
return(FALSE);
case EVT_APP_MESSAGE:
return(TRUE);
case EVT_KEY:
return(TRUE);
default:
break;
}
return FALSE;
}
boolean zhuzhu_InitAppData(zhuzhu* pMe)
{ pMe->DeviceInfo.wStructSize = sizeof(pMe->DeviceInfo);
ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&pMe->DeviceInfo);
ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_SOUND, (void **)&pMe->m_pSound);
return TRUE;
}
void zhuzhu_FreeAppData(zhuzhu* pMe)
{
zhuzhu_UnLoadConfigValues(pMe);
}
boolean zhuzhu_CheckApp(zhuzhu* pMe)
{
IAppHistory * pHistory;
AEECLSID pcls;
boolean result;
int i;
const AEECLSID dwMenuCls = 0x0102CEF9;
result = FALSE;
ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_APPHISTORY, (void**)&pHistory);
if (!pHistory)
return FALSE;
IAPPHISTORY_GetClass(pHistory, &pcls);
for (i = 1; i < MAX_KEEP_APPLETS_COUNT; i++)
{
if (pMe->pConfig->m_lKeepActiveApplets[i] == pcls)
{
result = TRUE;
break;
}
}
IAPPHISTORY_Release(pHistory);
return result;
}
boolean zhuzhu_CheckAppNoSt(zhuzhu* pApp)
{
IAppHistory * pHistory;
AEECLSID pcls;
boolean result;
int i;
result = TRUE;
ISHELL_CreateInstance(pApp->a.m_pIShell, AEECLSID_APPHISTORY, (void**)&pHistory);
if (!pHistory)
return FALSE;
while (IAPPHISTORY_Back(pHistory) == SUCCESS)
{
IAPPHISTORY_GetClass(pHistory, &pcls);
if (pcls == 0x0102BCFF
|| pcls == 0x01034F9A
|| pcls == 0x0106d97A)
result = FALSE;
}
IAPPHISTORY_Release(pHistory);
return result;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -