⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 export.h

📁 sgip的api,包括开发资料
💻 H
📖 第 1 页 / 共 4 页
字号:
    /*******************************************************************************
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 + -