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

📄 myiaddrbook.step5

📁 高通 BREW 培训 实用例子
💻 STEP5
📖 第 1 页 / 共 2 页
字号:
						
						if(IADDRREC_AddField(pRec,(AEEAddrField*)(&field[0])) == AEE_SUCCESS)
							ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_ADD_FIELD_OK, szText, sizeof(szText));
						else
							ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_ADD_FIELD_FAIL, szText, sizeof(szText));
						
						IADDRREC_Release(pRec);
					}
					else
						ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_LOCATE_ERR, szText, sizeof(szText));
				}
				else
					ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_SEARCH_INI_ERR, szText, sizeof(szText));
			// end of lab 2
				break;
			case IDS_UPDATE_FIELD:
			// lab 3
				STRCPY(szName,"My BREW");
				STRTOWSTR(szName,aszName,60);
				
				nSize = (WSTRLEN(aszName)+1) *sizeof(AECHAR);
				nRet = IADDRBOOK_EnumRecInit(pMe->m_pAddrBook,  AEE_ADDR_CAT_NONE, AEE_ADDRFIELD_NAME, (void *)aszName, nSize);
				if(nRet == AEE_SUCCESS)
				{
					pRec = IADDRBOOK_EnumNextRec(pMe->m_pAddrBook);
					if(pRec)
					{						
						//Change Work Phone Number
						AEEAddrField newF, *ptr = NULL;
						int i,nFields = IADDRREC_GetFieldCount(pRec);						
						
						for(i = 0; i < nFields; i++)
						{
							ptr = IADDRREC_GetField(pRec,i);
							if(ptr->fID == AEE_ADDRFIELD_PHONE_WORK)
								break;
						}
						if(ptr)
						{
							newF.fID = ptr->fID;
							newF.fType = ptr->fType;
							STRCPY(szWorkNum,"13331303130");
							STRTOWSTR(szWorkNum,aszWorkNum,40);
							newF.pBuffer = aszWorkNum;
							newF.wDataLen = (WSTRLEN(aszWorkNum)+1)*sizeof(AECHAR);
							
							if(IADDRREC_UpdateField(pRec,i,&newF) == AEE_SUCCESS)
								ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_UPDATE_FIELD_OK, szText, sizeof(szText));
							else
								ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_UPDATE_FIELD_FAIL, szText, sizeof(szText));
						}
						else
							ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_LOCATE_FIELD_ERR, szText, sizeof(szText));
						
						IADDRREC_Release(pRec);
					}
					else
						ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_LOCATE_ERR, szText, sizeof(szText));
				}
				else
					ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_SEARCH_INI_ERR, szText, sizeof(szText));
				// end of lab 3
				break;
			case IDS_DEL_FIELD:
			//lab 4
				STRCPY(szName,"My BREW");
				STRTOWSTR(szName,aszName,60);
				
				nSize = (WSTRLEN(aszName)+1) *sizeof(AECHAR);
				nRet = IADDRBOOK_EnumRecInit(pMe->m_pAddrBook,  AEE_ADDR_CAT_NONE, AEE_ADDRFIELD_NAME, (void *)aszName, nSize);
				if(nRet == AEE_SUCCESS)
				{
					pRec = IADDRBOOK_EnumNextRec(pMe->m_pAddrBook);
					if(pRec)
					{
						
						nCount = IADDRREC_GetFieldCount(pRec);
						
						if(IADDRREC_RemoveField(pRec,nCount-1) == AEE_SUCCESS)
							ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_DEL_FIELD_OK, szText, sizeof(szText));
						else
							ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_DEL_FIELD_FAIL, szText, sizeof(szText));
						
						IADDRREC_Release(pRec);
					}
					else
						ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_LOCATE_ERR, szText, sizeof(szText));
				}
				else
					ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_SEARCH_INI_ERR, szText, sizeof(szText));
			// end of lab 4	
					
			 break;
			case IDS_ENUM_FIELDS:
				// lab 5
				if(IADDRBOOK_EnumFieldsInfoInit(pMe->m_pAddrBook,AEE_ADDR_CAT_PERSONAL) == AEE_SUCCESS)
				{
					AEEAddrFieldInfo fInfo;
					nCount = 0;
					while(IADDRBOOK_EnumNextFieldsInfo(pMe->m_pAddrBook,&fInfo))
                        nCount++;
					
					SPRINTF(szName,"%d",nCount);
					
					STRTOWSTR(szName,aszName,sizeof(szName));
					ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_ENUM_FIELD_OK, szText, sizeof(szText));
					WSTRCAT(szText,aszName);
				}
				else
					ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_ENUM_FIELD_FAIL, szText, sizeof(szText));
				// end of lab 5
				break;
			case IDS_ENUM_CAT:
			// lab 6
				if(IADDRBOOK_EnumCategoryInit(pMe->m_pAddrBook) == AEE_SUCCESS)
				{
					AEEAddrCat cat;
					nCount = 0;
					while(IADDRBOOK_EnumNextCategory(pMe->m_pAddrBook,&cat))
                        nCount++;
					
					SPRINTF(szName,"%d",nCount);
					STRTOWSTR(szName,aszName,sizeof(szName));
					ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_ENUM_CAT_OK, szText, sizeof(szText));
					WSTRCAT(szText,aszName);
				}
				else
					ISHELL_LoadResString(pMe->a.m_pIShell, MYIADDRBOOK_RES_FILE, IDS_ENUM_CAT_FAIL, szText, sizeof(szText));
					// end of lab 6
				break;
			case IDS_DEL_REC:
			// lab 7
			
				// end of lab 7
				break;
			}
				IMENUCTL_Release(pMe->m_pIMenu);
				pMe->m_pIMenu = NULL;
				//lab 1
				IDISPLAY_ClearScreen(pMe->pIDisplay);
				myiaddrbook_DiaplayInfo(pMe,szText);
				// end of lab 1
		}
		break;

        // If nothing fits up to this point then we'll just break out
        default:
            break;
   }

   return FALSE;
}


// this function is called when your application is starting up
boolean myiaddrbook_InitAppData(myiaddrbook* pMe)
{
    // Get the device information for this handset.
    // Reference all the data by looking at the pMe->DeviceInfo structure
    // Check the API reference guide for all the handy device info you can get
    pMe->DeviceInfo.wStructSize = sizeof(pMe->DeviceInfo);
    ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&pMe->DeviceInfo);

    // The display and shell interfaces are always created by
    // default, so we'll asign them so that you can access
    // them via the standard "pMe->" without the "a."
    pMe->pIDisplay = pMe->a.m_pIDisplay;
    pMe->pIShell   = pMe->a.m_pIShell;

    // Insert your code here for initializing or allocating resources...

	if( ISHELL_CreateInstance(pMe->pIShell, AEECLSID_MENUCTL, (void **)&pMe->m_pIMenu) !=SUCCESS)
	{
		IMENUCTL_Release( pMe->m_pIMenu );
		return EFAILED;
	}
	// lab 1
	if( ISHELL_CreateInstance(pMe->pIShell, AEECLSID_STATIC, (void **)&pMe->m_pIStatic) !=SUCCESS)
	{
		ISTATIC_Release( pMe->m_pIStatic );
		return EFAILED;
	}
	if( ISHELL_CreateInstance(pMe->pIShell, AEECLSID_ADDRBOOK, (void **)(&pMe->m_pAddrBook))!=SUCCESS )
		return EFAILED;
// end of lab 1
    // if there have been no failures up to this point then return success
    return TRUE;
}

// this function is called when your application is exiting
void myiaddrbook_FreeAppData(myiaddrbook* pMe)
{
    // insert your code here for freeing any resources you have allocated...

    // example to use for releasing each interface:
	if( pMe->m_pIMenu )
	{
		IMENUCTL_Release(pMe->m_pIMenu);
		pMe->m_pIMenu = NULL;
	}
	// lab 1
		if(pMe->m_pAddrBook)
	{
		IADDRBOOK_Release(pMe->m_pAddrBook);
		pMe->m_pAddrBook = NULL;
	}
	if(pMe->m_pIStatic)
	{
		ISTATIC_Release(pMe->m_pIStatic);
		pMe->m_pIStatic = NULL;
	}
	// end of lab 1
}
static void  myiaddrbook_ShowMenu(myiaddrbook* pMe)
{
	CtlAddItem  ai;
	if (! pMe->m_pIMenu)
		ISHELL_CreateInstance(pMe->pIShell, AEECLSID_MENUCTL, (void **)&pMe->m_pIMenu) ;
	
	ai.pText = NULL;
	ai.pImage = NULL;
	ai.pszResImage = MYIADDRBOOK_RES_FILE;
	ai.pszResText = MYIADDRBOOK_RES_FILE;
	ai.wFont = AEE_FONT_NORMAL;
	ai.dwData = NULL;
	
	ai.wText = IDS_ADD_REC;   
	ai.wImage = IDB_MENU;
	ai.wItemID = IDS_ADD_REC;
	
	
	// Add the item to the menu control
	if(IMENUCTL_AddItemEx(pMe->m_pIMenu, &ai )==FALSE)
	{
		IMENUCTL_Release(pMe->m_pIMenu);
		return;
	}
	
	ai.wText = IDS_ADD_FIELD;
	ai.wItemID = IDS_ADD_FIELD;
	
	// Add the item to the menu control
	IMENUCTL_AddItemEx( pMe->m_pIMenu, &ai );
	
	ai.wText = IDS_UPDATE_FIELD;
	ai.wItemID = IDS_UPDATE_FIELD;
	
	// Add the item to the menu control
	IMENUCTL_AddItemEx( pMe->m_pIMenu, &ai );
	ai.wText = IDS_DEL_FIELD;
	ai.wItemID = IDS_DEL_FIELD;
	
	// Add the item to the menu control
	IMENUCTL_AddItemEx( pMe->m_pIMenu, &ai );
	
	ai.wText = IDS_ENUM_FIELDS;
	ai.wItemID = IDS_ENUM_FIELDS;
	
	// Add the item to the menu control
	IMENUCTL_AddItemEx( pMe->m_pIMenu, &ai );
		ai.wText = IDS_ENUM_CAT;
	ai.wItemID = IDS_ENUM_CAT;
	
	// Add the item to the menu control
	IMENUCTL_AddItemEx( pMe->m_pIMenu, &ai );

		ai.wText = IDS_DEL_REC;
	ai.wItemID = IDS_DEL_REC;
	
	// Add the item to the menu control
	IMENUCTL_AddItemEx( pMe->m_pIMenu, &ai );
	IMENUCTL_SetActive(pMe->m_pIMenu,TRUE);
}

// lab 1
static void	 myiaddrbook_DiaplayInfo(myiaddrbook* pMe,AECHAR* pInfo)
{
	AEERect rct;
	
	if(!pMe->m_pIStatic)
		ISHELL_CreateInstance(pMe->pIShell, AEECLSID_STATIC, (void **)&pMe->m_pIStatic);
	SETAEERECT(&rct, 16, 16, pMe->DeviceInfo.cxScreen-32, pMe->DeviceInfo.cyScreen-32);
	ISTATIC_SetRect(pMe->m_pIStatic, &rct);
	ISTATIC_SetText(pMe->m_pIStatic, NULL,pInfo, AEE_FONT_BOLD, AEE_FONT_NORMAL);
	ISTATIC_Redraw(pMe->m_pIStatic);
}
// end of lab 1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -