分享
 
 
 

HUAWEI SMEIDLL 短讯接口API

王朝other·作者佚名  2006-02-01
窄屏简体版  字體: |||超大  

SMEIDLL提供的功能:

1. 低层链路出现故障时,重连链路,提示上层。

2. 和SMSC的定时握手。

3. 提供实现SMPP和内部协议中定义的相关协议的API函数。

'事件:点击主界面的“初始化”按钮

'功能:初始化套接字,准备连接

Private Sub cmdInitSocket_Click()

Dim bRet As Boolean

Dim ulRet As Long

Dim iCount As Integer

StatusBar1.Panels(1).Text = ""

ulRet = IFInitInterface(CodeProtocol + 1, DriverProtocol + 1, _

Trim(DriverParam))

fStatusform.ProgressBar1.Value = 100

Unload fStatusform

If ulRet <> 0 Then

MsgBox "初始化套接字成功!"

StatusBar1.Panels(1).Text = "初始化连接成功"

Else

MsgBox "初始化失败!"

StatusBar1.Panels(1).Text = "初始化连接失败"

End If

End Sub

'事件:点击主界面的“登录服务器”按钮

'功能:登录服务器

Private Sub cmdLogin_Click()

Dim bRet As Boolean

Dim ulRet As Long

StatusBar1.Panels(1).Text = ""

ulRet = Login_R(Trim(SystemID), Trim(Password))

If ulRet <> 0 Then

MsgBox "登录成功!"

StatusBar1.Panels(1).Text = "登录成功"

Else

MsgBox "登录失败!"

StatusBar1.Panels(1).Text = "登录失败"

End If

End Sub

'事件:点击主界面的“发送短讯”按钮

'功能:向服务器提交短讯信息

Private Sub cmdSubmit_Click()

Dim result As Integer

Dim UDLen As Long

StatusBar1.Panels(1).Text = ""

'Dim UserData As String

UserData = "test info"

UDLen = Len(UserData)

result = SubmitA(OrgTON, OrgNPI, Trim(OrgAddr), DestTON, DestNPI, _

DestAddr, PRI, RD, RP, SRR, MR, DCS * 4, PID, _

Trim(Schedule), Trim(Expire), Default_ID, UDHI, UDLen, UserData, SM_ID, FCS)

If result = 0 Then

MsgBox "发送成功!"

StatusBar1.Panels(1).Text = "发送成功"

Else

MsgBox "发送失败!"

StatusBar1.Panels(1).Text = "发送失败"

End If

End Sub

'事件:点击主界面的“获取消息”按钮

'功能:判断是否有新短讯发来,如果有,则获取该短讯的信息

Private Sub cmdGetMsg_Click()

StatusBar1.Panels(1).Text = ""

GetMsg

End Sub

'功能: 公共函数。判断是否有新短讯发来;如果有, 则获取该短讯的信息

Sub GetMsg()

Dim result As Integer

HDM_TimeOut = 2000

result = HasDeliverMessage(HDM_TimeOut)

If result = 0 Then

MsgBox "你有新短讯!"

StatusBar1.Panels(1).Text = "有新短讯"

Else

StatusBar1.Panels(1).Text = "无新短讯"

End If

If result = 0 Then

result = GetDeliverSMEx(SM_ID_R, DestTON_R, DestNPI_R, DestAddr_R, OrgTON_R, OrgNPI_R, OrgAddr_R, PRI_R, RP_R, UDHI_R, PID_R, DCS_R, TimeStamp_R, UDLen_R, UserData_R)

If result = 0 Then

MsgBox "接收短讯成功!"

StatusBar1.Panels(1).Text = "接受短讯成功"

Set fNewSMForm = New frmNewSM

fNewSMForm.List1.AddItem "短消息的ID:" + CStr(SM_ID_R)

fNewSMForm.List1.AddItem "目标地址号码类型:" + CStr(DestTON_R)

fNewSMForm.List1.AddItem "目标地址编码方案:" + CStr(DestNPI_R)

fNewSMForm.List1.AddItem "目标地址:" + DestAddr_R

fNewSMForm.List1.AddItem "源地址号码类型:" + CStr(OrgTON_R)

fNewSMForm.List1.AddItem "源地址编码方案:" + CStr(OrgNPI_R)

fNewSMForm.List1.AddItem "源地址:" + OrgAddr_R

fNewSMForm.List1.AddItem "回应路径:" + CStr(RP_R)

fNewSMForm.List1.AddItem "头结构指示:" + CStr(UDHI_R)

fNewSMForm.List1.AddItem "协议标志:" + CStr(PID_R)

fNewSMForm.List1.AddItem "编码方案:" + CStr(DCS_R)

fNewSMForm.List1.AddItem "提交时间:" + TimeStamp_R

fNewSMForm.List1.AddItem "短消息的UDL:" + CStr(UDLen_R)

fNewSMForm.List1.AddItem "正文:" + UserData_R

fNewSMForm.Show

Else

MsgBox "接收短讯失败!"

StatusBar1.Panels(1).Text = "接收短讯失败"

End If

End If

End Sub

'事件:点击主界面的“定时获取消息”按钮

'功能:启动定时获取短讯的服务

Private Sub cmdTimerGetMsg_Click()

StatusBar1.Panels(1).Text = ""

If Timer1.Enabled = False Then

Timer1.Enabled = True

StatusBar1.Panels(1).Text = "启动定时获取短讯服务"

Else

Timer1.Enabled = False

StatusBar1.Panels(1).Text = "关闭定时获取短讯服务"

End If

End Sub

'事件:点击主界面的“退出系统”按钮

'功能:退出安装短讯中心的服务器

Private Sub cmdLogout_Click()

Call IFExitInterface

Call Logout

Unload fMainForm

End Sub

模块文件代码:

'Option Explicit

'

'/*******************************************************************************

'FileName: Export.h

'Description: 本头文件定义了SMEIDLL提供的所有输出函数的定义?

'Version : 2.0

'Date : 98/11/01

'Others:

'Function List():

' 01. IFInitInterface :初始化动态库

' 02. IFSendAndAnswer :基本的发送等待回包函数

' 03. IFSetOnRead :设置读回调函数,用于处理非回包数据

' 04. IFSetOnError :设置出错回调函数,用于通知上层

' 05. IFExitInterface :退出动态库函数

' 06. Login :登录函数,使用TRANSMITER命令

' 07. Logout :从短讯中心注销

' 08. SubmitSM :提交短讯

' 09. VPSubmitSM :提交短讯,简化函数

' 10. QuerySMStatus :查询短讯状态

' 11. QuerySMDetail :查询短讯详细属性,可查询短讯内容

' 12. QuerySMS :查询满足条件的短讯

' 13. CancelSM :取消短讯

' 14. ReplaceSM :替换短讯

' 15. AddSubscriber :添加用户

' 16. DeleteSubscriber :删除用户

' 17. ModifySubscriber :修改用户属性

' 18. EnquireSubscriber :查询用户属性

' 19. HasDeliverMessage :查询是否有下发短讯

' 20. GetDeliverSM :取下发短讯

' 21. Login_R :登录函数,使用RECEIVER命令

' 22. VPModifySubPassword :修改用户密码

' 23. GetErrorString :查询错误代码的描述

' 24. SubmitA :增强的SUBMIT函数

' 25. VPSubmitA :增强的SUBMIT函数的VP版

' 26. GSMConvertTextToData :把ASC字符串变换成指定编码

' 27. GSMConvertDataToText :把编码数据变换成ASC字符串

' 28. QuerySub

'History:

' 1. author : 张刚

' time : 98/11/01

' release : 2.0

'desc: 实现基本功能

'

' 2. author : 张刚

' time : 99/06/01

' release : 2.1

' desc : 优化,修改了一些错误,添加了新函数。

'

'*******************************************************************************/

'

'#if !defined(__SEMIDLL_EXPORT_H__)

'#define __SEMIDLL_EXPORT_H__

'

'#include "Funback.h"

'#include "Drv.h"

'

'#define IF_TIMEOUT 5000 //发送超时时间

'

'//最大的短消息文本长度为255*140=35700

'#define MAX_SMSIZE 35700 //最大短讯长度

'

'#define ACK_SUCCESS 0 //ACK执行正确

'

'#define SM_PRI_PRIOR 1 //优先级别

'#define SM_PRI_DEFAULT 0 //缺省

'

'#define SM_DCS_DEFAULT 0x00 //缺省(7位)

'#define SM_DCS_ASC 0x04 //英文(不被手机支持)

'#define SM_DCS_CHINA 0x08 //中文(会被转化成UCS2)

'

'#define SM_UDHI_DEFAULT 0 //UD是正常字符串

'#define SM_UDHI_STRUCTURE 1 //UD是结构

'

'#define CHINA_ERRSTR 0X40000000 //返回汉字的错误字符串

'

'#define SMSCERR_BEGIN 10000

'

'

'Enum DLL_RETURN

'{

' E_SUCCESS = 0, //成功

'

' //IFSendAndAnswer函数的返回值

' E_NOT_INITIALIZED, //INTERFACE没有初始化

' E_ACK_COMMAND_ERROR, //回包命令字错误

' E_NEWMEMORY_ERROR, //分配内存错误

' E_OTHER_ERROR, //其他错误

'

' E_SA_BUFF_TOOBIG, //SEND缓冲区太大

' E_SA_POCKET_UNINTEGRATE, //SEND包不完整

' E_SA_PROTOCOL_ERROR, //协议错

' E_SA_PROTOCOL_NO_SUPPORT, //协议不支持该格式

' E_SA_CODE_OTHER_ERROR, //编码其他错误

' E_SA_TIMEOUT, //传送超时

' E_SA_NO_ENOUGH_BUFFER, //接收缓冲区不够大

' E_SA_WAITFAILED, //等待失败

' E_SA_SEND_FAILED, //发送失败

'

' //SUBMIT函数的返回值

' E_SUBMIT_ORGADDR_ERROR, //源地址错误

' E_SUBMIT_DESTADDR_ERROR, //目的地址错误

' E_SUBMIT_SCHEDULE_ERROR, //参数定时时间错误

' E_SUBMIT_EXPIRE_ERROR, //参数超时时间错误

' E_SUBMIT_DCS_ERROR, //参数DCS错误

' E_SUBMIT_DCS_CONVERT_ERROR, //数据变换错误

' E_SUBMIT_UDHI_ERROR, //参数UDHI错误

' E_SUBMIT_UD_ERROR, //用户数据错误

' E_SUBMIT_OVER_MO, //超过最大提交数

' E_SUBMIT_OVER_MT, //超过最大下发数

' E_SUBMIT_INVALID_USER, //无效用户,或者用户无权

' E_SUBMIT_INVALID_DATA_FORMAT, //无效数据格式

' E_SUBMIT_ADDR_ERROR, //地址错误

' E_SUBMIT_CREATE_MESSAGE_ERROR, //生成短讯错误

'

' //QuerySMStatus函数返回值

' E_QUERYSMSTATUS_SM_NOT_EXIST, //短讯不存在

' E_QUERYSMSTATUS_SM_OTHER_ERR, //查询其他错误

' E_QUERYSMSTATUS_ADDR_ERROR, //地址错误

'

' //QuerySMDetail函数返回值

' E_QUERYSMDETAIL_SM_DETAILS_ZERO, //查询不到此

' E_QUERYSMDETAIL_SM_DETAILS_FAIL, //查询失败

' E_QUERYSMDETAIL_CONVERT_ERROR, //用户数据编码出错

' E_QUERYSMDETAIL_LEN_ERROR, //LEN参数出错

' E_QUERYSMDETAIL_SM_ADDR_ERROR, //地址错误

'

' //CancelSM函数返回值

' E_CANCELSM_ACK_STATUS_ERROR, //回包的STATUS指示出错

'

' //ReplaceSM函数返回值

' E_REPLACESM_ORGADDR_ERROR, //源地址错误

' E_REPLACESM_SCHEDULE_ERROR, //定时数据错误

' E_REPLACESM_EXPIRE_ERROR, //超时数据错误

' E_REPLACESM_DCS_ERROR, //DCS错误

' E_REPLACESM_DCS_CONVERT_ERROR, //用户数据编码出错

' E_REPLACESM_UD_ERROR, //用户数据错误

' E_REPLACESM_SM_WORKING, //短讯正在下发

' E_REPLACESM_SM_ADDR_ERROR, //短讯地址错误

' E_REPLACESM_SM_INVALID_SOURCE_ADDR, //无效的源地址

' E_REPLACESM_SM_NO_SUCH_SM, //没有指定的短讯

' E_REPLACESM_SM_INVALID_DATA_TYPE, //无效数据类型

' E_REPLACESM_SM_FAIL, //替换失败

'

' E_QUERYSMS_DIR_ERROR, //参数DIR错

' E_QUERYSMS_ADDR_ERROR, //参数用户地址错误

' E_QUERYSMS_DATETIME_ERROR, //参数开始时间错误

' E_QUERYSMS_FINATIME_ERROR, //参数结束时间错误

' E_QUERYSMS_NUMBER_ERROR, //参数查询条数错误

' E_QUERYSMS_ACK_STATUS_ERROR, //回包的STATUS指示出错

'

' E_ADDSUB_SUBID_ERROR, //参数用户号码错误

' E_ADDSUB_SUBNAME_ERROR, //参数用户姓名错误

' E_ADDSUB_SUBADDRESS_ERROR, //参数用户地址错误

' E_ADDSUB_PASSWORD_ERROR, //参数用户密码错误

' E_ADDSUB_USER_ALREADY_EXIST, //用户已经存在

' E_ADDSUB_ADD_USER_FAIL, //添加用户失败

'

' E_DELETESUB_SUBID_ERROR, //参数用户号码错误

' E_DELETESUB_USER_NOT_EXIST, //用户不存在

' E_DELETESUB_USER_DEL_FAIL, //删除用户失败

'

' E_MODIFYSUB_SUBID_ERROR, //参数用户号码错误

' E_MODIFUSUB_SUBNAME_ERROR, //参数用户姓名错误

' E_MODIFYSUB_SUBADDRESS_ERROR, //参数用户地址错误

' E_MODIFYSUB_PASSWORD_ERROR, //参数用户密码错误

' E_MODIFYSUB_FAIL, //修改用户失败

' E_MODIFYSUB_SUB_NOT_EXIST, //用户不存在

'

' E_ENQUIRESUB_SUBID_ERROR, //参数用户号码错误

' E_ENQUIRESUB_USER_NOT_EXIST, //用户不存在

'

' E_ENQUIRELINK_ERROR, //握手失败

'

' E_DLVSM_GETDATA_FAILED, //GETDATA失败

' E_DLVSM_DCS_ERROR, //解码出错

'

' E_NO_RIGHT, //没有权限

'

' E_REPLACE_UDHI_ERROR, //REPLACE UDHI invalid

'

' E_QUERYSMDETAIL_INVLDLEN, // QUERYSMDETAIL LEN INVALID

'

' E_PPSCHECKTIMEOUT = 200, //PPS用户鉴权超时

' E_PPSUSERCHECKERR, //PPS用户鉴权失败

' E_PPSUSERCHECKSENDERR, //PPS用户鉴权发送失败

' E_PPSRESULTNOTIFYTIMEOUT, //通知超时

' E_PPSRESULTNOTIFYACKERR, //通知客户端返回错误

' E_PPSRESULTNOTIFYTMPERR, //通知临时错误

' E_PPSRESULTNOTIFYSERIOUSERR, //通知严重错误

'

'

'};

'/*

'Enum ROUTE_RETURN

'{

' E_SUCCESS = 0,

'

' //interfacemanager error code

' E_ACCESSERR, //接入码错误

' E_CALLERERR, //主叫错误 *

' E_ACCOUNTERR, //帐号指针不符 *

' E_SMTYPEERR, //SmType错误 *

' E_NEWACCOUNTFAIL, //生成帐号对象失败 *

' E_ACCOUNTNAMEERR, //帐号名错,查无此帐号 *

' E_CODETYPEERR, //编码类型错

' E_CREATEIFFAIL, //生成IF对象失败

' E_BEYONDMAXIFNUM, //超过INTERFACEMANAGER的最大IF数

' E_INVALIDIFID, //无效的IF的ID

' E_ACCOUNTPASSWORDERR, //帐号的密码错误

' E_NORIGHT, //没有权限

' E_PIDERR, //PID错误

' E_INVALIDROUTETABLE, //无效的ROUTETABLE *

'

' E_CANNOTFINDIF, //通过HDRV不能找到IF *

' E_PARAMERR, //参数错

' E_STATUSERR, //状态错误

'

' E_NEWIFERR, //生成IF错误

' E_NEWDRVERR, //生成DRV错误

'

' //routetable

' E_INVALIDACCOUNT, //无效的ACCOUNT *

'

' //account error code

' //E_BEYONDACCOUNTMAXIFNUM,

' E_INVALIDIF,

' //E_ROUTEERR,

'

' E_NOSUBMITRIGHT,

' E_NODELIVERRIGHT,

' E_CHECKTYPEERR, //鉴权类型错误

' E_NUMREPEAT, //号段重复

' E_NOTHISNUM, //没有指定的号段

'

' E_PPSCHECKTIMEOUT = 200, //PPS用户鉴权超时

' E_PPSUSERCHECKERR, //PPS用户鉴权失败

' E_PPSUSERCHECKSENDERR, //PPS用户鉴权发送失败

' E_PPSRESULTNOTIFYTIMEOUT, //通知超时

' E_PPSRESULTNOTIFYACKERR, //通知客户端返回错误

' E_PPSRESULTNOTIFYTMPERR, //通知临时错误

' E_PPSRESULTNOTIFYSERIOUSERR, //通知严重错误

'

'};

'*/

'

'BOOL WINAPI IFInitInterface(

' DWORD dwCodeProtocol, //编码协议

' DWORD dwDriverProtocol, //通讯协议

' LPCTSTR pDriverParam //通讯参数

' );

'

Public Declare Function IFInitinterface Lib "smeidll.dll" (ByVal dwCodeProtocol As Long, _

ByVal dwDriverPorotocol As Long, _

ByVal pDriverParam As String) As Long

'int WINAPI IFSendAndAnswer(

' LPVOID pSndBuf, //发送缓冲区

' int SndSize, //发送缓冲区大小

' LPVOID pRevBuf, //接收缓冲区

' int* RevSize, //接收缓冲区大小

' DWORD timeout //超时时间

' );

'

Public Declare Function IFSendAndAnswer Lib "smeidll.dll" (pSndBuf As Any, _

ByVal SndSize As Long, _

pRevBuf As Any, _

ByVal RevSize As Long, _

ByVal timeout As Long) As Long

'BOOL WINAPI IFSetOnRead(

' LP_READ_BACK pReadFun, //回调函数指针

' HANDLE hReadUser //回调句柄

' );

'

Public Declare Function IFSetOnRead Lib "smeidll.dll" (pReadFun As Any, _

ByVal hReadUser As Long) As Long

'BOOL WINAPI IFSetOnError(

' LP_ERROR_BACK pErrorFun, //回调函数指针

' HANDLE hErrorUser //回调句柄

' );

'

Public Declare Function IFSetOnError Lib "smeidll.dll" (pErrorFun As Any, _

ByVal hErrorUser As Long) As Long

'BOOL WINAPI IFExitInterface();

Public Declare Function IFExitInterface Lib "smeidll.dll" () As Long

'

'BOOL WINAPI LoginA(

' unsigned long ulBindType, //BIND类型, 0表示BIND_TRANSMITER, 1表示BIND_RECIEVER

' LPCTSTR SystemID, //用户标识 char [MAX_SMEI_SYSTEMID]

' LPCTSTR Password, //密码 char[MAX_SMEI_PASSWORD]

' LPCTSTR system_type, //系统类型 char[13]

' unsigned long ulInterface_version, //接口类型

' unsigned char ucAddr_TON, //号码类型

' unsigned char ucAddr_NPI, //编码方案

' LPCTSTR Address_range //地址类型

' );

'

Public Declare Function LoginA Lib "smeidll.dll" (ByVal ulBindType As Long, _

ByVal SystemID As String, _

ByVal Password As String, _

ByVal system_type As String, _

ByVal ulInterface_version As Long, _

ByVal ucAddr_TON As Byte, _

ByVal ucAddr_NPI As Byte, _

ByVal Address_range As String) As Long

'BOOL WINAPI Login(

' LPCTSTR SystemID, //用户标识 char [MAX_SMEI_SYSTEMID]

' LPCTSTR Password //密码 char[MAX_SMEI_PASSWORD]

' );

'

Public Declare Function Login Lib "smeidll.dll" (ByVal SystemID As String, _

ByVal Password As String) As Long

'BOOL WINAPI Login_R(LPCTSTR SystemID, //用户标识 char [MAX_SMEI_SYSTEMID]

' LPCTSTR Password //密码 char[MAX_SMEI_PASSWORD]

' );

'

Public Declare Function Login_R Lib "smeidll.dll" (ByVal SystemID As String, _

ByVal Password As String) As Long

'BOOL WINAPI Logout();

Public Declare Function Logout Lib "smeidll.dll" () As Long

'

'int WINAPI SubmitSM(

' unsigned char OrgTON, //源地址号码类型

' unsigned char OrgNPI, //源地址编码方案

' LPCTSTR OrgAddr, //源地址 char[MAX_ADDR_LEN]

' unsigned char DestTON, //目标地址号码类型

' unsigned char DestNPI, //目标地址编码方案

' LPCTSTR DestAddr, //目标地址 char[MAX_ADDR_LEN]

' unsigned char PRI, //SM优先级

' unsigned char DCS, //数据编码方案

' LPCTSTR Schedule, //定时 char[MAX_TIMESTAMP_LEN]

' LPCTSTR Expire, //超时时间 char[MAX_TIMESTAMP_LEN]

' unsigned long Default_ID, //缺省短消息

' unsigned char UDHI, //1表示UD为一个结构,0表示缺省

' unsigned long UDLen, //表示UD的长度

' LPCTSTR UserData, //用户信息,短消息正文

' unsigned long* SM_ID, //返回:短消息ID

' unsigned char* FCS //返回:失败原因

' );

'

Public Declare Function SubmitSM Lib "smeidll.dll" (ByVal OrgTON As Byte, _

ByVal OrgNPI As Byte, _

ByVal OrgAddr As String, _

ByVal DestTON As Byte, _

ByVal DestNPI As Byte, _

ByVal DestAddr As String, _

ByVal PRI As Byte, _

ByVal DCS As Byte, _

ByVal Schedule As String, _

ByVal Expire As String, _

ByVal Default_ID As Long, _

ByVal UDHI As Byte, _

ByVal UDLen As Long, _

ByVal UserData As String, _

ByVal sm_id As Long, _

ByVal FCS As String) As Long

'int WINAPI VPSubmitSM(

' LPCTSTR OrgAddr, //源地址 char[MAX_ADDR_LEN]

' LPCTSTR DestAddr, //目标地址 char[MAX_ADDR_LEN]

' LPCTSTR Schedule, //定时 char[MAX_TIMESTAMP_LEN]

' LPCTSTR Expire, //超时时间 char[MAX_TIMESTAMP_LEN]

' unsigned long Default_ID, //缺省短消息

' LPCTSTR UserData, //用户信息,短消息正文

' unsigned long* SM_ID //返回:短消息ID

' );

'

Public Declare Function VPSubmigSM Lib "smeidll.dll" (ByVal OrgAddr As String, _

ByVal DestAddr As String, _

ByVal Schedule As String, _

ByVal Expire As String, _

ByVal Default_ID As Long, _

ByVal UserData As String, _

ByVal sm_id As Long) As Long

'int WINAPI QuerySMStatus(

' unsigned long SM_ID, //短消息ID

' unsigned char* OrgTON, //返回:源地址号码类型

' unsigned char* OrgNPI, //返回:源地址编码方案

' LPTSTR OrgAddr, //返回:源地址 char[MAX_ADDR_LEN]

' unsigned char* DestTON, //返回:目标地址号码类型

' unsigned char* DestNPI, //返回:目标地址编码方案

' LPTSTR DestAddr, //返回:目标地址 char[MAX_ADDR_LEN]

' LPTSTR Final_Date, //返回:最后时间 char[MAX_TIMESTAMP_LEN]

' unsigned char* SM_Status, //返回:短消息状态

' //0 : WAITING_FOR_DELIVER 表示等待发送

' //1 : DELIVER_SUCCESS 表示成功发送

' //2 : DELIVER_FAIL 表示发送失败

' unsigned char* Error_Code //返回:错误代码

' );

Public Declare Function QuerySMStatus Lib "smeidll.dll" (ByVal sm_id As Long, _

ByVal OrgTON As String, _

ByVal OrgNPI As String, _

ByVal OrgAddr As String, _

ByVal DestTON As String, _

ByVal DestNPI As String, _

ByVal DestAddr As String, _

ByVal Final_Date As String, _

ByVal SM_Status As Byte, _

ByVal Error_Code As String) As Long

'

'int WINAPI QuerySMDetail(

' unsigned long SM_ID, //短消息ID

' unsigned char *OrgTON, //返回:源地址号码类型

' unsigned char *OrgNPI, //返回:源地址编码方案

' LPTSTR OrgAddr, //返回:源地址 char[MAX_ADDR_LEN]

' unsigned char* DestTON, //返回:目标地址号码类型

' unsigned char* DestNPI, //返回:目标地址编码方案

' LPTSTR DestAddr, //返回:目标地址 char[MAX_ADDR_LEN]

' unsigned char* PRI, //返回:SM优先级

' unsigned char* DCS, //返回:数据编码方案

' LPTSTR Schedule, //返回:定时 char[MAX_TIMESTAMP_LEN]

' LPTSTR Expire, //返回:超时时间 char[MAX_TIMESTAMP_LEN]

' LPTSTR Final, //返回:最后时间 char[MAX_TIMESTAMP_LEN]

' unsigned char* SM_Status, //返回:短消息状态, 返回值定义同QuerySMStatus.

' unsigned char* Error_Code, //返回:错误代码

' unsigned long Len, //接收短消息长度,User_Data的大小不能小于此数

' LPTSTR User_Data //返回:短消息文本

' );

Public Declare Function QuerySMDetail Lib "smeidll.dll" (ByVal sm_id As Long, _

ByVal OrgTON As String, _

ByVal OrgNPI As String, _

ByVal OrgAddr As String, _

ByVal DestTON As String, _

ByVal DestNPI As String, _

ByVal DestAddr As String, _

ByVal PRI As Byte, _

ByVal DCS As Byte, _

ByVal Schedule As String, _

ByVal Expire As String, _

ByVal Final As String, _

ByVal SM_Status As String, _

ByVal Error_Code As String, _

ByVal Leng As Long, _

ByVal User_Data As String) As Long

'

'int WINAPI CancelSM(

' unsigned long SM_ID //短消息ID

' );

Public Declare Function CancelSM Lib "smeidll.dll" (ByVal sm_id As Long) As Long

'

'int WINAPI ReplaceSM(

' unsigned long SM_ID, //短消息ID

' unsigned char OrgTON, //源地址号码类型

' unsigned char OrgNPI, //源地址编码方案

' LPCTSTR OrgAddr, //源地址 char[MAX_ADDR_LEN]

' LPCTSTR Schedule, //定时 char[MAX_TIMESTAMP_LEN]

' LPCTSTR Expire, //超时时间 char[MAX_TIMESTAMP_LEN]

' unsigned char DCS, //数据编码方案

' unsigned long Default_ID, //缺省短消息

' unsigned long UDL,

' LPCTSTR UserData //用户信息,短消息正文

' );

'

Public Declare Function ReplaceSM Lib "smeidll.dll" (ByVal sm_id As Long, _

ByVal OrgTON As Byte, _

ByVal OrgNPI As Byte, _

ByVal OrgAddr As String, _

ByVal Schedule As String, _

ByVal Expire As String, _

ByVal DCS As Byte, _

ByVal Default_ID As Long, _

ByVal UDL As Long, _

ByVal User_Data As String) As Long

'int WINAPI QuerySMS(

' unsigned char Dir, //0:按源地址 1:按目标地址

' unsigned char TON,

' unsigned char NPI,

' LPCTSTR Addr,

' LPCTSTR DateTime, //开始时间

' LPCTSTR FinaTime, //结束时间

' unsigned char* Number, //要查询的条数

' unsigned char* status,

' unsigned long* sm_id

' );

'

Public Declare Function QuerySMS Lib "smeidll.dll" (ByVal Dir As Byte, _

ByVal TON As Byte, _

ByVal NPI As Byte, _

ByVal Addr As String, _

ByVal DateTime As String, _

ByVal FinalTime As String, _

ByVal Number As String, _

ByVal status As String, _

ByVal sm_id As Long) As Long

'int WINAPI AddSubscriber(

' unsigned char TON, //号码类型

' unsigned char NPI, //编码方案

' LPCTSTR SubID, //用户标识 char[MAX_ADDR_LEN]

' LPCTSTR SubName, //用户姓名 char[MAX_ADDR_LEN]

' LPCTSTR SubAddress, //用户(通讯)地址 char[MAX_SUB_ADDRESS]

' unsigned char MsType, //手机类型

' unsigned long Service, //服务级别(未定义)

' unsigned char bSM, //是否提供短消息服务

' unsigned long OCOS, //最大下发数

' unsigned long TCOS, //最大提交数

' unsigned short Reserve, //保留

' LPCTSTR Password //密码 char [MAX_PASSWORD]

' );

'

'int WINAPI DeleteSubscriber(

' LPCTSTR SubID //用户标识 char[MAX_ADDR_LEN]

' );

'

'int WINAPI ModifySubscriber(

' unsigned char TON, //号码类型

' unsigned char NPI, //编码方案

' LPCTSTR SubID, //用户标识 char[MAX_ADDR_LEN]

' LPCTSTR SubName, //用户姓名 char[MAX_ADDR_LEN]

' LPCTSTR SubAddress, //用户地址 char[MAX_SUB_ADDRESS]

' unsigned char MsType, //手机类型

' unsigned long Service, //服务级别

' unsigned char bSM, //是否提供短消息服务

' unsigned long OCOS, //最大下发数

' unsigned long TCOS, //最大提交数

' LPCTSTR Password //密码 char [MAX_PASSWORD]

' );

'

'int WINAPI EnquireSubscriber(

' LPCTSTR SubID, //用户标识

' unsigned char* TON, //返回:号码类型

' unsigned char* NPI, //返回:编码方案

' LPTSTR SubName, //返回:用户姓名 char[MAX_ADDR_LEN]

' LPTSTR SubAddress, //返回:用户地址 char[MAX_SUB_ADDRESS]

' unsigned long* Service, //返回:服务级别

' unsigned char* bSM, //返回:是否提供短消息服务

' unsigned long* OCOS, //返回:最大下发数

' unsigned long* TCOS, //返回:最大提交数

' LPTSTR Password //返回:密码 char [MAX_PASSWORD]

' );

'

'int WINAPI EnquireLink();

'

'int WINAPI HasDeliverMessage(

' DWORD dwTimeOut //超时时间,单位毫秒

' );

'

'int WINAPI GetDeliverSM(

' ULONG* sm_ID, //返回:短讯ID

' unsigned char* DestTON, //返回:目标地址号码类型

' unsigned char* DestNPI, //返回:目标地址编码方案

' char* DestAddr, //返回:目标地址

' unsigned char* OrgTON, //返回:源地址号码类型

' unsigned char* OrgNPI, //返回:源地址编码方案

' char* OrgAddr, //返回:源地址

' unsigned char* PRI, //返回:优先权

' unsigned char* PID, //返回:协议类型

' unsigned char* DCS, //返回:编码方案

' char* TimeStamp, //返回:下发时间

' char* UserData //返回:用户数据

' );

'

'int WINAPI VPModifySubPassword(

' LPCTSTR SubID, //用户标识 char[MAX_ADDR_LEN]

' LPCTSTR Password //密码 char [MAX_PASSWORD]

' );

'

'int WINAPI GetErrorString(

' int iErrorNum, //错误代码

' int iBuffSize, //缓冲区大小

' char* lpszBuff //缓冲区指针

' );

'

'int WINAPI GetSMStatusString(

' DWORD dwStatus, // 状态值

' int iBuffLen, // 缓冲区大小

' char* lpszBuff // 缓冲区指针

' );

'

'int WINAPI SubmitA(

' unsigned char OrgTON, //源地址号码类型

' unsigned char OrgNPI, //源地址编码方案

' LPCTSTR OrgAddr, //源地址 char[MAX_ADDR_LEN]

' unsigned char DestTON, //目标地址号码类型

' unsigned char DestNPI, //目标地址编码方案

' LPCTSTR DestAddr, //目标地址 char[MAX_ADDR_LEN]

' unsigned char PRI, //SM优先级

' unsigned char RD, //当源地址和目的地址相同时,是否替换存在的短消息。

' unsigned char RP, //回应路径

' unsigned char SRR, //是否需要状态报告

' unsigned char MR, //消息索引

' unsigned char DCS, //数据编码方案

' unsigned char PID, //协议类型

' LPCTSTR Schedule, //定时 char[MAX_TIMESTAMP_LEN]

' LPCTSTR Expire, //超时时间 char[MAX_TIMESTAMP_LEN]

' unsigned long Default_ID, //缺省短消息

' unsigned char UDHI, //1表示UD为一个结构,0表示缺省

' unsigned long UDLen, //表示UD的长度

' LPCTSTR UserData, //用户信息,短消息正文

' unsigned long* SM_ID, //返回:短消息ID

' unsigned char* FCS //返回:失败原因

' );

'

'int WINAPI VPSubmitA(

' LPCTSTR OrgAddr, //源地址 char[MAX_ADDR_LEN]

' LPCTSTR DestAddr, //目标地址 char[MAX_ADDR_LEN]

' unsigned char PID, //协议类型

' unsigned char DCS, //编码方案

' LPCTSTR Schedule, //定时 char[MAX_TIMESTAMP_LEN]

' LPCTSTR Expire, //超时时间 char[MAX_TIMESTAMP_LEN]

' unsigned long Default_ID, //缺省短消息

' LPCTSTR UserData, //用户信息,短消息正文

' unsigned long* SM_ID //返回:短消息ID

' );

'

'int WINAPI GSMConvertTextToData(

' LPCSTR pString, //需要变换的源字符串指针

' unsigned char nDCS, //指定变换的编码方案

' unsigned char* pData, //接收缓冲区指针

' unsigned long* nLen //用户数据的大小的指针,此是SUBMIT中UDL字段的长度,不是字节长度

' );

'

'int WINAPI GSMConvertDataToText(

' unsigned char* pData, //编码后的数据

' unsigned long nLen, //编码数据的实际大小,此项为协议的UDL项。

' unsigned char nDCS, //编码数据的编码方案

' unsigned char nUDHI, //协议的UDHI项,是否有结构头。

' char* pString //解码的字符串缓冲区指针

' );

'

'int WINAPI QuerySubscriber(

' LPCTSTR SubID, //用户标识

' unsigned char* TON, //返回:号码类型

' unsigned char* NPI, //返回:编码方案

' LPTSTR SubName, //返回:用户姓名 char[MAX_ADDR_LEN]

' LPTSTR SubAddress, //返回:用户地址 char[MAX_SUB_ADDRESS]

' unsigned char* MsType, //返回:手机类型

' unsigned long* Service, //返回:服务级别

' unsigned char* bSM, //返回:是否提供短消息服务

' unsigned long* OCOS, //返回:最大下发数

' unsigned long* TCOS, //返回:最大提交数

' LPTSTR Password, //返回:密码 char [MAX_PASSWORD]

' LPTSTR RegTime //返回:注册时间 char[20]

' );

'

'int WINAPI QuerySMStatusA(

' unsigned long SM_ID, //短消息ID

' unsigned char OrgTON, //源地址号码类型

' unsigned char OrgNPI, //源地址编码方案

' LPCTSTR OrgAddr, //源地址 char[MAX_ADDR_LEN]

' unsigned char* DestTON, //返回:目标地址号码类型

' unsigned char* DestNPI, //返回:目标地址编码方案

' LPTSTR DestAddr, //返回:目标地址 char[MAX_ADDR_LEN]

' LPTSTR Final_date, //返回:最后时间 char[MAX_TIMESTAMP_LEN]

' unsigned char* SM_Status, //返回:短消息状态

' //0 : WAITING_FOR_DELIVER 表示等待发送

' //1 : DELIVER_SUCCESS 表示成功发送

' //2 : DELIVER_FAIL 表示发送失败

' unsigned char* Error_Code //返回:错误代码

' );

'

'int WINAPI CancelSMA(

' char cService_type, //参见GSM3.39说明

' unsigned long SM_ID, //短消息ID

' unsigned char OrgTON, //源地址号码类型

' unsigned char OrgNPI, //源地址编码方案

' LPCTSTR OrgAddr, //源地址 char[MAX_ADDR_LEN]

' unsigned char DestTON, //目标地址号码类型

' unsigned char DestNPI, //目标地址编码方案

' LPCTSTR DestAddr //目标地址 char[MAX_ADDR_LEN]

' );

'

'int WINAPI ReplaceSMEx(

' unsigned long SM_ID,

' unsigned char OrgTON,

' unsigned char OrgNPI,

' LPCTSTR OrgAddr,

' LPCTSTR Schedule,

' LPCTSTR Expire,

' unsigned char SRR,

' unsigned char DCS,

' unsigned char UDHI,

' unsigned long Default_ID,

' unsigned long UDLen,

' LPCTSTR UserData

' );

'

'int WINAPI QuerySMDetailEx(

' unsigned long SM_ID,

' unsigned char* OrgTON,

' unsigned char* OrgNPI,

' LPTSTR OrgAddr,

' unsigned char* DestTON,

' unsigned char* DestNPI,

' LPTSTR DestAddr,

' unsigned char* PRI,

' unsigned char* RD,

' unsigned char* RP,

' unsigned char* UDHI,

' unsigned char* SRR,

' unsigned char* MR,

' unsigned char* PID,

' unsigned char* DCS,

' LPTSTR Schedule,

' LPTSTR Expire,

' LPTSTR Final,

' unsigned char* SM_Status,

' unsigned char* Error_Code,

' unsigned long* Len,

' LPTSTR User_Data

' );

'

'int WINAPI GetDeliverSMEx(

' ULONG* sm_ID, //返回:短讯ID

' unsigned char* DestTON, //返回:目标地址号码类型

' unsigned char* DestNPI, //返回:目标地址编码方案

' char* DestAddr, //返回:目标地址

' unsigned char* OrgTON, //返回:源地址号码类型

' unsigned char* OrgNPI, //返回:源地址编码方案

' char* OrgAddr, //返回:源地址

' unsigned char* PRI, //返回:优先权

' unsigned char* RP,

' unsigned char* UDHI,

' unsigned char* PID, //返回:协议类型

' unsigned char* DCS, //返回:编码方案

' char* TimeStamp, //返回:下发时间

' unsigned long * UDLen,

' char* UserData //返回:用户数据

' );

'//2000.12.12 钟CD 增加状态功能

'int WINAPI GetDeliverSMExEx(

' ULONG* sm_ID, //返回:短讯ID

' unsigned char* DestTON, //返回:目标地址号码类型

' unsigned char* DestNPI, //返回:目标地址编码方案

' char* DestAddr, //返回:目标地址

' unsigned char* OrgTON, //返回:源地址号码类型

' unsigned char* OrgNPI, //返回:源地址编码方案

' char* OrgAddr, //返回:源地址

' unsigned char* PRI, //返回:优先权

' unsigned char* RP,

' unsigned char* UDHI,

' unsigned char* PID, //返回:协议类型

' unsigned char* DCS, //返回:编码方案

' char* TimeStamp, //返回:下发时间

' unsigned long * UDLen,

' char* UserData, //返回:用户数据

' unsigned char* StatusReport //返回:状态报告标志,0表示不是状态报告,1:表示为状态报告

' );

'

'

'#End If

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有