Windows Mobile 建立与短信信箱的连接
2010-06-03 22:56:00 来源:WEB开发网OK,相关的内容基本上已经介绍完了,说了很多,估计您已经看的云里雾里了,还是用一段完整程序来给上面的内容做一个总结吧。
IMAPITable *m_pTable = NULL;
HRESULT hr = 0;
SRowSet *m_pRows = NULL;
SizedSPropTagArray(2 , Columns) =
{
2 ,
PR_ENTRYID, //
PR_DISPLAY_NAME //Display Name
};
if(NULL==m_pSession)
{
//异常处理
}
hr=m_pSession->GetMsgStoresTable(MAPI_UNICODE , &m_pTable); //获取IMAPITable对象
if(FAILED(hr) || NULL==m_pTable)
{
//没有取到表结构或取表结构时出错
}
hr=m_pTable->SetColumns((LPSPropTagArray)&Columns, 0); //设置行记录结构
if(FAILED(hr))
{
//异常处理
}
while(SUCCEEDED(m_pTable->QueryRows(1, 0, &m_pRows))) //循环遍历所有行记录
{
if (NULL == m_pRows || m_pRows->cRows != 1)
{
break;
}
//查找显示名字为SMS的行记录
if (_tcsicmp(m_pRows->aRow[0].lpProps[1].Value.lpszW, _T("SMS")) == 0)
{
ULONG ulMsgType;
//则获取指向短信仓库的对象
hr=m_pSession->OpenEntry(m_pRows->aRow[0].lpProps[0].Value.bin.cb,
(LPENTRYID)m_pRows->aRow[0].lpProps[0].Value.bin.lpb,
NULL,
MAPI_BEST_ACCESS,
&ulMsgType,
(LPUNKNOWN*)&m_pMsgStore);
if(FAILED(hr) || NULL==m_pMsgStore)
{
//异常处理
}
break;
}
FreeProws(m_pRows); //释放
m_pRows = NULL;
}
if(m_pRows) //释放资源
{
FreeProws(m_pRows);
m_pRows = NULL;
}
6. 释放IMsgStore对象
IMsgStore接口提供了Release方法释放对象资源,调用方式如下:
赞助商链接