?? abr_function.c
字號:
if(pR)
{
int nFields;
int i;
AEEAddrField *ptr = NULL;
bFlgNameGet = FALSE;
bFlgNumGet = FALSE;
nFields= IADDRREC_GetFieldCount(pR);
for(i = 0; i < nFields; i++)
{
ptr = IADDRREC_GetField(pR,i);
DBGPRINTF("lintao fID =%d", ptr->fID);
DBGPRINTF("lintao fType=%d", ptr->fType);
// find name field and save it;
if ( ptr->fID == AEE_ADDRFIELD_NAME
||ptr->fID == AEE_ADDRFIELD_FIRSTNAME
||ptr->fID == AEE_ADDRFIELD_LASTNAME
||ptr->fID == AEE_ADDRFIELD_NICKNAME)
{
if(bFlgNameGet==FALSE)
{
bFlgNameGet = TRUE;
field.fID = ptr->fID;
field.fType = ptr->fType;
field.pBuffer = pTextName;
field.wDataLen = (WSTRLEN(pTextName)+1)*sizeof(AECHAR);
IADDRREC_UpdateField(pR, i, &field);
}
}
// find number field and save it;
if ( ptr->fID >= AEE_ADDRFIELD_PHONE_WORK
&& ptr->fID <= AEE_ADDRFIELD_PHONE_OTHER)
{
if(bFlgNumGet==FALSE)
{
bFlgNumGet = TRUE;
field.fID = ptr->fID;
field.fType = ptr->fType;
field.pBuffer = pTextNum;
field.wDataLen = (WSTRLEN(pTextNum)+1)*sizeof(AECHAR);
IADDRREC_UpdateField(pR, i, &field);
}
}
}
// 姓名和號碼均有
if(bFlgNameGet && bFlgNumGet)
{
nRet=0;
}
else
{
nRet=4;
}
}
else
{
nRet=2; // IADDRBOOK_GetRecByID fail
}
IADDRBOOK_Release(pb);
}
else
{
nRet = 3;
}
DBGPRINTF("nRet=%d", nRet);
return nRet;
}
/*===========================================================================
FUNCTION: ABR_DeleteContactRec
DESCRIPTION:
This function delete record whose id is wID
PARAMETERS:
pMe [in] - Pointer to the CAddrBookRuim structure. This structure contains
information specific to this applet.
wID[in] - record id which is want to be deleted
DEPENDENCIES:
None
RETURN VALUE:
AEE_SUCCESS - IADDRREC_RemoveRec operate successfully
other - fail
SIDE EFFECTS:
None
===========================================================================*/
int32 ABR_DeleteContactRec( CAddrBookRuim *pMe, AEECLSID ContactCLS, uint16 wID)
{
int nRet = 0;
IAddrBook *pb;
IAddrRec *pR;
if ( pMe==NULL || pMe->pIShell==NULL )
{
return (-1);
}
if(!ISHELL_CreateInstance(pMe->pIShell, ContactCLS, (void **)&pb))
{
pR = IADDRBOOK_GetRecByID(pb, wID);
if(pR)
{
nRet = IADDRREC_RemoveRec(pR);
}
else
{
nRet = 2; // IADDRBOOK_GetRecByID fail
}
IADDRBOOK_Release(pb);
}
else
{
nRet = 1;
}
return nRet;
}
/*===========================================================================
FUNCTION: ARB_GetTotalRecNum
DESCRIPTION:
This function get all record count in address book
PARAMETERS:
pMe [in] - Pointer to the CAddrBookRuim structure. This structure contains
information specific to this applet.
DEPENDENCIES:
None
RETURN VALUE:
records count in address book
SIDE EFFECTS:
None
===========================================================================*/
uint32 ARB_GetTotalRecNum( CAddrBookRuim * pMe, AEECLSID ContactCLS )
{
IAddrBook *pb;
int nCount=0;
if(pMe==NULL||pMe->pIShell==NULL)
{
return 0;
}
DBGPRINTF("contact cls id=0x%x",ContactCLS);
if(!ISHELL_CreateInstance(pMe->pIShell, ContactCLS, (void **)&pb))
{
nCount = IADDRBOOK_GetNumRecs(pb);
IADDRBOOK_Release(pb);
}
return nCount;
}
/*===========================================================================
FUNCTION: ABR_GetContactFieldByItemID
DESCRIPTION:
This function get all fields of record whose id is wID
PARAMETERS:
pMe [in] - Pointer to the CAddrBookRuim structure. This structure contains
information specific to this applet.
wID[in] - record id to be query
pTextName[out] - name field
pTextNum[out] - number field
DEPENDENCIES:
None
RETURN VALUE:
AEE_SUCCESS - IADDRREC_UpdateAllFields operate successfully
other - fail
SIDE EFFECTS:
None
===========================================================================*/
int32 ABR_GetContactFieldByItemID(CAddrBookRuim *pMe, AEECLSID ContactCLS, uint16 wID, AECHAR *pTextName, AECHAR *pTextNum)
{
int nRet = 0;
IAddrBook *pb;
IAddrRec *pR;
boolean bFlgNameGet;
boolean bFlgNumGet;
if(pMe==NULL || pMe->pIShell==NULL || pTextName==NULL || pTextNum==NULL)
{
return (-1);
}
if(!ISHELL_CreateInstance(pMe->pIShell, ContactCLS, (void **)&pb))
{
pR =IADDRBOOK_GetRecByID(pb, wID);
if(pR)
{
AEEAddrField *ptr = NULL;
int i;
int nFields;
bFlgNameGet = FALSE;
bFlgNumGet = FALSE;
nFields= IADDRREC_GetFieldCount(pR);
for(i = 0; i < nFields; i++)
{
ptr = IADDRREC_GetField(pR,i);
// find name field and save it;
if ( ptr->fID == AEE_ADDRFIELD_NAME
||ptr->fID == AEE_ADDRFIELD_FIRSTNAME
||ptr->fID == AEE_ADDRFIELD_LASTNAME
||ptr->fID == AEE_ADDRFIELD_NICKNAME)
{
if(bFlgNameGet==FALSE)
{
bFlgNameGet = TRUE;
WSTRCPY(pTextName, ptr->pBuffer);
}
}
// find number field and save it;
if ( ptr->fID >= AEE_ADDRFIELD_PHONE_WORK
&& ptr->fID <= AEE_ADDRFIELD_PHONE_OTHER)
{
if(bFlgNumGet==FALSE)
{
bFlgNumGet = TRUE;
WSTRCPY(pTextNum, ptr->pBuffer);
}
}
}
if(bFlgNameGet && bFlgNumGet)
{
nRet=0;
}
else
{
nRet=3;
}
}
else
{
nRet=2; // IADDRBOOK_GetRecByID fail
}
IADDRBOOK_Release(pb);
}
else
{
nRet = 1; // fail ISHELL_CreateInstance
}
return nRet;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -