📄 myiaddrbook.step5
字号:
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 + -