?? export.h
字號:
/*******************************************************************************
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__
#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
// Begin: Adder: huanghui(41674) for demo整理,合并行業網關demo Date: 2005-10-18
// Begin: Adder: Fengli(41904) for 2.2D101 行業網關 Date: 2005-6-6
#define MAX_REGISTER_NUMS_COUNT 300 //max register nums count for one time
#define MAX_CANCEL_NUMS_COUNT MAX_REGISTER_NUMS_COUNT
#define MAX_REGISTER_NUM_LEN 20 //register long num len
#define MAX_REGISTER_NUMS 3000 //one sp can register 1000 long nums mostly
// End : Adder: Fengli(41904) for 2.2D101 行業網關 Date: 2005-6-6
// End : Adder: huanghui(41674) for demo整理,合并行業網關demo Date: 2005-10-18
#define INITIALTIME 3000
#define SMGP_CODE 6
//#define SMGP_SUCCESS 0
#define SMGP_FAILTURE 1
#define IS_WRITE_PAGE_INDEX 1
//tcpip連接
#define TCPIP_DRV 1
#define MAX_SMGP_MSG_LEN 252
#define PAGE_CODE_LEN 4
#define SMGP_USERID_LEN 12
#define SMGP_PASSWORD_LEN (16)
#define MAX_SMGP_PAGE 100
#define SMGP_IP_LEN 16
#define SMGP_PORT_LEN 5
#define MAX_DESTID_COUNT 100
#define SMGP_ADDRS_LEN 21
#define SMGP_RECVTIME_LEN 14
#define SMGP_MSGIDS_LEN 10
#define SMGP30_LINKID_LEN 20
#define SMGP30_PESUDO_LEN 32
#define SMGP30_RESERVED_LEN 8
#define SMGP30_MAX_TLV_LEN 512
// 定義編碼格式
enum CODE_TYPE
{
ASCII_CODE = 0,
BINARY_CODE = 4,
UCS2_CODE = 8,
GB_CODE = 15,
// Begin: Adder: huanghui(41674) for 1.5D201 Date: 2006-4-15
MOD_PASSWOED_CODE = 100
// End : Adder: huanghui(41674) for 1.5D201 Date: 2006-4-15
};
enum SGIP_LOGINTYPE
{
SPTOSMG =1, // 用于SP 向SMG 建立連接
SMGTOSP =2 // 用于SMG 向SP建立連接
};
typedef struct SendBatchResp
{
int NerrorCode;
char SmsgID[25 + 1];
char DestTermID[SMGP_ADDRS_LEN + 1];
}tagSendBatchResp;
typedef struct DeliverResp
{
char MsgID[25+1];
unsigned char uIsReport;
unsigned char uMsgFormat;
char RecvTime[SMGP_RECVTIME_LEN+1];
char SrcTermID[SMGP_ADDRS_LEN +1];
char DestTermID[SMGP_ADDRS_LEN +1];
unsigned char uMsgLength;
char MsgContent[201];
}tagDeliverResp;
enum DLL_RETURN
{
E_SUCCESS = 0 //成功
//IFSendAndAnswer函數的返回值
, E_NOT_INITIALIZED = -1 //INTERFACE沒有初始化
, E_ACK_COMMAND_ERROR = -2 //回包命令字錯誤
, E_NEWMEMORY_ERROR = -3 //分配內存錯誤
, E_OTHER_ERROR = -4 //其他錯誤
, E_SA_BUFF_TOOBIG = -5 //SEND緩沖區太大
, E_SA_POCKET_UNINTEGRATE = -6 //SEND包不完整
, E_SA_PROTOCOL_ERROR = -7 //協議錯
, E_SA_PROTOCOL_NO_SUPPORT = -8 //協議不支持該格式
, E_SA_CODE_OTHER_ERROR = -9 //編碼其他錯誤
, E_SA_TIMEOUT = -10 //傳送超時
, E_SA_NO_ENOUGH_BUFFER = -11 //接收緩沖區不夠大
, E_SA_WAITFAILED = -12 //等待失敗
, E_SA_SEND_FAILED = -13 //發送失敗
//SUBMIT函數的返回值
, E_SUBMIT_ORGADDR_ERROR = -14 //源地址錯誤
, E_SUBMIT_DESTADDR_ERROR = -15 //目的地址錯誤
, E_SUBMIT_SCHEDULE_ERROR = -16 //參數定時時間錯誤
, E_SUBMIT_EXPIRE_ERROR = -17 //參數超時時間錯誤
, E_SUBMIT_DCS_ERROR = -18 //參數DCS錯誤
, E_SUBMIT_DCS_CONVERT_ERROR = -19 //數據變換錯誤
, E_SUBMIT_UDHI_ERROR = -20 //參數UDHI錯誤
, E_SUBMIT_UD_ERROR = -21 //用戶數據錯誤
, E_SUBMIT_OVER_MO = -22 //超過最大提交數
, E_SUBMIT_OVER_MT = -23 //超過最大下發數
, E_SUBMIT_INVALID_USER = -24 //無效用戶,或者用戶無權
, E_SUBMIT_INVALID_DATA_FORMAT = -25 //無效數據格式
, E_SUBMIT_ADDR_ERROR = -26 //地址錯誤
, E_SUBMIT_CREATE_MESSAGE_ERROR = -27 //生成短訊錯誤
//QuerySMStatus函數返回值
, E_QUERYSMSTATUS_SM_NOT_EXIST = -28 //短訊不存在
, E_QUERYSMSTATUS_SM_OTHER_ERR = -29 //查詢其他錯誤
, E_QUERYSMSTATUS_ADDR_ERROR = -30 //地址錯誤
//QuerySMDetail函數返回值
, E_QUERYSMDETAIL_SM_DETAILS_ZERO = -31 //查詢不到此
, E_QUERYSMDETAIL_SM_DETAILS_FAIL = -32 //查詢失敗
, E_QUERYSMDETAIL_CONVERT_ERROR = -33 //用戶數據編碼出錯
, E_QUERYSMDETAIL_LEN_ERROR = -34 //LEN參數出錯
, E_QUERYSMDETAIL_SM_ADDR_ERROR = -35 //地址錯誤
//CancelSM函數返回值
, E_CANCELSM_ACK_STATUS_ERROR = -36 //回包的STATUS指示出錯
//ReplaceSM函數返回值
, E_REPLACESM_ORGADDR_ERROR = -37 //源地址錯誤
, E_REPLACESM_SCHEDULE_ERROR = -38 //定時數據錯誤
, E_REPLACESM_EXPIRE_ERROR = -39 //超時數據錯誤
, E_REPLACESM_DCS_ERROR = -40 //DCS錯誤
, E_REPLACESM_DCS_CONVERT_ERROR = -41 //用戶數據編碼出錯
, E_REPLACESM_UD_ERROR = -42 //用戶數據錯誤
, E_REPLACESM_SM_WORKING = -43 //短訊正在下發
, E_REPLACESM_SM_ADDR_ERROR = -44 //短訊地址錯誤
, E_REPLACESM_SM_INVALID_SOURCE_ADDR = -45 //無效的源地址
, E_REPLACESM_SM_NO_SUCH_SM = -46 //沒有指定的短訊
, E_REPLACESM_SM_INVALID_DATA_TYPE = -47 //無效數據類型
, E_REPLACESM_SM_FAIL = -48 //替換失敗
, E_QUERYSMS_DIR_ERROR = -49 //參數DIR錯
, E_QUERYSMS_ADDR_ERROR = -50 //參數用戶地址錯誤
, E_QUERYSMS_DATETIME_ERROR = -51 //參數開始時間錯誤
, E_QUERYSMS_FINATIME_ERROR = -52 //參數結束時間錯誤
, E_QUERYSMS_NUMBER_ERROR = -53 //參數查詢條數錯誤
, E_QUERYSMS_ACK_STATUS_ERROR = -54 //回包的STATUS指示出錯
, E_ADDSUB_SUBID_ERROR = -55 //參數用戶號碼錯誤
, E_ADDSUB_SUBNAME_ERROR = -56 //參數用戶姓名錯誤
, E_ADDSUB_SUBADDRESS_ERROR = -57 //參數用戶地址錯誤
, E_ADDSUB_PASSWORD_ERROR = -58 //參數用戶密碼錯誤
, E_ADDSUB_USER_ALREADY_EXIST = -59 //用戶已經存在
, E_ADDSUB_ADD_USER_FAIL = -60 //添加用戶失敗
, E_DELETESUB_SUBID_ERROR = -61 //參數用戶號碼錯誤
, E_DELETESUB_USER_NOT_EXIST = -62 //用戶不存在
, E_DELETESUB_USER_DEL_FAIL = -63 //刪除用戶失敗
, E_MODIFYSUB_SUBID_ERROR = -64 //參數用戶號碼錯誤
, E_MODIFUSUB_SUBNAME_ERROR = -65 //參數用戶姓名錯誤
, E_MODIFYSUB_SUBADDRESS_ERROR = -66 //參數用戶地址錯誤
, E_MODIFYSUB_PASSWORD_ERROR = -67 //參數用戶密碼錯誤
, E_MODIFYSUB_FAIL = -68 //修改用戶失敗
, E_MODIFYSUB_SUB_NOT_EXIST = -69 //用戶不存在
, E_ENQUIRESUB_SUBID_ERROR = -70 //參數用戶號碼錯誤
, E_ENQUIRESUB_USER_NOT_EXIST = -71 //用戶不存在
, E_ENQUIRELINK_ERROR = -72 //握手失敗
, E_DLVSM_GETDATA_FAILED = -73 //GETDATA失敗
, E_DLVSM_DCS_ERROR = -74 //解碼出錯
, E_NO_RIGHT = -75 //沒有權限
, E_REPLACE_UDHI_ERROR = -76 //REPLACE UDHI invalid
, E_QUERYSMDETAIL_INVLDLEN = -77 // QUERYSMDETAIL LEN INVALID
, E_DELIVER_UD_ERROR = -80
, E_DELIVER_DCS_CONVERT_ERROR = -81
, E_DELIVER_UDHI_ERROR = -82
, E_DELIVER_ORGADDR_ERROR = -83
, E_DELIVER_DESTADDR_ERROR = -84
, E_NOT_RECEIVESERVER = -90
, E_PPSCHECKTIMEOUT = -200 //PPS用戶鑒權超時
, E_PPSUSERCHECKERR = -201 //PPS用戶鑒權失敗
, E_PPSUSERCHECKSENDERR = -202 //PPS用戶鑒權發送失敗
, E_PPSRESULTNOTIFYTIMEOUT = -203 //通知超時
, E_PPSRESULTNOTIFYACKERR = -204 //通知客戶端返回錯誤
, E_PPSRESULTNOTIFYTMPERR = -205 //通知臨時錯誤
, E_PPSRESULTNOTIFYSERIOUSERR = -206 //通知嚴重錯誤
, E_RECEIVE_BUFFER_NOT_ENOUGH = -300 //查詢號碼的應答緩沖不夠放置號碼列表
, E_POINTER_IS_NULL = -301 //傳入非法空指針
, E_COUNT_TOO_BIG = -302 //傳入的注冊或注銷個數太大
};
// End : Modifier: huanghui(41674) for 1.5d201 錯誤碼整理:動態庫的錯誤碼為負數 Date: 2006-4-11
BOOL WINAPI IFInitInterface(
DWORD dwCodeProtocol, //編碼協議
DWORD dwDriverProtocol, //通訊協議
LPCTSTR pDriverParam //通訊參數
);
int WINAPI IFSendAndAnswer(
LPVOID pSndBuf, //發送緩沖區
int SndSize, //發送緩沖區大小
LPVOID pRevBuf, //接收緩沖區
int* RevSize, //接收緩沖區大小
DWORD timeout //超時時間
);
typedef int (*LP_READ_BACK)(LPVOID pbuff,int size,HANDLE hUser);
typedef int (*LP_ERROR_BACK)(int Error,HANDLE hUser);
BOOL WINAPI IFSetOnRead(
LP_READ_BACK pReadFun, //回調函數指針
HANDLE hReadUser //回調句柄
);
BOOL WINAPI IFSetOnError(
LP_ERROR_BACK pErrorFun, //回調函數指針
HANDLE hErrorUser //回調句柄
);
BOOL WINAPI IFExitInterface();
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]
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -