// lyfzSMSHandle.cpp : ����Ӧ�ó��������Ϊ��
//

#include "stdafx.h"
#include "lyfzSMSHandle.h"
#include "lyfzSMSHandleDlg.h"
#include "Global.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

HANDLE g_hMutex = NULL;	// ȫ�ֻ�����;
// ClyfzSMSHandleApp

BEGIN_MESSAGE_MAP(ClyfzSMSHandleApp, CWinAppEx)
	ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP()


// ClyfzSMSHandleApp ����

ClyfzSMSHandleApp::ClyfzSMSHandleApp()
{
	// TODO: �ڴ˴����ӹ�����룬
	// ��������Ҫ�ij�ʼ�������� InitInstance ��
}


// Ψһ��һ�� ClyfzSMSHandleApp ����

ClyfzSMSHandleApp theApp;


// ClyfzSMSHandleApp ��ʼ��

BOOL ClyfzSMSHandleApp::InitInstance()
{
	g_hMutex = ::CreateMutex(NULL,FALSE,_T("lyfzSMSHandle"));
	if( GetLastError() == ERROR_ALREADY_EXISTS )
	{
		::MessageBox(NULL,_T("���Ŵ��������Ѿ��򿪣�"),_T("��ܰ��ʾ"),MB_ICONINFORMATION);
		return FALSE;
	}

	// ���һ�������� Windows XP �ϵ�Ӧ�ó����嵥ָ��Ҫ
	// ʹ�� ComCtl32.dll �汾 6 ����߰汾�����ÿ��ӻ���ʽ��
	//����Ҫ InitCommonControlsEx()�����򣬽��޷��������ڡ�
	INITCOMMONCONTROLSEX InitCtrls;
	InitCtrls.dwSize = sizeof(InitCtrls);
	// ��������Ϊ��������Ҫ��Ӧ�ó�����ʹ�õ�
	// �����ؼ��ࡣ
	InitCtrls.dwICC = ICC_WIN95_CLASSES;
	InitCommonControlsEx(&InitCtrls);

	CWinAppEx::InitInstance();

	AfxEnableControlContainer();

	/************************************************************************/
	TCHAR szDrive[_MAX_DRIVE];
	TCHAR szDir[_MAX_DIR];
	::GetModuleFileName(NULL, g_szModulePath, sizeof(g_szModulePath)/sizeof(TCHAR));
	_stprintf_s(g_szModuleFileName,_T("%s"),g_szModulePath);

	_tsplitpath(g_szModulePath, szDrive, szDir, NULL, NULL);
	_tcscpy_s(g_szModulePath, szDrive);
	_tcscat_s(g_szModulePath, szDir);

	//strPath = CString(szFull);
	char szFileName[MAX_PATH];
#ifdef UNICODE
	sprintf_s(szFileName, "%sSMSlogcfg.xml", CW2A(g_szModulePath));
#else
	sprintf_s(szFileName, "%sSMSlogcfg.xml", g_szModulePath);
#endif
	///������־�����ļ���
	LOG4C_PARAM_CFG_FILE_NAME(szFileName);
	///������־��;
	LOG4C_PARAM_LOG_FILE_NAME("SMSlog");
	///������־����
	LOG4C_PARAM_LOG_LEVEL("unknown");
	///������־�ļ���С
	LOG4C_PARAM_LOG_FILE_SIZE(2097152);	//5M��С;
	///����������־�ļ��������ﵽ���������Զ�������ɵ���־
	LOG4C_PARAM_LOG_FILE_NUM(10);
	///����ÿ�μ�¼��־�����¶�ȡ��־�����ļ�
	LOG4C_PARAM_REREAD_LOG_CFG_FILE(1);
	///��������־ģ���ʼ��,�������������˵IJ���������Ч��û�����õIJ���ȱʡֵ
	LOG4C_INIT_WITH_PARAM();
	LOG4C_NO_FILENUM((LOG_NOTICE,"����log��־"));
	/************************************************************************/
	// ��׼��ʼ��
	// ���δʹ����Щ���ܲ�ϣ����С
	// ���տ�ִ���ļ��Ĵ�С����Ӧ�Ƴ�����
	// ����Ҫ���ض���ʼ������
	// �������ڴ洢���õ�ע�����
	// TODO: Ӧ�ʵ��޸ĸ��ַ�����
	// �����޸�Ϊ��˾����֯��
	SetRegistryKey(_T("Ӧ�ó��������ɵı���Ӧ�ó���"));

#if JEFF_TEST_ON
	if(GetSysIniInfo() == -1)
	{
		// ��û���ҵ�Server.ini�ļ�,��Ĭ��û�з���DBServer.exe���е�������; 
		if ( GetSysIniInfo2() == -1)
		{
			AfxMessageBox(_T("û���ҵ������ļ�"));
			return FALSE;
		}

		// ���ü��ܹ�����;
		g_nVersion = g_dwEncryType;
	}
	else
	{
		_tcscpy_s(g_szSMSServer,_T("liyafangzhou.eicp.net"));
		g_dwTCPSMSPort = 8600;

		if(GetSoftWareVersion() == -1)
		{
			AfxMessageBox(_T("û���ҵ����ܹ�,��ȷ���Ƿ��м��ܹ���"));
			return FALSE;
		}
	}
	
	WSADATA WSAData = { 0 };
	if(0 != WSAStartup(MAKEWORD(2, 2), &WSAData))
	{
		AfxMessageBox(_T("���绷����ʼ��ʧ��!"));
		return FALSE;
	}
	else
	{
		DWORD dwServerIP = 0;
#ifdef UNICODE
		char szHost[MAX_PATH] = {0};
		strcpy_s(szHost,CW2A(g_szSMSServer));
		HOSTENT *host = gethostbyname(szHost);		// Jeff.�����������������;
#else
		HOSTENT *host = gethostbyname(g_szSMSServer);		// Jeff.�����������������;
#endif
		struct in_addr addr;
		if (host != NULL)
		{
			// Jeff.��������������������IP��ַ;
			CString strSvrIP = _T("");
			for (int i = 0; host->h_addr_list[i] != NULL; i++)
			{
				memset(&addr, 0, sizeof(addr));
				memcpy(&addr.S_un.S_addr, host->h_addr_list[i], host->h_length);
				dwServerIP = ntohl(addr.S_un.S_addr);
				BYTE* pIP = (BYTE*)&dwServerIP;
				g_strServerIP.Format(_T("%d.%d.%d.%d"), pIP[3], pIP[2], pIP[1], pIP[0]);
#ifdef UNICODE
				LOG4C_NO_FILENUM((LOG_NOTICE,"����IP:%s",(char*)CW2A(g_strServerIP)));
#else
				LOG4C_NO_FILENUM((LOG_NOTICE,"����IP:%s",g_strServerIP));
#endif
				break;
			}
		}
		else
		{
			LOG4C_NO_FILENUM((LOG_NOTICE,"DNS��������������IPʧ��,�п����Ƿ�����DNS�쳣,��ʹ��360�ȹ����޸���"));
		}
	}
#endif

	ClyfzSMSHandleDlg dlg;
	m_pMainWnd = &dlg;
	INT_PTR nResponse = dlg.DoModal();
	if (nResponse == IDOK)
	{
		// TODO: �ڴ˷��ô�����ʱ��
		//  ��ȷ�������رնԻ���Ĵ���
	}
	else if (nResponse == IDCANCEL)
	{
		// TODO: �ڴ˷��ô�����ʱ��
		//  ��ȡ�������رնԻ���Ĵ���
	}

	// ���ڶԻ����ѹرգ����Խ����� FALSE �Ա��˳�Ӧ�ó���
	//  ����������Ӧ�ó������Ϣ�á�
	return FALSE;
}


int ClyfzSMSHandleApp::ExitInstance()
{
	// TODO:  �ڴ�����ר�ô����/����û���
	LOG4C_NO_FILENUM((LOG_NOTICE,"�˳�log��־"));
	LOG4C_FINI();
	CloseHandle(g_hMutex);
	return CWinAppEx::ExitInstance();
}