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

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

 2010-06-03 22:56:00 来源:WEB开发网   
核心提示:#define TBL_LEAF_ROW ((ULONG) 1)#define TBL_EMPTY_CATEGORY ((ULONG) 2)#define TBL_EXPANDED_CATEGORY ((ULONG) 3)#define TBL_COLLAPSED_CATEGORY ((ULONG) 4)SRowSet

#define TBL_LEAF_ROW ((ULONG) 1)

#define TBL_EMPTY_CATEGORY ((ULONG) 2)

#define TBL_EXPANDED_CATEGORY ((ULONG) 3)

#define TBL_COLLAPSED_CATEGORY ((ULONG) 4)

SRowSet **:这个参数用于返回查找到的行记录。

每次QueryRows成功执行以后,IMAPITable中的游标会自动移动第一个参数LONG行记录,直到遍历完毕为止。

现在我们已经获取短信邮件系统中的所有短信邮件仓库了,下面要做的就是找到显示名称为SMS的那个MsgStore仓库,并获去指向该仓库的对象指针。还记得Columns这个动态结构体变量吗?我们通过SetColumns方法给行记录定义了两列,第一列为对象ID(PR_ENTRYID),第二列为显示名称(PR_DISPLAY_NAME),那么每一个SRowSet对象中就会有两个SPropValue结构体对象,第一个就代表 PR_ENTRYID,第二个则代表PR_DISPLAY_NAME,第一个SPropValue中的Value联合体中的bin成员有效,而第二个 SPropValue中的Value联合体中的lpszW成员有效。如果我们使用QueryRows方法获取到的SRowSet *对象为m_pRows,则下面代码则表示上述说明内容。

m_pRows->aRow[0].lpProps[0].Value.bin为PR_ENTRYID

m_pRows->aRow[0].lpProps[1].Value.lpszW为PR_DISPLAY_NAME

有了对象ID,我们就可以通过IMAPISession中的OpenEntry方法获取短信仓库对象IMsgStore了。OpenEntry方法定义为:

HRESULT IMAPISession::OpenEntry(ULONG,LPENTRYID,LPCIID,ULONG,ULONG*,LPUNKNOW*);

返回值说明了方法调用是否成功,参数说明如下:

ULONG:短信邮件仓库的EntryId,也即对应的SBinary结构中的cb成员

LPENTRYID:短信邮件仓库的EntryId指针,也即对应的SBinary结构中的lpb成员

LPCIID:本质是一个指向GUID结构体变量的指针,若想更深入的了解GUID结构体请参考COM相关资料,这里只给出定义:

typedef struct _GUID { // size is 16

DWORD Data1;

WORD Data2;

WORD Data3;

BYTE Data4[8];

} GUID;

ULONG:访问标志,cemapi中只支持最优访问方式,MAPI_BEST_ACCESS

ULONG*:用于返回Message类型

LPUNKNOW *:一个指向IUnKnow或其派生类指针的指针,用于返回派生自IUnknow接口的对象,这里是IMsgStore对象。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Windows Mobile 建立

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