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

📄 export.h

📁 华为CMPP2短信接口库(C版本)
💻 H
📖 第 1 页 / 共 3 页
字号:
/*******************************************************************************
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_PPSUSERCHECKSENDERR, //PPS用户鉴权发送失败
    E_PPSRESULTNOTIFYTIMEOUT, //通知超时
    E_PPSRESULTNOTIFYACKERR,   //通知客户端返回错误
    E_PPSRESULTNOTIFYTMPERR,   //通知临时错误
    E_PPSRESULTNOTIFYSERIOUSERR, //通知严重错误

};
*/

BOOL WINAPI IFInitInterface(
							DWORD dwCodeProtocol,			//编码协议
							DWORD dwDriverProtocol,			//通讯协议
							LPCTSTR pDriverParam			//通讯参数
							);

int WINAPI IFSendAndAnswer(
						   LPVOID pSndBuf,					//发送缓冲区
						   int SndSize,						//发送缓冲区大小
						   LPVOID pRevBuf,					//接收缓冲区
						   int* RevSize,					//接收缓冲区大小
						   DWORD timeout					//超时时间
						   );

BOOL WINAPI IFSetOnRead(
						LP_READ_BACK pReadFun,				//回调函数指针
						HANDLE hReadUser					//回调句柄
						);

BOOL WINAPI IFSetOnError(

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -