// stdafx.h : include file for standard system include files,
//  or project specific include files that are used frequently, but
//      are changed infrequently
//

#if !defined(AFX_STDAFX_H__9BF8B912_B263_4F11_B579_215467CFA8C6__INCLUDED_)
#define AFX_STDAFX_H__9BF8B912_B263_4F11_B579_215467CFA8C6__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define _WIN32_WINNT    0x0501  

#define VC_EXTRALEAN		// Exclude rarely-used stuff from Windows headers


#define _CRT_SECURE_NO_WARNINGS           //防止Warnings出现
#define _CRT_NON_CONFORMING_SWPRINTFS     //防止Warnings出现


#if _MSC_VER<1300
#define CStringA CString
#endif


#define EXCEL_XLSX_OPER_XLNT    //xlsx文件操作时使用xlnt库,如果没有此定义则使用ado操作excel文件


#ifdef EXCEL_XLSX_OPER_XLNT
//xlnt 
/*
确保
#include <windows.h>
之前
#include "xlnt/xlnt.hpp"
#pragma comment(lib, "xlnt.lib")
原因:windows.h中的宏覆盖了同名函数。
*/
//#define XLNT_API
#define XLNT_STATIC
#include "xlnt\xlnt.hpp"
#ifdef _M_X64
#ifdef _DEBUG
#pragma comment(lib,"..\\public\\xlnt\\lib\\xlnt64d.lib")
#else
#pragma comment(lib,"..\\public\\xlnt\\lib\\xlnt64.lib")
#endif
#else
#ifdef _DEBUG
#pragma comment(lib,"..\\public\\xlnt\\lib\\xlntd.lib")
#else
#pragma comment(lib,"..\\public\\xlnt\\lib\\xlnt.lib")
#endif
#endif
#else
#include <vector>
#include <string>
#endif


#include <afxwin.h>         // MFC core and standard components
#include <afxext.h>         // MFC extensions
#include <afxdisp.h>        // MFC Automation classes
#include <afxdtctl.h>		// MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>			// MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT

//#include <afxsock.h>		// MFC socket extensions
#include <winsock2.h>
#include <mswsock.h>
#include <WinBase.h>
#include <AfxTempl.h>
#include <atlconv.h>
#include <stdio.h>

#include <msxml2.h>
//#import "msxml4.dll"
//using namespace MSXML2;
#ifndef _UNICODE
#include <corecrt_io.h>
#endif

//以下三选一
//#define SMSCENTER_ONE   //第一短信平台
//#define SMSCENTER_TWO   //第二短信平台
#define SMSCENTER_THREE   //第三短信平台
//#define SMSCENTER_TZY     //团中央短信平台
//#define SMSCENTER_ADC   //第三(ADC)短信平台
//#define SMSCENTER_NX       //农信短信平台
    //#define SMSCENTER_GDDX     //广东电信的平台,建立在农信平台基础之中,必须要SMSCENTER_NX与SMSCENTER_GDDX一起
	//		#define SMSCENTER_GDYD_ADC  //广东电信下的adc版,用于测试。
	//#define SMSCENTER_IMUSIC   //爱音乐版本
	//#define SMSCENTER_DGSB       //东莞社保版本
    //      #define SMSCENTER_DGSB_FIVE  //五所特殊改名称版本
	//     #define SMSCENTER_DGSB_SGYD  //韶关移动特殊改名称版本


//#if defined(SMSCENTER_IMUSIC) || defined(SMSCENTER_THREE)
//#define SMSCENTER_USECLIENT   //ado使用adUseClient模式
//#define   SMSCENTER_USECLIENT2  //只在发送短信时ado使用adUseClient模式
//#endif



//#define SMSCENTER_SUPPORT_MQ

//#define SMSCENTER_ADC_TEMP  //临时第3平台,不能发短信,不结算清单,只能登录,查询余额

//#define  SMSCENTER_DEMO   //副平台模式,Remote


//#define   SMSCENTER_UPDATE  //系统在升级维护


//定义平台下发短信的企业ID、用户ID
#define DEFAULT_SEND_CORPID 100000
#define DEFAULT_SEND_USERID 10000000

#ifdef SMSCENTER_THREE
#undef DEFAULT_SEND_CORPID
#undef DEFAULT_SEND_USERID
#define DEFAULT_SEND_CORPID 300000
#define DEFAULT_SEND_USERID 10000000
#endif
#ifdef SMSCENTER_TZY
#undef DEFAULT_SEND_CORPID
#undef DEFAULT_SEND_USERID
#define DEFAULT_SEND_CORPID 300000
#define DEFAULT_SEND_USERID 10000000
#endif

#ifdef SMSCENTER_ONE
#define DEFAULT_SERVER  _T("211.147.238.86")   //默认的短信中心号
#define DEFAULT_SERVER2 _T("211.147.242.57")
#endif
#ifdef SMSCENTER_TWO
#define DEFAULT_SERVER  _T("211.147.242.58")   //默认的短信中心号
#endif
#ifdef SMSCENTER_THREE
#define DEFAULT_SERVER  _T("116.204.35.93")   //默认的短信中心号
#define DEFAULT_SERVER2 _T("211.147.242.59")
#endif
#ifdef SMSCENTER_TZY
#define DEFAULT_SERVER  _T("127.0.0.1")   //默认的短信中心号
#endif
#ifndef DEFAULT_SERVER
#define DEFAULT_SERVER _T("")
#endif
#ifndef DEFAULT_SERVER2
#define DEFAULT_SERVER2 _T("")
#endif


#include <afxinet.h>
#pragma comment(lib, "wininet.lib")


#include "..\public\LuTool.h"
#include "..\public\CorpSms.h"
#include "..\public\ado\ado.h"
#include "..\public\des\des.h"

#include "..\public\SendPub.h"
#include "..\public\AutoCoInitializeEx\AutoCoInitializeEx.h"
#include "..\public\SAStatusLog\SAStatusLog.h"
#include "..\public\StringSort\StringSort.h"
#include "..\public\SqlPool\SqlPool.h"
#include "..\public\CMarkup\Markup.h"


//联通sgipAPI
//#include "Sgip\Sgip.h"
//小灵通smgpAPI
//#include "smgp\smgpdef.h"
//#include "smgp\smgpapi.h"
//#pragma comment(lib, "smgp\\SmGwAPI.lib")

//要使用libcurl,需要加入预编译选项:项目->属性->c/c++ ->预处理器->预处理器,加上  ;BUILDING_LIBCURL
#ifdef _M_X64
#pragma comment(lib,"..\\FZSend\\CmppSend\\MobsetHttp\\openssl\\libssl64MT.lib")
#pragma comment(lib,"..\\FZSend\\CmppSend\\MobsetHttp\\openssl\\libcrypto64MT.lib")
//#pragma comment(lib,"..\\public\\openssl\\libssl64MT.lib")
//#pragma comment(lib,"..\\public\\openssl\\libcrypto64MT.lib")

#pragma comment(lib,"crypt32.lib")
#pragma comment(lib,"..\\public\\curl\\lib\\libcurl64.lib")
#else
#pragma comment(lib,"..\\FZSend\\CmppSend\\MobsetHttp\\openssl\\win32\\libssl32MT.lib")
#pragma comment(lib,"..\\FZSend\\CmppSend\\MobsetHttp\\openssl\\win32\\libcrypto32MT.lib")
#pragma comment(lib,"crypt32.lib")
#pragma comment(lib,"..\\public\\curl\\lib\\libcurl32.lib")
#endif

//IOCP
#include "IOCP\iocp.h"

#ifdef SMSCENTER_NX  //使用MYSQL 库
#include "../public/MySql/MySqlConnection.h"
#include "../public/MySql/MySqlRecordSet.h"
//#include "../public/MySql/MySqlConnection.cpp"
//#include "../public/MySql/MySqlRecordSet.cpp"
#endif


#define MOBSET_SMSCENTER              //此为中心端

#ifdef SMSCENTER_ADC
#define DEFAULT_LISTENPORT   2037     //默认的帧听端口
#define DEFAULT_LISTENPORT2  7891     //默认的帧听端口
#define DEFAULT_SERVERPORT_UNI  2047     //默认的帧听端口
#else
#define DEFAULT_LISTENPORT   2036     //默认的帧听端口
#define DEFAULT_LISTENPORT2  7890     //默认的帧听端口
#define DEFAULT_SERVERPORT_UNI  2046     //默认的帧听端口
#endif

#define DEFAULT_DBNAME       _T("corpsms")    //默认的数据库名称,当数据库类型为Sql Server 时有用
#define DEFAULT_DBNAMET      _T("corpsmst")   //默认的数据库名称,当数据库类型为Sql Server 时有用
#define SENDDATA_COMPRESS    0        //发送出去的数据是否压缩,默认不压缩
#define RECVREFRESH_TIMEOUT  120000   //60秒收不到数据,接入超时
#define USERDB_TIMEOUT       80000   //120秒收不使用数据库,自动断开
#define MAX_SUPTD  64           //最大支持的通道管理数



//#define NOALLOW_SENDFJ            //不允许按正常方式发送福建号码
//#define SEND_CHECK_BACK         //在发送时检测黑名单

//#define LOGIN_REQ                //是否要记录请求信息

//#define ADO_ERROR


//#define    SMSCENTER_QJADC         //是否强制adc通道


#ifdef SMSCENTER_SUPPORT_MQ
#include "..\public\mq\imqi.hpp"
#endif





//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STDAFX_H__9BF8B912_B263_4F11_B579_215467CFA8C6__INCLUDED_)