///--------------------------------------------------
/// 读取日历信息
///--------------------------------------------------
///STEP1 建立session
CCalSession* iCalSession = CCalSession::NewL();
TRAPD(err, iCalSession->OpenL(KNullDesC));
if(err == KErrNotFound)
{
delete iCalSession;
iCalSession = NULL;
return;
}
///STEP2 建立视图
CCalEntryView* iCalEntryView = CCalEntryView::NewL(*iCalSession, *this);
TTime zeroTime(TDateTime(2000, EJanuary, 1, 1, 1, 1, 1));
TCalTime calTime;
calTime.SetTimeUtcL(zeroTime);
///STEP3 得到筛选列表
RArray<TCalLocalUid> uidAry;
TRAPD(err1, iCalEntryView->GetIdsModifiedSinceDateL(calTime, uidAry));
if (err1 == KErrNone)
{
TBuf<256> bufTemp;
///STEP4 遍历列表,处理每一个日程子项
for (int i = 0; i < uidAry.Count(); ++i)
{
CCalEntry* entry = iCalEntryView->FetchL(uidAry[i]);
if (entry && entry->EntryTypeL() == CCalEntry::EAppt)
{
// 主题
//entry->SummaryL()
// 位置
//entry->LocationL()
// 起始时间
//TTime t1 = entry->StartTimeL().TimeLocalL();
//t1.FormatL(bufTemp, _L("%D%M%Y%/0%1%/1%2%/2%3%/3%-B%:0%J%:1%T%:3%+B"));
// 终止时间
//t1 = entry->EndTimeL().TimeLocalL();
//t1.FormatL(bufTemp, _L("%D%M%Y%/0%1%/1%2%/2%3%/3%-B%:0%J%:1%T%:3%+B"));
}
else
{
}
delete entry;
entry = NULL;
}
}
else
{
iLog.WriteFormat(_L("CalView err = %d"), err1);
}
iLog.Write(_L("Release"));
/// Release.
uidAry.Close();
///STEP5 释放视图和会话
delete iCalEntryView;
iCalEntryView = NULL;
delete iCalSession;
iCalSession = NULL;