|
// PLCConnector.cpp : ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ´ëÇÑ Å¬·¡½º µ¿ÀÛÀ» Á¤ÀÇÇÕ´Ï´Ù.
|
//
|
|
#include "stdafx.h"
|
#include "afxwinappex.h"
|
#include "PLCConnector.h"
|
#include "MainFrm.h"
|
|
#include "PLCConnectorDoc.h"
|
#include "PLCConnectorView.h"
|
|
#ifdef _DEBUG
|
#define new DEBUG_NEW
|
#endif
|
|
|
// CPLCConnectorApp
|
|
BEGIN_MESSAGE_MAP(CPLCConnectorApp, CWinAppEx)
|
ON_COMMAND(ID_APP_ABOUT, &CPLCConnectorApp::OnAppAbout)
|
// Ç¥ÁØ ÆÄÀÏÀ» ±âÃÊ·Î ÇÏ´Â ¹®¼ ¸í·ÉÀÔ´Ï´Ù.
|
ON_COMMAND(ID_FILE_NEW, &CWinAppEx::OnFileNew)
|
ON_COMMAND(ID_FILE_OPEN, &CWinAppEx::OnFileOpen)
|
END_MESSAGE_MAP()
|
|
|
// CPLCConnectorApp »ý¼º
|
|
CPLCConnectorApp::CPLCConnectorApp()
|
{
|
|
m_bHiColorIcons = TRUE;
|
m_hDupCheck = NULL;
|
|
// TODO: ¿©±â¿¡ »ý¼º Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
// InitInstance¿¡ ¸ðµç Áß¿äÇÑ ÃʱâÈ ÀÛ¾÷À» ¹èÄ¡ÇÕ´Ï´Ù.
|
}
|
|
// À¯ÀÏÇÑ CPLCConnectorApp °³Ã¼ÀÔ´Ï´Ù.
|
|
CPLCConnectorApp theApp;
|
|
|
// CPLCConnectorApp ÃʱâÈ
|
|
BOOL CPLCConnectorApp::InitInstance()
|
{
|
// ÀÀ¿ë ÇÁ·Î±×·¥ ¸Å´ÏÆä½ºÆ®°¡ ComCtl32.dll ¹öÀü 6 ÀÌ»óÀ» »ç¿ëÇÏ¿© ºñÁÖ¾ó ½ºÅ¸ÀÏÀ»
|
// »ç¿ëÇϵµ·Ï ÁöÁ¤ÇÏ´Â °æ¿ì, Windows XP »ó¿¡¼ ¹Ýµå½Ã InitCommonControlsEx()°¡ ÇÊ¿äÇÕ´Ï´Ù.
|
// InitCommonControlsEx()¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é âÀ» ¸¸µé ¼ö ¾ø½À´Ï´Ù.
|
INITCOMMONCONTROLSEX InitCtrls;
|
InitCtrls.dwSize = sizeof(InitCtrls);
|
// ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ »ç¿ëÇÒ ¸ðµç °ø¿ë ÄÁÆ®·Ñ Ŭ·¡½º¸¦ Æ÷ÇÔÇϵµ·Ï
|
// ÀÌ Ç׸ñÀ» ¼³Á¤ÇϽʽÿÀ.
|
InitCtrls.dwICC = ICC_WIN95_CLASSES;
|
InitCommonControlsEx(&InitCtrls);
|
|
CWinAppEx::InitInstance();
|
|
// OLE ¶óÀ̺귯¸®¸¦ ÃʱâÈÇÕ´Ï´Ù.
|
if (!AfxOleInit())
|
{
|
AfxMessageBox(IDP_OLE_INIT_FAILED);
|
return FALSE;
|
}
|
AfxEnableControlContainer();
|
// Ç¥ÁØ ÃʱâÈ
|
// ÀÌµé ±â´ÉÀ» »ç¿ëÇÏÁö ¾Ê°í ÃÖÁ¾ ½ÇÇà ÆÄÀÏÀÇ Å©±â¸¦ ÁÙÀÌ·Á¸é
|
// ¾Æ·¡¿¡¼ ÇÊ¿ä ¾ø´Â ƯÁ¤ ÃʱâÈ
|
// ·çƾÀ» Á¦°ÅÇØ¾ß ÇÕ´Ï´Ù.
|
// ÇØ´ç ¼³Á¤ÀÌ ÀúÀåµÈ ·¹Áö½ºÆ®¸® ۸¦ º¯°æÇϽʽÿÀ.
|
|
m_hDupCheck = ::CreateEvent(NULL,FALSE, FALSE,
|
_T("DUPLICATION_CHECK_EVENT"));
|
if(::GetLastError() == ERROR_ALREADY_EXISTS)
|
{
|
//AfxMessageBox(_T("ERROR::Application is running!"));
|
return FALSE;
|
}
|
// TODO: ÀÌ ¹®ÀÚ¿À» ȸ»ç ¶Ç´Â Á¶Á÷ÀÇ À̸§°ú °°Àº
|
// ÀûÀýÇÑ ³»¿ëÀ¸·Î ¼öÁ¤ÇØ¾ß ÇÕ´Ï´Ù.
|
SetRegistryKey(_T("·ÎÄà ÀÀ¿ë ÇÁ·Î±×·¥ ¸¶¹ý»ç¿¡¼ »ý¼ºµÈ ÀÀ¿ë ÇÁ·Î±×·¥"));
|
LoadStdProfileSettings(4); // MRU¸¦ Æ÷ÇÔÇÏ¿© Ç¥ÁØ INI ÆÄÀÏ ¿É¼ÇÀ» ·ÎµåÇÕ´Ï´Ù.
|
|
InitContextMenuManager();
|
|
InitKeyboardManager();
|
|
InitTooltipManager();
|
CMFCToolTipInfo ttParams;
|
ttParams.m_bVislManagerTheme = TRUE;
|
theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL,
|
RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams);
|
|
// ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¹®¼ ÅÛÇø´À» µî·ÏÇÕ´Ï´Ù. ¹®¼ ÅÛÇø´Àº
|
// ¹®¼, ÇÁ·¹ÀÓ Ã¢ ¹× ºä »çÀÌÀÇ ¿¬°á ¿ªÇÒÀ» ÇÕ´Ï´Ù.
|
CSingleDocTemplate* pDocTemplate;
|
pDocTemplate = new CSingleDocTemplate(
|
IDR_MAINFRAME,
|
RUNTIME_CLASS(CPLCConnectorDoc),
|
RUNTIME_CLASS(CMainFrame), // ÁÖ SDI ÇÁ·¹ÀÓ Ã¢ÀÔ´Ï´Ù.
|
RUNTIME_CLASS(CPLCConnectorView));
|
if (!pDocTemplate)
|
return FALSE;
|
AddDocTemplate(pDocTemplate);
|
|
|
|
// Ç¥ÁØ ¼Ð ¸í·É, DDE, ÆÄÀÏ ¿±â¿¡ ´ëÇÑ ¸í·ÉÁÙÀ» ±¸¹® ºÐ¼®ÇÕ´Ï´Ù.
|
CCommandLineInfo cmdInfo;
|
ParseCommandLine(cmdInfo);
|
|
|
// ¸í·ÉÁÙ¿¡ ÁöÁ¤µÈ ¸í·ÉÀ» µð½ºÆÐÄ¡ÇÕ´Ï´Ù.
|
// ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ /RegServer, /Register, /Unregserver ¶Ç´Â /Unregister·Î ½ÃÀÛµÈ °æ¿ì FALSE¸¦ ¹ÝȯÇÕ´Ï´Ù.
|
if (!ProcessShellCommand(cmdInfo))
|
return FALSE;
|
|
// â Çϳª¸¸ ÃʱâȵǾúÀ¸¹Ç·Î À̸¦ Ç¥½ÃÇÏ°í ¾÷µ¥ÀÌÆ®ÇÕ´Ï´Ù.
|
m_pMainWnd->ShowWindow(SW_SHOW);
|
m_pMainWnd->UpdateWindow();
|
// Á¢¹Ì»ç°¡ ÀÖÀ» °æ¿ì¿¡¸¸ DragAcceptFiles¸¦ È£ÃâÇÕ´Ï´Ù.
|
// SDI ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼´Â ProcessShellCommand ÈÄ¿¡ ÀÌ·¯ÇÑ È£ÃâÀÌ ¹ß»ýÇØ¾ß ÇÕ´Ï´Ù.
|
return TRUE;
|
}
|
|
|
|
// ÀÀ¿ë ÇÁ·Î±×·¥ Á¤º¸¿¡ »ç¿ëµÇ´Â CAboutDlg ´ëÈ »óÀÚÀÔ´Ï´Ù.
|
|
class CAboutDlg : public CDialog
|
{
|
public:
|
CAboutDlg();
|
|
// ´ëÈ »óÀÚ µ¥ÀÌÅÍÀÔ´Ï´Ù.
|
enum { IDD = IDD_ABOUTBOX };
|
|
protected:
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV Áö¿øÀÔ´Ï´Ù.
|
|
// ±¸ÇöÀÔ´Ï´Ù.
|
protected:
|
DECLARE_MESSAGE_MAP()
|
};
|
|
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
|
{
|
}
|
|
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialog::DoDataExchange(pDX);
|
}
|
|
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
|
END_MESSAGE_MAP()
|
|
// ´ëÈ »óÀÚ¸¦ ½ÇÇàÇϱâ À§ÇÑ ÀÀ¿ë ÇÁ·Î±×·¥ ¸í·ÉÀÔ´Ï´Ù.
|
void CPLCConnectorApp::OnAppAbout()
|
{
|
CAboutDlg aboutDlg;
|
aboutDlg.DoModal();
|
}
|
|
// CPLCConnectorApp »ç¿ëÀÚ ÁöÁ¤ ·Îµå/ÀúÀå ¸Þ¼µå
|
|
void CPLCConnectorApp::PreLoadState()
|
{
|
BOOL bNameValid;
|
CString strName;
|
bNameValid = strName.LoadString(IDS_EDIT_MENU);
|
ASSERT(bNameValid);
|
GetContextMenuManager()->AddMenu(strName, IDR_POPUP_EDIT);
|
}
|
|
void CPLCConnectorApp::LoadCustomState()
|
{
|
}
|
|
void CPLCConnectorApp::SaveCustomState()
|
{
|
}
|
|
// CPLCConnectorApp ¸Þ½ÃÁö 󸮱â
|
|
|
|
|
int CPLCConnectorApp::ExitInstance()
|
{
|
// TODO: ¿©±â¿¡ Ư¼öÈµÈ Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº» Ŭ·¡½º¸¦ È£ÃâÇÕ´Ï´Ù.
|
if( m_hDupCheck != NULL)
|
::CloseHandle(m_hDupCheck);
|
|
return CWinAppEx::ExitInstance();
|
}
|