// BinaryTool.cpp : Defines the class behaviors for the application.
//

#include "stdafx.h"
#include "BinaryTool.h"
#include "BinaryToolDlg.h"
#include "GlobalData.h"
#include "Scripts.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CBinaryToolApp

BEGIN_MESSAGE_MAP(CBinaryToolApp, CWinApp)
	//{{AFX_MSG_MAP(CBinaryToolApp)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG
	ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBinaryToolApp construction

CBinaryToolApp::CBinaryToolApp()
{
	// TODO: add construction code here,
	// Place all significant initialization in InitInstance
}

/////////////////////////////////////////////////////////////////////////////
// The one and only CBinaryToolApp object

CBinaryToolApp theApp;

struct tdstGlobalData_ g_stTheGlobalData;

/////////////////////////////////////////////////////////////////////////////
// CBinaryToolApp initialization

BOOL CBinaryToolApp::InitInstance()
{
	AfxEnableControlContainer();

	// Standard initialization
	// If you are not using these features and wish to reduce the size
	//  of your final executable, you should remove from the following
	//  the specific initialization routines you do not need.

#ifdef _AFXDLL
	Enable3dControls();			// Call this when using MFC in a shared DLL
#else
	Enable3dControlsStatic();	// Call this when linking to MFC statically
#endif

	//  Set up base registry key
	CString csReg;
	csReg.LoadString( IDS_Registry );
	SetRegistryKey( csReg );

	g_stTheGlobalData.hEventStop             = CreateEvent( NULL, TRUE, FALSE, NULL );
	g_stTheGlobalData.bCommonFilesAreCopied  = FALSE;

	// Setup initial directory
	GetCurrentDirectory( _MAX_PATH, g_stTheGlobalData.csStartupDirectory.GetBuffer(_MAX_PATH) );
	g_stTheGlobalData.csStartupDirectory.ReleaseBuffer();

	// If event can't be created, display an error and exit
	if( g_stTheGlobalData.hEventStop == NULL )
	{
		AfxMessageBox( "Can't create event ressource.\nInitialisation failed !", MB_OK | MB_ICONEXCLAMATION );
		return FALSE;
	}


	// Init module scr for script parsing.
	fn_vInitScr();
	
	// Display main dialog.
	CBinaryToolDlg dlg;
	m_pMainWnd = &dlg;
	int nResponse = dlg.DoModal();

/*
	if (nResponse == IDOK)
	{
	}
	else if (nResponse == IDCANCEL)
	{
	}
*/

	fn_vDesinitScr();

	// Since the dialog has been closed, return FALSE so that we exit the
	//  application, rather than start the application's message pump.
	return FALSE;
}
