Windows Mobile 建立与短信信箱的连接
2010-06-03 22:56:00 来源:WEB开发网if(NULL!=m_pMsgStore)
{
m_pMsgStore->Release();
}
7. 与某一具体信箱建立连接,获取具体信箱接口IMAPIFolder对象
获取具体信箱IMAPIFolder对象要比获取IMsgStore对象容易很多,因为在短信仓库MsgStore下,只有收件箱,发件箱,草稿箱,废件箱,已发送邮件箱5种具体信箱(Folder),我们可以通过指定要获取的信箱(Folder)类型来直接获取指向该具体信箱的 IMAPIFolder对象。
首先,依旧需要建立一个动态的SPropTagArray结构体变量,用于告诉短信仓库IMsgStore对象,我们需要获取哪一个具体信箱的IMAPIFolder对象,代码如下:
SizedSPropTagArray(1, Columns) =
{
1,
PR_CE_IPM_INBOX_ENTRYID /*表示要获取指向系统收件箱的IMAPIFolder对象*/
};
用于表示具体信箱(Folder)的标志:
PR_CE_IPM_INBOX_ENTRYID:系统收件箱
PR_CE_IPM_OUTBOX_ENTRYID:系统发件箱
PR_CE_IPM_DRAFTS_ENTRYID:草稿箱
PR_IPM_SENTMAIL_ENTRYID:已发邮件箱
PR_IPM_WASTEBASKET_ENTRYID):废件箱
然后我们需要用一个新的方法GetProps来获取具体信箱(Folder)的属性信息,其实我们的主要目的是获取属性中该具体信箱的EntryID。该方法被定义为:
HRESULT IMsgStore::GetProps(SPropTagArray *,ULONG,ULONG *,SPropTagArray**);
方法返回值标志方法是否执行成功。参数说明:
SPropTagArray * :利用前面动态结构体对象Columns,告诉IMsgStore对象,我需要取哪个具体信箱的属性。
ULONG:指明当前的编码方式,MAPI_UNICODE
SPropTagArray**:用于返回从具体信箱中获取的属性
最后用IMsgStore对象的OpenEntry方法建立获取指向具体信箱的IMAPIFolder接口对象。该方法的定义与IMAPISession中的同名对象相同,这里不再赘述。
获取指向具体信箱的IMAPIFolder接口对象的源程序如下:
HRESULT hr=0;
LPSPropValue stProps = NULL;
ULONG ulValues = 0;
SizedSPropTagArray(1, Columns) =
{
1,
PR_CE_IPM_INBOX_ENTRYID /*表示要获取指向系统收件箱的IMAPIFolder对象*/
更多精彩
赞助商链接