// sgip.h #ifndef _SGIP_H #define _SGIP_H typedef unsigned char UINT_1; typedef unsigned short UINT_2; typedef unsigned int UINT_4; typedef int INT_4; //Deliver包结构 typedef struct deliverstr { UINT_4 sequencenumber1; UINT_4 sequencenumber2; UINT_4 sequencenumber3; char usernumber[22]; char spnumber[22]; UINT_1 tp_pid; UINT_1 tp_udhi; UINT_1 messagecoding; UINT_4 messagelength; char messagecontent[160]; }DeliverStr; //Report包结构 typedef struct reportstr { UINT_4 sequencenumber1; UINT_4 sequencenumber2; UINT_4 sequencenumber3; char usernumber[22]; UINT_1 state; UINT_1 errcode; }ReportStr; //MT Response结构 typedef struct mtrespstr { UINT_4 sequencenumber1; UINT_4 sequencenumber2; UINT_4 sequencenumber3; UINT_1 result; }MTRespStr; //Submit错误结构,当Submit发送不成功时,在Deliver处理中返回该结构 typedef struct mterrorstr { UINT_4 sequencenumber1 ; UINT_4 sequencenumber2 ; UINT_4 sequencenumber3 ; INT_4 errortype ; //1:因为连接不上SMG网关系统,导致包超时 2:发送前发现该包超时 3:包发送失败且超过重发次数 INT_4 result ;//如果失败是因为对方回了错误的Response,则result中保留错误的Response Result值,否则是内部的错误码:负值。 }MTErrorStr; int WINAPI Startup(char* cLocalIp,short iLocalPort, char* cSmgIp,short iSmgPort, char* cLoginName,char* cPassword, int lSocketTimeOut,int lMTTimeOut, unsigned int iSrcNode,int lMTThread, int lMaxListNode,int lMTMaxRetryTime,int lMOThread, void (* fProcessDeliver)(DeliverStr deliver), void (* fProcessReport)(ReportStr report), void (* fProcessResponse)(MTRespStr response), void (*fProcessMTError)(MTErrorStr mterror)); //int WINAPI Cleanup(); int WINAPI Cleanup(); int WINAPI Submit(char* spnumber, char* chargenumber, int user_count, char* usernumber, char* corpid, char* service_type, UINT_1 fee_type, char* fee_value, char* given_value, UINT_1 agent_flag, UINT_1 mo_flag, UINT_1 priority, char* expire_time, char* schedule_time, UINT_1 report_flag, UINT_1 tp_pid, UINT_1 tp_udhi, UINT_1 message_coding, UINT_1 message_type, UINT_4 message_length, char* message_content, char* reserve, UINT_4 *sequencenumber1, UINT_4 *sequencenumber2, UINT_4 *sequencenumber3); int WINAPI Deliver(int *type, DeliverStr* DeliverStruct, ReportStr* ReportStruct, MTRespStr* RespStruct, MTErrorStr* MTErrorStruct); #endif