技术开发 频道

ASP.NET 移动 Web 应用程序中的 SMS 服务

 【IT168技术文档】.NETFramework 精简版应用程序目标像 PocketPC, 智能电话, PDA 设备。 它是基于 WindowsCE, 用于智能设备系统函数的核心集, 应用程序可 COREDLL.DLL 中。 它还具有下列 dll:

 AYGShell.dll ? PocketPC shell 函数

 CommCtrl.dll ? 公共控件 lib

 WinSock.dll ? WindowsSockets

 Phone.dll ? 高级别电话控件

 SMS.dll ? SMS 消息 API

 可对托管 dll, 中调用 Win32API 函数使用 .NETCF 中可用 P/Invoke 支持我们从 C# 或 VB.NET CF 应用程序发送 SMS。

 SmsOpen 函数打开 SMS 消息组件。

 HRESULT SmsOpen (

 const LPCTSTR ptsMessageProtocol,

 const DWORD dwMessageModes,

 SMS_HANDLE * const psmshHandle,

 HANDLE * const phMessageAvailableEvent);

 ptsMessageProtocol 是表示该 SMS 协议用于字符串。 dwMessageModes 指定我们是否要处于发送或接收模式。

 psmshHandle 是指针指向的 SMS 会话句柄并且是有效只如果函数返回正确。 phMessageAvailableEvent 是句柄到 Win 32 事件柄可用于确定当下次邮件是否可被读取。

 可使用 DllImport 属性, System.Runtime.InteropServices 命名空间中我们在我们的代码声明函数。

 [DllImport("sms.dll")]

 private static extern IntPtr SmsOpen(String ptsMessageProtocol,

 IntPtr dwMessageModes, ref IntPtr psmshHandle, IntPtr

 phMessageAvailableEvent);

 SmsSendMessage 函数将消息发送给移动电话号码。

 HRESULT SmsSendMessage (

 const SMS_HANDLE smshHandle,

 const SMS_ADDRESS const psmsaSMSCAddress, *

 const SMS_ADDRESS const psmsaDestinationAddress, *

 const SYSTEMTIME const pstValidityPeriod, *

 const BYTE const pbData, *

 const DWORD dwDataSize,

 const BYTE const pbProviderSpecificData, *

 const DWORD dwProviderSpecificDataSize,

 const SMS_DATA_ENCODING smsdeDataEncoding,

 const DWORD dwOptions,

 SMS_MESSAGE_ID * psmsmidMessageID);

 smshHandle 是由 SmsOpen psmshHandle 中返回句柄。 psmsaSMSCAddress 是可选参数指定该 SMS 消息中心是用于。 如果使用 NULL, 将使用用户默认 SMSMC。

 psmsaDestinationAddress 其中消息是以传递。 中, 它是所需的时间过去的一个 SMS 期间消息仍被视为有效发送 pstValidityPeriod 中断从标准 SYSTEMTIME 结构。

 pbData 是消息数据部分的字节表示。 这可以是 NULL。

 dwDataSize 是大小以字节表示的消息数据部分。 pbProviderSpecificData 是由某些提供程序需要允许一个 SMS 能够正确传输附加信息。 dwProviderSpecificDataSize 是以字节表示的提到字段大小。

 smsdeDataEncoding 是上面详细 SMS_DATA_ENCODING 枚举中找到一个选项。 dwOptions 是 (当前) 两标志之一尝试或使它能 redelivered 直到路由放弃后一个 SMS 程序将失败。 psmsmidMessageID 将为非空如果此函数返回成功。

 在托管代码, 我们使用它作为

 [DllImport("sms.dll")]

 private static extern IntPtr SmsSendMessage(IntPtr smshHandle, IntPtr

 psmsaSMSCAddress, IntPtr psmsaDestinationAddress, IntPtr

 pstValidityPeriod, byte[] pbData, IntPtr dwDataSize, byte[]

 pbProviderSpecificData, IntPtr dwProviderSpecificDataSize,

 SMS_DATA_ENCODING smsdeDataEncoding, IntPtr dwOptions,  IntPtr

 psmsmidMessageID);

 SmsClose 函数关闭 SMS 消息服务请求。

 HRESULT SmsClose (

 const SMS_HANDLE oCommandBarPopup);

 In our code we declare it as

 [DllImport("sms.dll")]

 private static extern IntPtr SmsClose(IntPtr smshHandle);
 

查看原文地址

0
相关文章