/*******************************************************************************
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"
#include "MsgStructuredef.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_P