📄 func.h
字号:
#if !defined(FUNC_H)
#define FUNC_H
#include <winsock2.h>
#define SMPPMAXLENGTH 512
#define nCMPP_VERSION 0x30 // CMPP3.0
#define nCMPP_WINDOW_SIZE 16 // CMPP滑动窗口的大小
#define nCMPP_PKG_SIZE 400 // CMPP数据包的最大长度
#define nCMPP_CONNECT 0x00000001 // 请求连接
#define nCMPP_CONNECT_RESP 0x80000001 // 请求连接应答
#define nCMPP_TERMINATE 0x00000002 // 终止连接
#define nCMPP_TERMINATE_RESP 0x80000002 // 终止连接应答
#define nCMPP_SUBMIT 0x00000004 // 提交短信
#define nCMPP_SUBMIT_RESP 0x80000004 // 提交短信应答
#define nCMPP_DELIVER 0x00000005 // 短信下发
#define nCMPP_DELIVER_RESP 0x80000005 // 下发短信应答
#define nCMPP_QUERY 0x00000006 // 短信状态查询
#define nCMPP_QUERY_RESP 0x80000006 // 短信状态查询应答
#define nCMPP_CANCEL 0x00000007 // 删除短信
#define nCMPP_CANCEL_RESP 0x80000007 // 删除短信应答
#define nCMPP_ACTIVE_TEST 0x00000008 // 激活测试
#define nCMPP_ACTIVE_TEST_RESP 0x80000008 // 激活测试应答
//Exit Code
#define NOERROR 0
#define ExitFromGetCallBack 1
#define ExitFromLinkCallBack 2
#define ExitFromInitDatabase 3
#define ExitFromInit 4
#define ExitFromSender 5
#define ExitFromWSAStartup 6
#define ExitFromWaitFailed 7
#define ExitFromNetClose 10008
#define ExitFromDeliver 9
#define ExitFromReceiver 10
#define ExitFromDBERROR 2000
#define ISQL 1
#define ONESECTION1 1//socket send section
#define ONESECTION2 1//socket recv section
#define ONESECTION3 1//winlen access
#define MOBILELEN 20
#define MSGLEN 320
#define MSGLENP1 321
#define TESTSMSC 0
#define BADGW 1
#define SPACE '\d'
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "EndOfFile")
inline void TESTHR(HRESULT x) {if FAILED(x) _com_issue_error(x);};
#define COUNT2SEND 250
#define COUNT2CHANGE 30
#define COUNT2SMSC 19
class CArg
{
public:
~CArg();
CArg(){dwStopFlag=0;};
_ConnectionPtr pCnnGSM;
DWORD dwSend,dwRecv,dwStopFlag;
BYTE isActive;
HANDLE hGW;
_bstr_t strCnn;
char szLogDir[255];
int iChannelNum,dwSequence2,dwSequence;
char SPNumber[21];
char SPID[7];
char Password[16];
char SMSCIP[20];//=10.0.0.170
short SMSCPORT;//=9971
short nMaxInterval;
int isDebug,isMO;
int nLost,WINLEN;
SOCKET s;
BYTE nMaxReconnect;
int iSelectInterval;
#if ONESECTION1
CRITICAL_SECTION syc1;
#endif
#if ONESECTION2
CRITICAL_SECTION syc2;
#endif
#if ONESECTION3
CRITICAL_SECTION syc3;
#endif
};
class CMSG
{
public:
DWORD dwCommand;
DWORD dwSequence;
//the head is 12 bytes:length,cmd_id,seq_id
char SrcTermId[21];
char DstTermId[21];
char FeeUser[22];
char szContent[321];
char szServiceID[11];
char ExpireTime[16];
char ScheduleTime[16];
DWORD dwResult;
DWORD dwState;
int nStation;
BYTE msg_format,bPID,bUDHI;
BYTE bPK_TOTAL,bPK_NUM;
int msg_len;
char sLinkID[21];
char FeeType[3];
char FeeCode[10];
BYTE bReason,isReply,bFeeUserType;
};
DWORD GetTime();
void GetTime(char* buffer,int period);
void PutNByte(char* buffer,BYTE,DWORD);
DWORD GetNByte(char* buffer,BYTE);
void PutByteString(char* dest,char* source,int length);
long Jstrcpy(char* dest,const char* source);
long Jstrncpy(char* dest,const char* source,long size);
int Jstrchr(const char*,char);
bool GetArg(CArg*);
DWORD SendData(CMSG *msg,_ConnectionPtr pCnnGSM);
DWORD WINAPI MTThread(LPVOID);
DWORD WINAPI MOThread(LPVOID pp);
int TranState(char*);
//int TranState(int);
void GetLastday(char* buffer);
void AddBinLog(char*,int,int flag);
GW_API DWORD BeginGW(LPVOID);
#define ISLOGRESP 1
void AddResp(char* filename,BYTE isHour,const char* format,...);
int SendBuffer(char* buffer,int buf_len);
int RecvBuffer(char* buffer);
void stow(char* msgid,DWORD* id_time,DWORD* id_sn);
void wtos(char* msgid,DWORD id_time,DWORD id_sn);
DWORD SendOnlyData(CMSG *msg);
int RecvBuffer(char* buffer,int len);
void SetWindow(int i);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -