- 浏览: 176769 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
zhong504989:
你好。。请问你解决了么?我刚开始搞wap开发,用xhtml来, ...
ASP.NET Mobile Web Form 怎么设置背景图呢? -
xiaoqiang2008:
后台接收代码最好是用java写的
Windows Mobile 上传文件到服务器 -
xiaoqiang2008:
有后台接收的代码吗?能否贴上来看看,谢谢!
Windows Mobile 上传文件到服务器 -
guowee:
大家可以试着用一下ATL的HTML控件,不错的。
Windows mobile HTMLCtrl can not support WML ? -
guowee:
注意: 监控的文件夹名称最后不能有 \
windows mobile 监控 文件夹
转载自【http://sheng-yung.blogspot.com/2008/03/mobile-read-sms-mapi.html】
許多人可能再透過smsopen要讀取sms簡訊時
hr = SmsOpen(SMS_MSGTYPE_TEXT, SMS_MODE_RECEIVE
, &hSMS,
&hMsgAvailable);
可能碰過說系統僅能存在一個實體來存取,我想應該是系統內預設的簡訊收件夾
那麼這時候要讀取簡訊就要透過MAPI來連取收件夾 讀取其內容
底下範例參考 microsoft mobile blog
僅提供讀取功能 而無NOTIFICATION
-------------------------------------------------------
設定 連接 cemapi.lib
-------------------------------------------------------
#include
#include
#include
#include
HRESULT SaveMessages(IMsgStore *pStore, LPCTSTR pszFilename); //讀取收件夾
HRESULT SaveSmsMessages(IMAPISession *pSession, LPCTSTR pszFilename); //開啟收件夾實體
HRESULT SaveSmsMessages(IMAPISession *pSession, LPCTSTR pszFilename)
{
static const SizedSPropTagArray (2, spta) = { 2, PR_DISPLAY_NAME, PR_ENTRYID };
HRESULT hr;
SRowSet *prowset = NULL;
CComPtr
ptbl;
CComPtr pStore;
// Get the table of accounts
hr = pSession->GetMsgStoresTable(0, &ptbl);
//CHR(hr);
// set the columns of the table we will query
hr = ptbl->SetColumns((SPropTagArray *) &spta, 0);
//CHR(hr);
while (TRUE)
{
// Free the previous row
FreeProws (prowset);
prowset = NULL;
hr = ptbl->QueryRows (1, 0, &prowset);
if ((hr != S_OK) || (prowset == NULL) || (prowset->cRows == 0))
break;
ASSERT (prowset->aRow[0].cValues == spta.cValues);
SPropValue *pval = prowset->aRow[0].lpProps;
ASSERT (pval[0].ulPropTag == PR_DISPLAY_NAME);
ASSERT (pval[1].ulPropTag == PR_ENTRYID);
if (!_tcscmp(pval[0].Value.lpszW, TEXT("SMS")))
{
// Get the Message Store pointer
hr = pSession->OpenMsgStore(0, pval[1].Value.bin.cb, (LPENTRYID)pval[1].Value.bin.lpb, 0, 0, &pStore);
//CHR(hr);
SaveMessages(pStore, pszFilename);
}
}
Error:
FreeProws (prowset);
return hr;
}
HRESULT SaveMessages(IMsgStore *pStore, LPCTSTR pszFilename)
{
static const SizedSSortOrderSet(1, sortOrderSet) = { 1, 0, 0, { PR_MESSAGE_DELIVERY_TIME, TABLE_SORT_DESCEND } };
static const SizedSPropTagArray (3, spta) = { 3, PR_SENDER_NAME, PR_SUBJECT, PR_MESSAGE_DELIVERY_TIME };
HRESULT hr = S_OK;
LPENTRYID pEntryId = NULL;
ULONG cbEntryId = 0;
CComPtr pFolder;
CComPtr ptbl;
ULONG ulObjType = 0;
SRowSet *prowset = NULL;
// 1 First retrieve the ENTRYID of the Inbox folder of the message store
// Get the inbox folder
hr = pStore->GetReceiveFolder(NULL, MAPI_UNICODE, &cbEntryId, &pEntryId, NULL);
//CHR(hr);
// 2 we have the entryid of the inbox folder, let's get the folder and messages in it
hr = pStore->OpenEntry(cbEntryId, pEntryId, NULL, 0, &ulObjType, (LPUNKNOWN*)&pFolder);
//CHR(hr);
ASSERT(ulObjType == MAPI_FOLDER);
// 3 From the IMAPIFolder pointer, obtain the table to the contents
hr = pFolder->GetContentsTable(0, &ptbl);
//CHR(hr);
// 4 Sort the table that we obtained. This is determined by the sortOrderSet variable
hr = ptbl->SortTable((SSortOrderSet *)&sortOrderSet, 0);
//CHR(hr);
// 5 Set the columns of the table we will query. The columns of each row are determined by spta
hr = ptbl->SetColumns ((SPropTagArray *) &spta, 0);
//CHR(hr);
// now iterate through each message in the table
while (TRUE)
{
// Free the previous row
FreeProws (prowset);
prowset = NULL;
hr = ptbl->QueryRows (1, 0, &prowset);
if ((hr != S_OK) || (prowset == NULL) || (prowset->cRows == 0))
break;
ASSERT (prowset->aRow[0].cValues == spta.cValues);
SPropValue *pval = prowset->aRow[0].lpProps;
// 6 Get the three properties we need: Sender name, Subject, and Delvery time.
ASSERT (pval[0].ulPropTag == PR_SENDER_NAME);
ASSERT (pval[1].ulPropTag == PR_SUBJECT);
ASSERT (pval[2].ulPropTag == PR_MESSAGE_DELIVERY_TIME);
LPCTSTR pszSender = pval[0].Value.lpszW;
LPCTSTR pszSubject = pval[1].Value.lpszW;
SYSTEMTIME st = {0};
FileTimeToSystemTime(&pval[2].Value.ft, &st);
// 7 Pass the parameters to a function to archive (this function is not written)
//hr = AppendToFile(pszFilename, pszSender, pszSubject, st);
AfxMessageBox(pszFilename);
AfxMessageBox(pszSender);
AfxMessageBox(pszSubject);
//CHR(hr);
}
Error:
FreeProws (prowset);
MAPIFreeBuffer(pEntryId);
return hr;
}
//按鈕按下即開始讀取
//事先必須先初始化建立MAPI, 最後並關閉
void CSYDlg::OnBnClickedButton1()
{
HRESULT hr;
ICEMAPISession * pSession = NULL;
hr = MAPIInitialize(NULL);
hr = MAPILogonEx(0, NULL, NULL, 0, (LPMAPISESSION *)&pSession);
SaveSmsMessages(pSession, L"TestFileName");
hr = pSession->Logoff(0, 0, 0);
pSession->Release();
pSession = NULL;
MAPIUninitialize();
}
发表评论
-
Windows mobile 菜单(Menu Bar) 更改解决方案
2010-04-07 09:06 2523Windows Mobile 菜单(Menu Bar,C ... -
Windows CE/Windows Mobile开发常见问题解答
2009-12-17 14:44 18351.怎样在一个控件获得 ... -
WM/PPC程序与控制面板命令参数
2009-12-17 14:39 1847不完全正确,不过值得参考: WINDOWS目录下的程序(中英 ... -
PC中如何判断网络已经连接或者断开
2009-12-17 14:38 1667在PPC的开发中有时需要判断网络什么时候连接,什么时候断开,并 ... -
PPC中如何找到正在使用中的网络(源代码)
2009-12-17 14:36 962《PPC中如何判断网络已 ... -
在Windows mobile中如何更改短信会话模式
2009-11-04 11:57 1922在windows mobile 中如何更改短信的会话模式呢。 ... -
GPS短信接收 与 导航软件通信
2009-10-29 14:10 1504这是开这个博客的第一篇文章, 在这里开博客主要是为了写一下以前 ... -
windows mobile MAPI Set EntryID
2009-08-17 16:02 0void CSmsMessage::SetEntryID(SB ... -
控制Windows Mobile手机的键盘操作
2009-08-07 11:59 2716如何控制Windows Mobile 手 ... -
WinCE Dialog 添加 Scrollbar
2009-06-22 16:53 4266如何在WinCE上设置滚动条? 最近再搞winCE ... -
Windows mobile HTMLCtrl can not support WML ?
2009-06-01 10:58 1405最近在使用windows mobile上的HTMLCtrl的时 ... -
Windows Mobile 今日插件开发
2009-05-27 16:06 4002http://blog.csdn.net/doubleblue ... -
Developing in C++ with the HTML Viewer Control
2009-05-22 09:34 2228[转载自MSDN:http://msdn.microsoft. ... -
Mobile开发之路_之小总结
2009-04-18 22:20 17871,从那种基本类中继承的函数 变异时都会自动被调用 2,vo ... -
Windows Mobile中使用htmlCtrl控件
2009-04-18 22:16 2401在某些特殊的应用场合,我们很想要一个类似IE功能的模块,定制自 ... -
推荐几篇关于Windows Mobile程序安装包制作的文章
2009-03-13 15:39 3502转载至:http://www.cnblogs.com/upt ... -
Hiding the Progress Bar of a .NET 2.0 CF WebBrowse
2009-03-11 14:08 1558[转载自:http://www.chriskarch ... -
如何处理屏幕方向改变
2009-03-01 10:02 1170在Windows Mobile平台的应用程序开发过程中, ... -
Windows Mobile中GPRS连接网络
2009-03-01 09:58 1695Windows Mobile程序中如果 ... -
Outgoing SMS intercepting
2009-02-27 14:33 1067http://social.msdn.microsoft.co ...
相关推荐
这个“MAPI.rar_mapi_mobile_mobile sms_sms_短信”可能是一个包含有关如何在mobile平台上读取短信详细信息的文档资源。 开发步骤通常涉及以下几个关键环节: 1. **环境搭建**:首先,你需要一个支持MAPI的开发...
在.NET Compact Framework环境下,开发针对Windows Mobile等移动设备的软件时,也需要处理邮件功能,这就需要用到MAPI的C#封装。 本文将详细介绍如何在.NET Compact Framework中使用MAPI .NET CF,以及提供的文件...
《Windows Mobile SMS编程实践——基于Visual C++的MAPI接口详解》 在移动开发领域,尤其是在Windows Mobile系统中,发送和接收SMS(Short Message Service,短信)是常见的功能需求。本篇文章将深入探讨如何利用...
根据提供的标题、描述和部分内容,本文将重点解析与MAPI(Messaging Application Programming Interface)相关的知识点。MAPI是一种由Microsoft开发的API集,主要用于与电子邮件客户端和服务器进行交互,特别是...
"Demo - Extended MAPI in Delphi 2010" 这个标题和描述指向了一个特定的示例项目,它展示了如何在Delphi 2010编程环境中使用Extended MAPI(扩展的MAPI)技术。Extended MAPI是Microsoft的一项技术,允许应用程序...
"使用 MAPI 实现邮件发送" 一、简述 使用 MAPI(Messaging Application Programming Interface)可以实现邮件发送功能。在本文中,我们将使用 Simple MAPI,这是一个子集,提供了一组易于使用的函数和相关数据结构...
在MFC(Microsoft Foundation Classes)程序中使用MAPI(Messaging Application Programming Interface)发送邮件是一种常见的技术,对于熟悉C++编程的开发者来说,这是一种便捷的实现邮件功能的方式。MAPI是微软...
MAPI接口编程技术 MAPI(Messaging Application Program Interface)是Microsoft提供的一种电子邮件程序接口,允许开发者使用Outlook Express系统进行电子邮件的发送和接收。该接口提供了一些基本的电子邮件处理...
**MAPI(Messaging Application Programming Interface)**是一种在Windows操作系统中广泛使用的邮件和消息传递应用程序接口。它允许开发者创建能够与各种邮件系统交互的应用程序,包括发送、接收、存储和管理邮件。...
### 使用MAPI控件实现邮件发送的技术要点 在IT领域,特别是软件开发中,通过编程技术来实现自动化邮件发送是一项非常实用且常见的功能。本文将详细介绍如何利用Microsoft Application Programming Interface (MAPI)...
**MAPI(Messaging Application Programming Interface)**是一种在Windows操作系统中用于构建邮件应用程序的接口,它允许程序员通过系统级服务直接与邮件服务器通信。MAPI提供了一套标准的API,使得开发者能够实现...
标题 "mapi.zip_mapi" 暗示了这个压缩包与MAPI(Messaging Application Programming Interface)有关,它是一个在Microsoft Windows操作系统上广泛使用的API,用于处理电子邮件和消息系统。MAPI允许应用程序发送和...
标题中的“Internet与WEB服务源代码_simple_mapi_demo”指的是一个关于互联网技术和Web服务的源码示例,其中“simple_mapi_demo”可能是这个示例的特定部分,它可能涉及了简单邮件传输协议(MAPIMail)的实现。...
2. **设置MAPI控件属性**:在设计视图中,对添加的MAPI控件设置属性,如`MAPI.Logon`用于登录邮件系统,`MAPI.Session`获取邮件会话,`MAPI.Recipients`设置收件人,`MAPI.Subject`设置邮件主题,`MAPI.Body`设置...
Use this free .NET component to access low-level features provided by MAPI in Windows Forms applications as well as in .NET-based Outlook COM add-ins. The component is a mixture of managed and ...
MFCMAPI是一款基于Microsoft Foundation Class (MFC) 库实现的MAPI(Messaging Application Programming Interface)参考应用程序。它主要用于连接到Exchange服务器,通过MAPI接口进行邮件、日历、联系人等信息的...
**MAPI(Messaging Application Programming Interface)是微软提供的一种标准接口,用于在应用程序中实现电子邮件的发送和接收。这种接口允许开发者直接与邮件服务器通信,从而创建具有邮件功能的应用程序。** 在...
在VB(Visual Basic)编程中,使用MAPI(Messaging Application Programming Interface)发送邮件是一种常见的方法。MAPI允许程序与电子邮件系统进行交互,如Outlook,从而实现自动化发送邮件的功能。以下将详细介绍...
本主题聚焦于利用VB中的MAPI(Messaging Application Programming Interface)控件来实现批量发送文件,特别是10KB大小的文件。MAPI控件是Windows操作系统提供的一种接口,它允许应用程序与邮件系统进行交互,包括...
CE MAPI,全称为Consumer Electronics Message Access Protocol,是微软提供的一种用于访问电子邮件、日历和其他个人信息管理(PIM)数据的接口。在Windows CE系统中,它允许开发者通过编程方式访问和操作邮件系统,如...