📄 func.h
字号:
#if !defined(FUNC_H)
#define FUNC_H
#include <winsock2.h>
#define SMPPMAXLENGTH 1024
#define nSMGP_VERSION 0x13 // SMGP1.3
#define nSMGP_WINDOW_SIZE 16 // SMGP滑动窗口的大小
#define nSMGP_PKG_SIZE 400 // SMGP数据包的最大长度
#define nSMGP_CONNECT 0x00000001 // 请求连接
#define nSMGP_CONNECT_RESP 0x80000001 // 请求连接应答
#define nSMGP_TERMINATE 0x00000006 // 终止连接
#define nSMGP_TERMINATE_RESP 0x80000006 // 终止连接应答
#define nSMGP_SUBMIT 0x00000002 // 提交短信
#define nSMGP_SUBMIT_RESP 0x80000002 // 提交短信应答
#define nSMGP_DELIVER 0x00000003 // 短信下发
#define nSMGP_DELIVER_RESP 0x80000003 // 下发短信应答
#define nSMGP_ACTIVE_TEST 0x00000004 // 激活测试
#define nSMGP_ACTIVE_TEST_RESP 0x80000004 // 激活测试应答
#define nSMGP_FORWARD 0x00000005 //SMG转发MT/MO短信请求
#define nSMGP_FORWARD_RESP 0x80000005 //SMG转发MT/MO短信回应
//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 100008
#define ExitFromDeliver 9
#define ExitFromReceiver 10
#define ExitFromDBERROR 2000
#define ONESECTION1 1//socket send section
#define ONESECTION2 1//socket recv section
#define ONESECTION3 1//window leng section
#define MOBILELEN 32
#define MSGLEN 320
#define MSGLENP1 321
#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(){dwStopFlag=0;};
~CArg();
DWORD dwSend,dwRecv,dwStopFlag;
int dwSequence2,dwSequence;
BYTE isActive,bWaitTime;
HANDLE hGW;
int WINLEN;
_bstr_t strCnn;
_ConnectionPtr pCnnGSM;
int iChannelNum;
char SPNumber[21];
char szLogDir[255];
char SPID[10];
char clientID[32];
char Password[16];
char SMSCIP[20];//=10.0.0.170
short SMSCPORT;//=9971
short nMaxInterval;
int isDebug,isMO,nMsgLevel;
int nLost;
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 16 bytes:length,cmd_id,state,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();
int InitMsg(char* buffer,CMSG* msg);
void PutNByte(char* buffer,BYTE,DWORD);
DWORD GetNByte(char* buffer,BYTE);
bool GetArg(CArg*);
DWORD SendData(CMSG *msg,_ConnectionPtr pCnnGSM);
DWORD WINAPI MTThread(LPVOID);
DWORD WINAPI MOThread(LPVOID pp);
void AddBinLog(char*,int,int flag);
GW_API DWORD BeginGW(LPVOID);
void AddResp(char* filename,BYTE isHour,const char* format,...);
int SendBuffer(char* buffer,int buf_len);
int SendBuffer(char* buffer);
int RecvBuffer(char* buffer,int len);
int RecvBuffer(char* buffer);
DWORD SendOnlyData(CMSG *msg);
void SetWindow(int i);
int UCS2toGB(char* src,char* dst,int len);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -