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

#include "stdafx.h"
#include "MSQSCAN.h"
#include "MSQSCANDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMSQSCANApp

BEGIN_MESSAGE_MAP(CMSQSCANApp, CWinApp)
    //{{AFX_MSG_MAP(CMSQSCANApp)
        // 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()

/////////////////////////////////////////////////////////////////////////////
// CMSQSCANApp construction

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

/////////////////////////////////////////////////////////////////////////////
// The one and only CMSQSCANApp object

CMSQSCANApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CMSQSCANApp initialization

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

    //
    // Initialize COM
    //

    if (SUCCEEDED(CoInitialize(NULL))) {


        // 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

        CMSQSCANDlg dlg;
        m_pMainWnd = &dlg;

        switch (dlg.DoModal()) {
        case IDOK:
            break;
        case IDCANCEL:
            break;
        default:
            break;
        }

        //
        // clean up WIA before we uninitialize COM
        //

        dlg.m_WIA.CleanUp();

        if(dlg.m_DataAcquireInfo.hBitmapData != NULL) {
            GlobalUnlock(dlg.m_DataAcquireInfo.hBitmapData);
            GlobalFree(dlg.m_DataAcquireInfo.hBitmapData);
            dlg.m_DataAcquireInfo.hBitmapData = NULL;
        }

        //
        // Uninitialize COM
        //

        CoUninitialize();

    } else {
        AfxMessageBox("COM Failed to initialize correctly");
    }

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