⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zhuzhu.c

📁 Effect vibrate in main menu. BREW SIEMENS SXG75.
💻 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 + -