WEB开发网
开发学院手机开发Windows Mobile 开发 Windows Mobile 建立与短信信箱的连接 阅读

Windows Mobile 建立与短信信箱的连接

 2010-06-03 22:56:00 来源:WEB开发网   
核心提示:IMAPISession *m_pSession=NULL;hr=MAPILogonEx(NULL,NULL,NULL,NULL,&m_pSession);if(FAILED(hr) || NULL==m_pSession){//异常处理}3. 如何终止与短信(邮件)系统的会话,并释放Session对象使用IMAPIS

IMAPISession *m_pSession=NULL;

hr=MAPILogonEx(NULL,NULL,NULL,NULL,&m_pSession);

if(FAILED(hr) || NULL==m_pSession)

{

//异常处理

}

3. 如何终止与短信(邮件)系统的会话,并释放Session对象

使用IMAPISession接口中Logoff方法可以终止与短信(邮件)系统的会话,Logoff方法定义为:

HRESULT IMAPISession::Logoff(ULONG ulUIParam,ULONG ulFlags,ULONG ulReserved);

方法返回一个HRESULT对象,通过它可以判断调用是否成功。前两个参数的意义与MAPILogonEx中的同名参数相同,最后一个参数保留不用。对于短信操作来说,三个参数均可设置为NULL。

当成功Logoff以后,如果确信不再需要Session对象以后,可以通过Release方法释放对象。源代码如下:

if(NULL!=m_pSession) //释放Session

{

HRESULT hr=m_pSession->Logoff(NULL,NULL,NULL);

if(FAILED(hr))

{

//异常处理

}

m_pSession->Release();

m_pSession=NULL;

}

4. 短信(邮件)仓库接口IMsgStore

IMsgStore继承自IMAPIProp接口,而IMAPIProp接口又继承自IUnknow接口,这个接口中值得我们重点关注的函数有GetProps,OpenEntry两个函数,后面我们将会通过这两个函数获取具体信箱(Folder)对象。

5. 建立与短信仓库的连接

在实现连接以前,先来看一个很有意思的宏

#define SizedSPropTagArray(_ctag, _name)

struct _SPropTagArray_ ## _name

{

ULONG cValues;

ULONG aulPropTag[_ctag];

} _name

为什么说这个结构体有意思,仔细看一下就知道了,利用了一个带参数的宏,实现了动态声明结构体的功能,更奇妙的是,连结构体的名称都可以动态创建。大家别怪我顾洛寡闻,这种声明方式还真是不太常见。这个数据结构在Cemapi中扮演一个很重要的角色,通过定制的实现它,可以告诉函数,我希望获取或设置那些属性。看下面一段程序:

SizedSPropTagArray(2 , Columns) = {

2,

PR_ENTRYID, //Entry ID

PR_DISPLAY_NAME //Display Name

上一页  1 2 3 4 5 6 7  下一页

Tags:Windows Mobile 建立

编辑录入:coldstar [复制链接] [打 印]
赞助商链接