symbian mtm操作
2010-08-20 01:50:00 来源:WEB开发网下面的消息操作使用了一个CMsvEntry或CMsvServerEntry的指针对象,这两个类提供的基本功能一样,但有一部分函数名会不一样,可以查一下SDK。
1.获得当前数据项索引和ID
TMsvEntry oldEntry = iServerEntry->Entry(); //这里iServerEntry应该是CMsvServerEntry
TMsvId oldContext = oldEntry.Id(); //如果使用CMsvEntry可以直接使用Id()
2.定位到指定数据项
在更换当前数据项之前通常先保存当前数据项索引ID,更换数据项并完成相关操作后再更换回原来的数据项,这可以避免影响其它函数,是一个很好习惯。
TMsvId oldContext = iServerEntry->Entry().Id();
//使用SetEntry()更换当前数据项到root
iServerEntry->SetEntry(KMsvRootIndexEntryId);
//具体操作后更换回原来数据项
iServerEntry->SetEntry(oldContext);
3.查找数据项
下面的三个CMsvEntry成员函数都能完成在当前数据项下进行查找的功能:
CMsvEntrySelection* ChildrenWithMtmL(TUid aMtm) const;
根据消息服务(MTM)进行查找,查找消息索引对象(TMsvEntry)的成员iMtm等于aMtm的数据项ID。
CMsvEntrySelection* ChildrenWithServiceL(TMsvId aId) const;
根据消息服务ID进行查找,查找消息索引对象(TMsvEntry)的成员iServiceId等于aId的数据项ID。
CMsvEntrySelection* ChildrenWithTypeL(TUid aEntryType) const;
根据数据项类型进行查找,查找消息索引对角的(TMsvEntry)的成员iType等于aEntryType的数据项ID。
CMsvServerEntry与之相对应的三个函数为GetChildrenWithMtm(), GetChildrenWithService(), GetChildrenWithType(),注意的一点是CMsvEntry的三个函数都返回一个CMsvEntrySelection对象的指针,使用完之后我们要负责释放,使用CMsvServerEntry的三个函数需要事先构造一个CMsvEntrySelection对象,用完之后也需要释放。
找出POP3邮箱个数的代码:
iMsvEntry->SetEntryL( KUidMsgTypePop3 );
CMsvEntrySelection* sel = NULL;
sel = entry->ChildrenWithMtmL( KPkiSmtpTechnologyTypeUid );
TInt cnt = sel->Count(); //获得集合中数据项的个数
更多精彩
赞助商链接