任何人都可以发布一个例子,如何在Windows移动设备6上阅读消息库? 我用“InTheHand”完成了这个:
foreach (InTheHand.WindowsMobile.PocketOutlook.SmsMessage mess in sess.SmsAccount.SentItems)
{
if (mess.Received.Year == thisYear && mess.Received.Month == thisMonth)
{
smsThisMonth++;
}
}
问题是,我只有InTheHand的评估版本。 如果可能的话,我想用OpenNetCF或mapidotnet来做这件事。 但我没有弄清楚如何使用OpenNetCF执行此操作,并且sourceforge网站(http://sourceforge.net/projects/mapidotnet/)上不再提供mapitdotnet。 我只在svn目录中找到它,但没有dll。
答案 0 :(得分:1)
所有OpenNETCF库都没有提供此功能。我们没有打算尝试实现它,因为已经有一个可用的解决方案(InTheHand的库)和I don't like reinventing the wheel if there's a perfectly good one already available。
如果他们的价格过于苛刻,您可以随时查看this MSDN article on COM Interop in the CF并将其与某些online tutorials on MAPI和the MAPI documentation结合使用。
The MAPIDotNet project is probably worth investigation too。你说没有二进制文件,但这有什么关系?你有一个编译器。
即使在C ++中,MAPI也很复杂且令人困惑。根据经验,我可以告诉你,在C#中完成所有工作(我在InTheHand拥有他们的产品之前的1.0天内做过)需要至少一周的时间,如果你知道如何使用COM和C ++。
答案 1 :(得分:1)
好的,我想通过mapidotnet如何做到这一点:
MAPI mapi = new MAPI();
IMAPIMsgStore[] stores = mapi.MessageStores;
for (int i = 0; i < stores.Length; i++)
{
if (stores[i].DisplayName == @"SMS")
{
IMAPIFolder smsSentFolder = stores[i].SentMailFolder.OpenFolder();
smsSentFolder.SortMessagesByDeliveryTime(TableSortOrder.TABLE_SORT_DESCEND);
IMAPIMessage[] messages = smsSentFolder.GetNextMessages(999);
for (int n = 0; n < messages.Length; n++)
{
if (messages[n].LocalDeliveryTime.Month == monat && messages[n].LocalDeliveryTime.Year == jahr)
{
smsDiesenMonat++;
}
}
}
我实际编译了该项目,但是我有一个奇怪的错误,我无法将Mapilib.dll添加到我的项目中。 但现在我开始工作了。