diff --git a/MakeRefusalList/MakeRefusalList.cpp b/MakeRefusalList/MakeRefusalList.cpp
new file mode 100644
index 0000000..7f8fb2c
--- /dev/null
+++ b/MakeRefusalList/MakeRefusalList.cpp
@@ -0,0 +1,142 @@
+// MakeRefusalList.cpp : Defines the class behaviors for the application.
+//
+
+#include "stdafx.h"
+#include "MakeRefusalList.h"
+#include "MakeRefusalListDlg.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+// CMakeRefusalListApp
+
+BEGIN_MESSAGE_MAP(CMakeRefusalListApp, CWinApp)
+ //{{AFX_MSG_MAP(CMakeRefusalListApp)
+ // 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()
+
+/////////////////////////////////////////////////////////////////////////////
+// CMakeRefusalListApp construction
+
+CMakeRefusalListApp::CMakeRefusalListApp()
+{
+ // TODO: add construction code here,
+ // Place all significant initialization in InitInstance
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// The one and only CMakeRefusalListApp object
+
+CMakeRefusalListApp theApp;
+
+/////////////////////////////////////////////////////////////////////////////
+// CMakeRefusalListApp initialization
+
+BOOL CMakeRefusalListApp::InitInstance()
+{
+ AfxOleInit(); // <= Ãß°¡ÇÑ °ÍÀÓ
+
+ 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
+
+ SetRegistryKey(_T("DnaSoft"));
+ GetApplicationSettings();
+
+ CMakeRefusalListDlg dlg;
+ m_pMainWnd = &dlg;
+ int nResponse = dlg.DoModal();
+ if (nResponse == IDOK)
+ {
+ // TODO: Place code here to handle when the dialog is
+ // dismissed with OK
+ }
+ else if (nResponse == IDCANCEL)
+ {
+ // TODO: Place code here to handle when the dialog is
+ // dismissed with Cancel
+ }
+
+ // Since the dialog has been closed, return FALSE so that we exit the
+ // application, rather than start the application's message pump.
+ return FALSE;
+}
+
+int CMakeRefusalListApp::ExitInstance()
+{
+ SaveApplicationSettings();
+ return CWinApp::ExitInstance();
+}
+
+
+void CMakeRefusalListApp::GetApplicationSettings()
+{
+ HKEY hSecKey = GetSectionKey("Settings");
+/*
+ DWORD dwType;
+ m_AppConfig.rcWindow.bottom = 500;
+ DWORD dwData = sizeof(RECT);
+ if (RegQueryValueEx(hSecKey, "WindowRect", NULL, &dwType,
+ (LPBYTE)&m_AppConfig.rcWindow, &dwData) == ERROR_SUCCESS)
+ {
+ }
+
+ m_AppConfig.strSBAddr = GetProfileString( "SBConfig", "SBAddress", "127.0.0.1" );
+ m_AppConfig.lSBPort = GetProfileInt( "SBConfig", "SBPort", 5050 );
+
+ LPBYTE ppData = 0;
+ UINT pBytes=0;
+ if( GetProfileBinary("Config", "Max", &ppData, &pBytes) )
+ memcpy( &g_AppConfig.fMax, ppData, sizeof(float) );
+*/
+
+ g_AppConfig.bUsingAmount = GetProfileInt( "Config", "UsingAmount", TRUE );
+ g_AppConfig.bUsingBM = GetProfileInt( "Config", "UsingBM", TRUE );
+ g_AppConfig.bUsingExchange = GetProfileInt( "Config", "UsingExchange", TRUE );
+ g_AppConfig.bUsingKosdaq = GetProfileInt( "Config", "UsingKosdaq", TRUE );
+
+ g_AppConfig.nAmount = GetProfileInt( "Config", "AmountValue", 1000 );
+ g_AppConfig.nBM = GetProfileInt( "Config", "BmValue", 10000 );
+}
+
+void CMakeRefusalListApp::SaveApplicationSettings()
+{
+ HKEY hSecKey = GetSectionKey("Settings");
+/*
+ RegSetValueEx(hSecKey, "WindowRect", 0, REG_DWORD,
+ (LPBYTE)&m_AppConfig.rcWindow, sizeof(RECT));
+
+ WriteProfileString( "SBConfig", "SBAddress", m_AppConfig.strSBAddr );
+ WriteProfileInt( "SBConfig", "SBPort", m_AppConfig.lSBPort );
+
+ BYTE pData[4];
+ UINT nBytes=4;
+ memcpy( pData, &g_AppConfig.nContinueTime, sizeof(long) );
+ WriteProfileBinary( "Config", "ContinueTime", pData, nBytes);
+*/
+
+ WriteProfileInt( "Config", "UsingAmount", g_AppConfig.bUsingAmount );
+ WriteProfileInt( "Config", "UsingBM", g_AppConfig.bUsingBM );
+ WriteProfileInt( "Config", "UsingExchange", g_AppConfig.bUsingExchange );
+ WriteProfileInt( "Config", "UsingKosdaq", g_AppConfig.bUsingKosdaq );
+
+ WriteProfileInt( "Config", "AmountValue", g_AppConfig.nAmount );
+ WriteProfileInt( "Config", "BmValue", g_AppConfig.nBM );
+}
+
diff --git a/MakeRefusalList/MakeRefusalList.h b/MakeRefusalList/MakeRefusalList.h
new file mode 100644
index 0000000..d4b0c9e
--- /dev/null
+++ b/MakeRefusalList/MakeRefusalList.h
@@ -0,0 +1,54 @@
+// MakeRefusalList.h : main header file for the MAKEREFUSALLIST application
+//
+
+#if !defined(AFX_MAKEREFUSALLIST_H__F5B7722E_EA1B_4354_B4C7_909330209DD5__INCLUDED_)
+#define AFX_MAKEREFUSALLIST_H__F5B7722E_EA1B_4354_B4C7_909330209DD5__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#ifndef __AFXWIN_H__
+ #error include 'stdafx.h' before including this file for PCH
+#endif
+
+#include "resource.h" // main symbols
+
+/////////////////////////////////////////////////////////////////////////////
+// CMakeRefusalListApp:
+// See MakeRefusalList.cpp for the implementation of this class
+//
+
+class CMakeRefusalListApp : public CWinApp
+{
+public:
+ CMakeRefusalListApp();
+
+private:
+ void GetApplicationSettings();
+ void SaveApplicationSettings();
+
+// Overrides
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CMakeRefusalListApp)
+ public:
+ virtual BOOL InitInstance();
+ virtual int ExitInstance();
+ //}}AFX_VIRTUAL
+
+// Implementation
+
+ //{{AFX_MSG(CMakeRefusalListApp)
+ // NOTE - the ClassWizard will add and remove member functions here.
+ // DO NOT EDIT what you see in these blocks of generated code !
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+};
+
+
+/////////////////////////////////////////////////////////////////////////////
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_MAKEREFUSALLIST_H__F5B7722E_EA1B_4354_B4C7_909330209DD5__INCLUDED_)
diff --git a/MakeRefusalList/MakeRefusalList.rc b/MakeRefusalList/MakeRefusalList.rc
new file mode 100644
index 0000000..448086d
--- /dev/null
+++ b/MakeRefusalList/MakeRefusalList.rc
@@ -0,0 +1,218 @@
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Korean resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
+#ifdef _WIN32
+LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
+#pragma code_page(949)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
+ "#define _AFX_NO_OLE_RESOURCES\r\n"
+ "#define _AFX_NO_TRACKER_RESOURCES\r\n"
+ "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
+ "\r\n"
+ "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)\r\n"
+ "#ifdef _WIN32\r\n"
+ "LANGUAGE 18, 1\r\n"
+ "#pragma code_page(949)\r\n"
+ "#endif //_WIN32\r\n"
+ "#include ""res\\MakeRefusalList.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
+ "#include ""l.kor\\afxres.rc"" // Standard components\r\n"
+ "#endif\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDR_MAINFRAME ICON DISCARDABLE "res\\MakeRefusalList.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "MakeRefusalList Á¤º¸"
+FONT 9, "±¼¸²"
+BEGIN
+ ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
+ LTEXT "MakeRefusalList ¹öÀü 1.0",IDC_STATIC,40,10,119,8,
+ SS_NOPREFIX
+ LTEXT "Copyright (C) 2003",IDC_STATIC,40,25,119,8
+ DEFPUSHBUTTON "È®ÀÎ",IDOK,178,7,50,14,WS_GROUP
+END
+
+IDD_MAKEREFUSALLIST_DIALOG DIALOGEX 0, 0, 191, 155
+STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
+ WS_SYSMENU
+EXSTYLE WS_EX_APPWINDOW
+CAPTION "´çÀÏ °Å·¡ºÎÁø Á¾¸ñ°Ë»ö"
+FONT 9, "±¼¸²"
+BEGIN
+ DEFPUSHBUTTON "°Ë»ö ½ÃÀÛ",IDC_RUN_BTN,59,132,71,17
+ CONTROL "´çÀÏ °Å·¡·® :",IDC_USING_AMOUNT_CHECK,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,13,20,56,8
+ CONTROL "´çÀÏ °Å·¡´ë±Ý :",IDC_USING_BM_CHECK,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,13,35,60,8
+ EDITTEXT IDC_AMOUNT_EDIT,74,17,67,14,ES_RIGHT | ES_AUTOHSCROLL |
+ ES_NUMBER
+ EDITTEXT IDC_BM_EDIT,74,34,67,14,ES_RIGHT | ES_AUTOHSCROLL |
+ ES_NUMBER
+ CONTROL "ÄÚ½º´Ú",IDC_USING_KOSDAQ_CHECK,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,13,50,36,8
+ CONTROL "°Å·¡¼Ò",IDC_USING_EXCHANGE_CHECK,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,13,65,36,8
+ LTEXT "(õ¿ø) ÀÌÇÏ",IDC_STATIC,143,38,37,9
+ LTEXT "ÀÌÇÏ",IDC_STATIC,143,23,31,9
+ LTEXT "Ãâ·ÂÆÄÀϸí:",IDC_STATIC,11,82,38,9
+ EDITTEXT IDC_OUTPUTFILENAME_EDIT,50,79,128,14,ES_AUTOHSCROLL
+ CONTROL "Progress1",IDC_RUN_PROGRESS,"msctls_progress32",
+ PBS_SMOOTH | WS_BORDER,7,114,177,12
+ CTEXT "ÁøÇà»óȲ",IDC_PROGRESS_STATIC,7,103,177,10,
+ SS_CENTERIMAGE
+ GROUPBOX "Á¶°Ç",IDC_STATIC,7,5,177,93
+END
+
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,1
+ PRODUCTVERSION 1,0,0,1
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "041204B0"
+ BEGIN
+ VALUE "CompanyName", "\0"
+ VALUE "FileDescription", "MakeRefusalList MFC ÀÀ¿ë ÇÁ·Î±×·¥\0"
+ VALUE "FileVersion", "1, 0, 0, 1\0"
+ VALUE "InternalName", "MakeRefusalList\0"
+ VALUE "LegalCopyright", "Copyright (C) 2003\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OriginalFilename", "MakeRefusalList.EXE\0"
+ VALUE "ProductName", "MakeRefusalList ÀÀ¿ë ÇÁ·Î±×·¥\0"
+ VALUE "ProductVersion", "1, 0, 0, 1\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x412, 1200
+ END
+END
+
+#endif // !_MAC
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO DISCARDABLE
+BEGIN
+ IDD_ABOUTBOX, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 228
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 48
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_ABOUTBOX "MakeRefusalList Á¤º¸(&A)..."
+END
+
+#endif // Korean resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#define _AFX_NO_SPLITTER_RESOURCES
+#define _AFX_NO_OLE_RESOURCES
+#define _AFX_NO_TRACKER_RESOURCES
+#define _AFX_NO_PROPERTY_RESOURCES
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
+#ifdef _WIN32
+LANGUAGE 18, 1
+#pragma code_page(949)
+#endif //_WIN32
+#include "res\MakeRefusalList.rc2" // non-Microsoft Visual C++ edited resources
+#include "l.kor\afxres.rc" // Standard components
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/MakeRefusalList/MakeRefusalList.sln b/MakeRefusalList/MakeRefusalList.sln
new file mode 100644
index 0000000..4d6d230
--- /dev/null
+++ b/MakeRefusalList/MakeRefusalList.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MakeRefusalList", "MakeRefusalList.vcproj", "{4200A8B8-F1EB-4000-89BB-61CF0F6DE487}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {4200A8B8-F1EB-4000-89BB-61CF0F6DE487}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4200A8B8-F1EB-4000-89BB-61CF0F6DE487}.Debug|Win32.Build.0 = Debug|Win32
+ {4200A8B8-F1EB-4000-89BB-61CF0F6DE487}.Release|Win32.ActiveCfg = Release|Win32
+ {4200A8B8-F1EB-4000-89BB-61CF0F6DE487}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/MakeRefusalList/MakeRefusalList.vcproj b/MakeRefusalList/MakeRefusalList.vcproj
new file mode 100644
index 0000000..14a4425
--- /dev/null
+++ b/MakeRefusalList/MakeRefusalList.vcproj
@@ -0,0 +1,320 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MakeRefusalList/MakeRefusalListDlg.cpp b/MakeRefusalList/MakeRefusalListDlg.cpp
new file mode 100644
index 0000000..567a939
--- /dev/null
+++ b/MakeRefusalList/MakeRefusalListDlg.cpp
@@ -0,0 +1,575 @@
+// MakeRefusalListDlg.cpp : implementation file
+//
+
+#include "stdafx.h"
+#include "MakeRefusalList.h"
+#include "MakeRefusalListDlg.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+// CAboutDlg dialog used for App About
+
+class CAboutDlg : public CDialog
+{
+public:
+ CAboutDlg();
+
+// Dialog Data
+ //{{AFX_DATA(CAboutDlg)
+ enum { IDD = IDD_ABOUTBOX };
+ //}}AFX_DATA
+
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CAboutDlg)
+ protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+ //}}AFX_VIRTUAL
+
+// Implementation
+protected:
+ //{{AFX_MSG(CAboutDlg)
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+};
+
+CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
+{
+ //{{AFX_DATA_INIT(CAboutDlg)
+ //}}AFX_DATA_INIT
+}
+
+void CAboutDlg::DoDataExchange(CDataExchange* pDX)
+{
+ CDialog::DoDataExchange(pDX);
+ //{{AFX_DATA_MAP(CAboutDlg)
+ //}}AFX_DATA_MAP
+}
+
+BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
+ //{{AFX_MSG_MAP(CAboutDlg)
+ // No message handlers
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CMakeRefusalListDlg dialog
+
+CMakeRefusalListDlg::CMakeRefusalListDlg(CWnd* pParent /*=NULL*/)
+ : CDialog(CMakeRefusalListDlg::IDD, pParent)
+{
+ //{{AFX_DATA_INIT(CMakeRefusalListDlg)
+ m_nAmount = 1000;
+ m_nBM = 10000;
+ m_strOutputFileName = _T("°ÅºÎ_ÀüÀå°Å·¡ºÎÁøÁ¾¸ñÄÚµå.txt");
+ //}}AFX_DATA_INIT
+ // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
+ m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
+}
+
+void CMakeRefusalListDlg::DoDataExchange(CDataExchange* pDX)
+{
+ CDialog::DoDataExchange(pDX);
+ //{{AFX_DATA_MAP(CMakeRefusalListDlg)
+ DDX_Control(pDX, IDC_RUN_PROGRESS, m_hRunProgress);
+ DDX_Text(pDX, IDC_AMOUNT_EDIT, m_nAmount);
+ DDX_Text(pDX, IDC_BM_EDIT, m_nBM);
+ DDX_Text(pDX, IDC_OUTPUTFILENAME_EDIT, m_strOutputFileName);
+ //}}AFX_DATA_MAP
+}
+
+BEGIN_MESSAGE_MAP(CMakeRefusalListDlg, CDialog)
+ //{{AFX_MSG_MAP(CMakeRefusalListDlg)
+ ON_WM_SYSCOMMAND()
+ ON_WM_PAINT()
+ ON_WM_QUERYDRAGICON()
+ ON_BN_CLICKED(IDC_USING_AMOUNT_CHECK, OnUsingAmountCheck)
+ ON_BN_CLICKED(IDC_USING_BM_CHECK, OnUsingBmCheck)
+ ON_WM_CLOSE()
+ ON_BN_CLICKED(IDC_RUN_BTN, OnRunBtn)
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CMakeRefusalListDlg message handlers
+
+BOOL CMakeRefusalListDlg::OnInitDialog()
+{
+ CDialog::OnInitDialog();
+
+ // Add "About..." menu item to system menu.
+
+ // IDM_ABOUTBOX must be in the system command range.
+ ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
+ ASSERT(IDM_ABOUTBOX < 0xF000);
+
+ CMenu* pSysMenu = GetSystemMenu(FALSE);
+ if (pSysMenu != NULL)
+ {
+ CString strAboutMenu;
+ strAboutMenu.LoadString(IDS_ABOUTBOX);
+ if (!strAboutMenu.IsEmpty())
+ {
+ pSysMenu->AppendMenu(MF_SEPARATOR);
+ pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
+ }
+ }
+
+ // Set the icon for this dialog. The framework does this automatically
+ // when the application's main window is not a dialog
+ SetIcon(m_hIcon, TRUE); // Set big icon
+ SetIcon(m_hIcon, FALSE); // Set small icon
+
+ // TODO: Add extra initialization here
+ ((CButton*)GetDlgItem( IDC_USING_AMOUNT_CHECK ))->SetCheck(g_AppConfig.bUsingAmount);
+ ((CButton*)GetDlgItem( IDC_USING_BM_CHECK ))->SetCheck(g_AppConfig.bUsingBM);
+ ((CButton*)GetDlgItem( IDC_USING_KOSDAQ_CHECK ))->SetCheck(g_AppConfig.bUsingKosdaq);
+ ((CButton*)GetDlgItem( IDC_USING_EXCHANGE_CHECK ))->SetCheck(g_AppConfig.bUsingExchange);
+
+ ((CWnd*)GetDlgItem( IDC_AMOUNT_EDIT ))->EnableWindow( g_AppConfig.bUsingAmount );
+ ((CWnd*)GetDlgItem( IDC_BM_EDIT ))->EnableWindow( g_AppConfig.bUsingBM );
+
+ m_nAmount = g_AppConfig.nAmount;
+ m_nBM = g_AppConfig.nBM;
+
+ UpdateData(FALSE);
+ return TRUE; // return TRUE unless you set the focus to a control
+}
+
+void CMakeRefusalListDlg::OnSysCommand(UINT nID, LPARAM lParam)
+{
+ if ((nID & 0xFFF0) == IDM_ABOUTBOX)
+ {
+ CAboutDlg dlgAbout;
+ dlgAbout.DoModal();
+ }
+ else
+ {
+ CDialog::OnSysCommand(nID, lParam);
+ }
+}
+
+// If you add a minimize button to your dialog, you will need the code below
+// to draw the icon. For MFC applications using the document/view model,
+// this is automatically done for you by the framework.
+
+void CMakeRefusalListDlg::OnPaint()
+{
+ if (IsIconic())
+ {
+ CPaintDC dc(this); // device context for painting
+
+ SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
+
+ // Center icon in client rectangle
+ int cxIcon = GetSystemMetrics(SM_CXICON);
+ int cyIcon = GetSystemMetrics(SM_CYICON);
+ CRect rect;
+ GetClientRect(&rect);
+ int x = (rect.Width() - cxIcon + 1) / 2;
+ int y = (rect.Height() - cyIcon + 1) / 2;
+
+ // Draw the icon
+ dc.DrawIcon(x, y, m_hIcon);
+ }
+ else
+ {
+ CDialog::OnPaint();
+ }
+}
+
+// The system calls this to obtain the cursor to display while the user drags
+// the minimized window.
+HCURSOR CMakeRefusalListDlg::OnQueryDragIcon()
+{
+ return (HCURSOR) m_hIcon;
+}
+
+void CMakeRefusalListDlg::OnUsingAmountCheck()
+{
+ BOOL bCheck = ((CButton*)GetDlgItem( IDC_USING_AMOUNT_CHECK ))->GetCheck();
+ ((CWnd*)GetDlgItem( IDC_AMOUNT_EDIT ))->EnableWindow( bCheck );
+}
+
+void CMakeRefusalListDlg::OnUsingBmCheck()
+{
+ BOOL bCheck = ((CButton*)GetDlgItem( IDC_USING_BM_CHECK ))->GetCheck();
+ ((CWnd*)GetDlgItem( IDC_BM_EDIT ))->EnableWindow( bCheck );
+}
+
+void CMakeRefusalListDlg::OnClose()
+{
+ CDialog::OnClose();
+}
+
+void CMakeRefusalListDlg::OnCancel()
+{
+ CWnd* pWnd = (CWnd*)GetDlgItem( IDC_RUN_BTN );
+ DWORD dwStyle = pWnd->GetStyle();
+ if( dwStyle & WS_DISABLED )
+ {
+ CString str;
+ str.Format( "ÀÛ¾÷ÀÌ ÁøÇàÁßÀÔ´Ï´Ù.\nÇÁ·Î±×·¥À» Á¾·áÇϽðڽÀ´Ï±î?" );
+ int nID = MessageBox( str, "ÇÁ·Î±×·¥ Á¾·á Áú¹®", MB_ICONQUESTION|MB_YESNO );
+ if( nID == IDNO )
+ return;
+ }
+
+ UpdateData();
+
+ g_AppConfig.bUsingAmount = ((CButton*)GetDlgItem( IDC_USING_AMOUNT_CHECK ))->GetCheck();
+ g_AppConfig.bUsingBM = ((CButton*)GetDlgItem( IDC_USING_BM_CHECK ))->GetCheck();
+ g_AppConfig.bUsingKosdaq = ((CButton*)GetDlgItem( IDC_USING_KOSDAQ_CHECK ))->GetCheck();
+ g_AppConfig.bUsingExchange = ((CButton*)GetDlgItem( IDC_USING_EXCHANGE_CHECK ))->GetCheck();
+
+ g_AppConfig.nAmount = m_nAmount;
+ g_AppConfig.nBM = m_nBM;
+
+ CDialog::OnCancel();
+}
+
+void CMakeRefusalListDlg::OnRunBtn()
+{
+ UpdateData();
+
+ CFile * pFile=NULL;
+ HANDLE hFile;
+ CString _strFileName;
+ TCHAR szFilePath[_MAX_PATH]={0,};
+ CStatic *pStatus = (CStatic*)GetDlgItem( IDC_PROGRESS_STATIC );
+
+ int nTotal=0;
+ long nAmount, nBM=0;
+ BOOL bCheck_AM;
+ BOOL bCheck_BM;
+ BOOL bCheck_KO;
+ BOOL bCheck_EX;
+
+ CString str;
+ str.Format( "°ÅºÎ¸®½ºÆ® °Ë»ç´Â ¸îºÐÀÌ ¼Ò¿äµË´Ï´Ù.\n"
+ "ÀÌ ÀÛ¾÷Àº ¿É¼ÇÀû¿ëÀÌ µÇ¹Ç·Î, ¿É¼Ç¼³Á¤ÀÌ ¸Â´ÂÁö È®ÀÎÇϼ¼¿ä.\n"
+ "ÀÛ¾÷À» °è¼Ó ÁøÇàÇϽðڽÀ´Ï±î?" );
+ int nID = MessageBox( str, "°ÅºÎ¸®½ºÆ® ÁøÇà", MB_ICONQUESTION|MB_YESNO );
+ if( nID == IDNO )
+ goto _EXIT1_;
+
+ ((CWnd*)GetDlgItem( IDC_RUN_BTN ))->EnableWindow(FALSE);
+
+ ///////////////////////////////////////////////////////////////////
+ ::GetModuleFileName(NULL, szFilePath, _MAX_PATH);
+ *(strrchr( szFilePath, '\\' ) + 1) = 0;
+ _strFileName.Format( "%s%s", szFilePath, m_strOutputFileName );
+ hFile = CreateFile(_strFileName,
+ GENERIC_WRITE, FILE_SHARE_READ,
+ NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
+
+ if (hFile == INVALID_HANDLE_VALUE)
+ {
+ AfxMessageBox( _strFileName + " ÆÄÀÏÀ» ¸¸µé ¼ö ¾ø½À´Ï´Ù." );
+ goto _EXIT1_;
+ }
+ else
+ {
+ pFile = new CFile(hFile);
+ pFile->SeekToEnd();
+ }
+
+ ///////////////////////////////////////////////////////////////////
+ bCheck_AM = ((CButton*)GetDlgItem( IDC_USING_AMOUNT_CHECK ))->GetCheck();
+ bCheck_BM = ((CButton*)GetDlgItem( IDC_USING_BM_CHECK ))->GetCheck();
+ bCheck_KO = ((CButton*)GetDlgItem( IDC_USING_KOSDAQ_CHECK ))->GetCheck();
+ bCheck_EX = ((CButton*)GetDlgItem( IDC_USING_EXCHANGE_CHECK ))->GetCheck();
+
+ if( bCheck_AM )
+ nAmount = m_nAmount;
+ if( bCheck_BM )
+ nBM = m_nBM;
+
+ if( (bCheck_AM == FALSE) && (bCheck_BM == FALSE) )
+ {
+ AfxMessageBox("°Å·¡·®/°Å·¡±Ý¾× ¸ðµÎ¸¦ Àû¿ëÇÏÁö ¾Ê¾Ò½À´Ï´Ù.\n\nÀû¾îµµ Çϳª´Â ÁöÁ¤ÇÏ¼Å¾ß ÇÕ´Ï´Ù.");
+ goto _EXIT1_;
+ }
+ if( (bCheck_KO == FALSE) && (bCheck_EX == FALSE) )
+ {
+ AfxMessageBox("ÄÚ½º´Ú/°Å·¡¼Ò ¸ðµÎ¸¦ Àû¿ëÇÏÁö ¾Ê¾Ò½À´Ï´Ù.\n\nÀû¾îµµ Çϳª´Â ÁöÁ¤ÇÏ¼Å¾ß ÇÕ´Ï´Ù.");
+ goto _EXIT1_;
+ }
+
+ try
+ {
+ long nCount;
+ HRESULT hr;
+ ICpStockCodePtr _objStockCode;
+ IDibPtr _objStockMst2;
+ CString strMsg;
+
+ pStatus->SetWindowText( "ÃʱâÈ °Ë»çÁß..." );
+
+ hr = _objStockCode.CreateInstance( CLSID_CpStockCode ); // Á¾¸ñÄڵ庯ȯ.
+ if (SUCCEEDED(hr))
+ hr = _objStockMst2.CreateInstance( CLSID_StockMst2 ); // ÁÖ½Ä º¹¼ö Á¾¸ñ¿¡ ´ëÇØ Àϰý Á¶È¸¸¦ ¿äûÇÏ°í ¼ö½ÅÇÑ´Ù
+ if (SUCCEEDED(hr))
+ {
+ char szFormat[256]={0,};
+ wsprintf( szFormat, "' -------------------------------------------------------------------------- \r\n" );
+ pFile->Write(szFormat, strlen(szFormat));
+
+ char szDate[100], szTime[100];
+ _strdate( szDate ); _strtime( szTime );
+ wsprintf( szFormat, "' °ÅºÎÁ¾¸ñ °Ë»çÀϽà : %s : %s \r\n", szDate, szTime );
+ pFile->Write(szFormat, strlen(szFormat));
+ wsprintf( szFormat, "' °ÅºÎÁ¾¸ñ °Ë»ç¼³Á¤ : °Å·¡·®(%s):%dÁÖ, °Å·¡±Ý¾×(%s):%dõ¿ø, ÄÚ½º´Ú(%s), °Å·¡¼Ò(%s) \r\n",
+ bCheck_AM?"O":"X", m_nAmount, bCheck_BM?"O":"X", m_nBM, bCheck_KO?"O":"X", bCheck_EX?"O":"X" );
+ pFile->Write(szFormat, strlen(szFormat));
+ wsprintf( szFormat, "' Á¾¸ñÄÚµå, Á¾¸ñ¸í, ±¸ºÐ, °Å·¡·®, °Å·¡±Ý¾×(õ¿ø) \r\n");
+ pFile->Write(szFormat, strlen(szFormat));
+
+ wsprintf( szFormat, "' -------------------------------------------------------------------------- \r\n");
+ pFile->Write(szFormat, strlen(szFormat));
+ nCount = _objStockCode->GetCount();
+
+ CString _strJCode;
+
+ pStatus->SetWindowText( "ÀüÁ¾¸ñ ÄÚµå °Ë»çÁß..." );
+ //for(int _j=0; _jGetData(0, _j);
+ // long nIndex = atol( (LPSTR)(LPCTSTR)_strJCode.Right(6) );
+
+ // // 1-Àå³», 5-ÄÚ½º´Ú, 6-Á¦3½ÃÀå
+ // TypeGuBun[ nIndex ] = (short)_objStockCode->GetData( 4, _j );
+ //}
+
+ m_hRunProgress.SetRange(0, (short)nCount);
+ m_hRunProgress.SetPos(0);
+
+ short j=0;
+
+ while( jGetData( 4, j );
+ CString strCode = (LPSTR)(_bstr_t)_objStockCode->GetData(0, j);
+
+ strcat( szCode, (LPSTR)(LPCTSTR)strCode );
+ strcat( szCode, "," );
+ }
+
+ if( strlen( szCode ) == 0 )
+ continue;
+ *(strrchr( szCode, ',' )) = NULL;
+
+ _objStockMst2->SetInputValue( 0, szCode );
+ _objStockMst2->BlockRequest();
+
+ strMsg.Format( "%d/%d ÁøÇàÁß", j, nCount );
+ pStatus->SetWindowText( strMsg );
+
+ short nRecv = (short)_objStockMst2->GetHeaderValue(0);
+ if( nRecv == 0 )
+ {
+ AfxMessageBox("¼ö½ÅµÈ µ¥ÀÌÅͰ¡ ¾ø½À´Ï´Ù. Cybosplus ¼ºñ½º ½Ã°£´ë¸¦ È®ÀÎÇØÁÖ¼¼¿ä.");
+ break;
+ }
+
+ for( long k=0; kGetDataValue(11, k); // 11 : (unsigned long) °Å·¡·®
+ long nBM_Current = (long)_objStockMst2->GetDataValue(12, k); // 12 : (long) °Å·¡´ë±Ý(´ÜÀ§, °Å·¡¼Ò:¸¸¿ø, ÄÚ½º´Ú:õ¿ø)
+
+ CString strJCode = (LPSTR)(_bstr_t)_objStockMst2->GetDataValue(0, k); // 0 : (string) Á¾¸ñ ÄÚµå
+ long nIndex = atol( (LPSTR)(LPCTSTR)strJCode.Right(6) );
+
+ if(strJCode == "A000220")
+ {
+ TRACE("test");
+ }
+
+ //// ´ÜÀ§¸¦ (õ¿ø)´ÜÀ§·Î Àç°è»ê.
+ // // 1-Àå³», 5-ÄÚ½º´Ú, 6-Á¦3½ÃÀå
+ //if( (TypeGuBun[nIndex]==1) && bCheck_EX)
+ // nBM_Current = nBM_Current * 10;
+ //else if( (TypeGuBun[ nIndex ]==5) && bCheck_KO)
+ // nBM_Current = nBM_Current * 1;
+ //else
+ // continue;
+
+ if( ((nAmount_Current <= nAmount) && bCheck_AM) ||
+ ((nBM_Current <= nBM) && bCheck_BM) )
+ {
+ char szFormat[256]={0,};
+ wsprintf( szFormat, "%6s, %20s, [%d], %10d, %12d \r\n",
+ (LPSTR)(LPCTSTR)strJCode.Right(6),
+ (LPSTR)(LPCTSTR)(_bstr_t)_objStockMst2->GetDataValue(1, k),
+ 0,
+ nAmount_Current, nBM_Current );
+ pFile->Write(szFormat, strlen(szFormat));
+
+ ++nTotal;
+ }
+ else
+ {
+ TRACE("Á¶°Çº¸´Ù Å");
+ }
+ }
+
+ m_hRunProgress.SetPos(j);
+ }
+ }
+
+ _objStockCode.Release();
+ _objStockMst2.Release();
+
+ strMsg.Format( "°ÅºÎ¸®½ºÆ® °Ë»ç: %dÁ¾¸ñ.", nTotal );
+ pStatus->SetWindowText( strMsg );
+ AfxMessageBox( strMsg );
+ }
+ catch( _com_error e )
+ {
+ AfxMessageBox( "ÇÁ·Î±×·¥À» ½ÇÇà ÇÒ ¼ö ¾ø½À´Ï´Ù!" );
+ }
+ catch(...)
+ {
+ AfxMessageBox( "ÇÁ·Î±×·¥½ÇÇàÁß ¹®Á¦°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù." );
+ }
+
+_EXIT1_:
+ if( pFile )
+ {
+ pFile->Close();
+ SAFE_DELETE( pFile );
+ }
+
+ ((CWnd*)GetDlgItem( IDC_RUN_BTN ))->EnableWindow(TRUE);
+}
+/*
+void CMakeRefusalListDlg::OnManageCodeBtn()
+{
+ UpdateData();
+
+ CFile * pFile=NULL;
+ HANDLE hFile;
+ CString _strFileName;
+ TCHAR szFilePath[_MAX_PATH]={0,};
+ CStatic *pStatus = (CStatic*)GetDlgItem( IDC_PROGRESS_STATIC );
+
+ CString str;
+ str.Format( "ÀüÁ¾¸ñ °ü¸®/°¨µ¶ Á¾¸ñ°Ë»ç´Â ÃÖ¼Ò30ºÐÀÌ ¼Ò¿äµË´Ï´Ù.\n"
+ "ÀÌ ÀÛ¾÷Àº ¿É¼ÇÀû¿ëÀÌ ¾ø½À´Ï´Ù.\n"
+ "'°ü¸®°¨µ¶Á¾¸ñ.txt'ÆÄÀÏÀ» »ý¼ºÇÕ´Ï´Ù.\n"
+ "ÀÛ¾÷À» °è¼Ó ÁøÇàÇϽðڽÀ´Ï±î?" );
+ int nID = MessageBox( str, "°ü¸®/°¨µ¶ Á¾¸ñ°Ë»ç ÁøÇà", MB_ICONQUESTION|MB_YESNO );
+ if( nID == IDNO )
+ goto _EXIT2_;
+
+ ((CWnd*)GetDlgItem( IDC_RUN_BTN ))->EnableWindow(FALSE);
+ ((CWnd*)GetDlgItem( IDC_MANAGE_CODE_BTN ))->EnableWindow(FALSE);
+
+ ///////////////////////////////////////////////////////////////////
+ ::GetModuleFileName(NULL, szFilePath, _MAX_PATH);
+ *(strrchr( szFilePath, '\\' ) + 1) = 0;
+ _strFileName.Format( "%s°ü¸®°¨µ¶Á¾¸ñ.txt", szFilePath );
+ hFile = CreateFile(_strFileName,
+ GENERIC_WRITE, FILE_SHARE_READ,
+ NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
+ if (hFile == INVALID_HANDLE_VALUE)
+ {
+ AfxMessageBox(_T("'°ü¸®°¨µ¶Á¾¸ñ.txt' ÆÄÀÏÀ» ¸¸µé ¼ö ¾ø½À´Ï´Ù."));
+ goto _EXIT2_;
+ }
+ else
+ {
+ pFile = new CFile((int)hFile);
+ pFile->SeekToEnd();
+ }
+
+ ///////////////////////////////////////////////////////////////////
+ try
+ {
+ long nCount;
+ HRESULT hr;
+ ICpStockCodePtr _objStockCode;
+ IDibPtr _objStockMst;
+
+ CString strMsg;
+ pStatus->SetWindowText( "ÃÖ±âÈ °Ë»çÁß..." );
+
+ long nTotal=0;
+ hr = _objStockCode.CreateInstance( CLSID_CpStockCode ); // Á¾¸ñÄڵ庯ȯ.
+ if (SUCCEEDED(hr))
+ hr = _objStockMst.CreateInstance( CLSID_StockMst ); // ÁÖ½Ä Á¾¸ñ¿¡ ´ëÇØ ÇöÀç°¡¿¡ °ü·ÃµÈ ¸ðµç Á¤º¸¸¦ ÇÑ ´«¿¡ º¼ ¼ö ÀÖ°Ô
+ if (SUCCEEDED(hr))
+ {
+ CString _strJCode;
+ nCount = _objStockCode->GetCount();
+
+ m_hRunProgress.SetRange(0, (short)nCount);
+ m_hRunProgress.SetPos(0);
+
+ for(int _j=0; _jGetData(0, _j); // Á¾¸ñÄÚµå.
+
+ // 1-Àå³», 5-ÄÚ½º´Ú, 6-Á¦3½ÃÀå
+ short sType = (short)_objStockCode->GetData( 4, _j );
+ if( sType == 1 || sType == 5 )
+ {
+ _objStockMst->SetInputValue(0,(LPSTR)(LPCTSTR)_strJCode);
+ _objStockMst->BlockRequest();
+ BYTE cbCodeGubun = _objStockMst->GetHeaderValue(44);
+ if( cbCodeGubun != '0' ) // 0: Á¤»ó, 1: °¨¸®, 2: °ü¸®, 3: °Å·¡Á¤Áö, ...
+ {
+ CString _strJName = (LPCSTR)(_bstr_t)_objStockCode->GetData(1, _j); // Á¾¸ñ¸í.
+
+ char szFormat[256]={0,};
+ wsprintf( szFormat, "%5s,%C, %20s \r\n",
+ (LPSTR)(LPCTSTR)_strJCode.Right(5), cbCodeGubun, (LPSTR)(LPCTSTR)_strJName );
+ pFile->Write(szFormat, strlen(szFormat));
+
+ ++nTotal;
+ }
+ }
+
+ m_hRunProgress.SetPos(_j);
+
+ strMsg.Format( "%d/%d ÁøÇàÁß", _j, nCount );
+ pStatus->SetWindowText( strMsg );
+ }
+ }
+
+ _objStockCode.Release();
+ _objStockMst.Release();
+
+ strMsg.Format( "°ü¸®°¨µ¶Á¾¸ñ °Ë»ç: %dÁ¾¸ñ.", nTotal );
+ pStatus->SetWindowText( strMsg );
+ AfxMessageBox( strMsg );
+ }
+ catch( _com_error e )
+ {
+ AfxMessageBox( "ÇÁ·Î±×·¥À» ½ÇÇà ÇÒ ¼ö ¾ø½À´Ï´Ù!" );
+ }
+ catch(...)
+ {
+ AfxMessageBox( "ÇÁ·Î±×·¥½ÇÇàÁß ¹®Á¦°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù." );
+ }
+
+_EXIT2_:
+ if( pFile )
+ {
+ pFile->Close();
+ SAFE_DELETE( pFile );
+ }
+
+ ((CWnd*)GetDlgItem( IDC_RUN_BTN ))->EnableWindow(TRUE);
+ ((CWnd*)GetDlgItem( IDC_MANAGE_CODE_BTN ))->EnableWindow(TRUE);
+}
+*/
diff --git a/MakeRefusalList/MakeRefusalListDlg.h b/MakeRefusalList/MakeRefusalListDlg.h
new file mode 100644
index 0000000..6e334dc
--- /dev/null
+++ b/MakeRefusalList/MakeRefusalListDlg.h
@@ -0,0 +1,57 @@
+// MakeRefusalListDlg.h : header file
+//
+
+#if !defined(AFX_MAKEREFUSALLISTDLG_H__6FF3141C_F49D_44D6_AB79_118AD467E683__INCLUDED_)
+#define AFX_MAKEREFUSALLISTDLG_H__6FF3141C_F49D_44D6_AB79_118AD467E683__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+/////////////////////////////////////////////////////////////////////////////
+// CMakeRefusalListDlg dialog
+
+class CMakeRefusalListDlg : public CDialog
+{
+// Construction
+public:
+ CMakeRefusalListDlg(CWnd* pParent = NULL); // standard constructor
+
+// Dialog Data
+ //{{AFX_DATA(CMakeRefusalListDlg)
+ enum { IDD = IDD_MAKEREFUSALLIST_DIALOG };
+ CProgressCtrl m_hRunProgress;
+ long m_nAmount;
+ long m_nBM;
+ CString m_strOutputFileName;
+ //}}AFX_DATA
+
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CMakeRefusalListDlg)
+ protected:
+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
+ //}}AFX_VIRTUAL
+
+// Implementation
+protected:
+ HICON m_hIcon;
+
+ // Generated message map functions
+ //{{AFX_MSG(CMakeRefusalListDlg)
+ virtual BOOL OnInitDialog();
+ afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
+ afx_msg void OnPaint();
+ afx_msg HCURSOR OnQueryDragIcon();
+ virtual void OnCancel();
+ afx_msg void OnUsingAmountCheck();
+ afx_msg void OnUsingBmCheck();
+ afx_msg void OnClose();
+ afx_msg void OnRunBtn();
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+};
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_MAKEREFUSALLISTDLG_H__6FF3141C_F49D_44D6_AB79_118AD467E683__INCLUDED_)
diff --git a/MakeRefusalList/StdAfx.cpp b/MakeRefusalList/StdAfx.cpp
new file mode 100644
index 0000000..4ec1dd1
--- /dev/null
+++ b/MakeRefusalList/StdAfx.cpp
@@ -0,0 +1,8 @@
+// stdafx.cpp : source file that includes just the standard includes
+// MakeRefusalList.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
+
+
+APP_CONFIG g_AppConfig = { TRUE, TRUE, TRUE, TRUE, 1000, 10000 };
diff --git a/MakeRefusalList/StdAfx.h b/MakeRefusalList/StdAfx.h
new file mode 100644
index 0000000..cc78291
--- /dev/null
+++ b/MakeRefusalList/StdAfx.h
@@ -0,0 +1,48 @@
+// 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__639EF927_3D4E_41F2_92FD_BFFCFF4FB440__INCLUDED_)
+#define AFX_STDAFX_H__639EF927_3D4E_41F2_92FD_BFFCFF4FB440__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
+
+#include // MFC core and standard components
+#include // MFC extensions
+#include // MFC Automation classes
+#include // MFC support for Internet Explorer 4 Common Controls
+#ifndef _AFX_NO_AFXCMN_SUPPORT
+#include // MFC support for Windows Common Controls
+#endif // _AFX_NO_AFXCMN_SUPPORT
+
+#include
+#include // T2A macros
+// Ãß°¡
+#import "c:\daishin\CYBOSPLUS\cpdib.dll" no_namespace named_guids
+//#import "c:\daishin\CYBOSPLUS\cptrade.dll" no_namespace named_guids
+#import "c:\daishin\CYBOSPLUS\cputil.dll" no_namespace named_guids
+
+#define SAFE_DELETE(pObject) { if (pObject) {delete pObject; pObject = NULL; }; }
+
+
+typedef struct _tag_APP_CONFIG
+{
+ BOOL bUsingAmount;
+ BOOL bUsingBM;
+ BOOL bUsingExchange;
+ BOOL bUsingKosdaq;
+
+ int nAmount;
+ int nBM;
+} APP_CONFIG;
+extern APP_CONFIG g_AppConfig;
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_STDAFX_H__639EF927_3D4E_41F2_92FD_BFFCFF4FB440__INCLUDED_)
diff --git a/MakeRefusalList/res/MakeRefusalList.ico b/MakeRefusalList/res/MakeRefusalList.ico
new file mode 100644
index 0000000..3fd2ad1
Binary files /dev/null and b/MakeRefusalList/res/MakeRefusalList.ico differ
diff --git a/MakeRefusalList/res/MakeRefusalList.rc2 b/MakeRefusalList/res/MakeRefusalList.rc2
new file mode 100644
index 0000000..faaa36d
--- /dev/null
+++ b/MakeRefusalList/res/MakeRefusalList.rc2
@@ -0,0 +1,13 @@
+//
+// MAKEREFUSALLIST.RC2 - resources Microsoft Visual C++ does not edit directly
+//
+
+#ifdef APSTUDIO_INVOKED
+ #error this file is not editable by Microsoft Visual C++
+#endif //APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Add manually edited resources here...
+
+/////////////////////////////////////////////////////////////////////////////
diff --git a/MakeRefusalList/resource.h b/MakeRefusalList/resource.h
new file mode 100644
index 0000000..5d2a499
--- /dev/null
+++ b/MakeRefusalList/resource.h
@@ -0,0 +1,30 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by MakeRefusalList.rc
+//
+#define IDM_ABOUTBOX 0x0010
+#define IDD_ABOUTBOX 100
+#define IDS_ABOUTBOX 101
+#define IDD_MAKEREFUSALLIST_DIALOG 102
+#define IDR_MAINFRAME 128
+#define IDC_USING_AMOUNT_CHECK 1000
+#define IDC_USING_BM_CHECK 1001
+#define IDC_AMOUNT_EDIT 1002
+#define IDC_BM_EDIT 1003
+#define IDC_USING_KOSDAQ_CHECK 1004
+#define IDC_USING_EXCHANGE_CHECK 1005
+#define IDC_OUTPUTFILENAME_EDIT 1006
+#define IDC_RUN_PROGRESS 1007
+#define IDC_RUN_BTN 1008
+#define IDC_PROGRESS_STATIC 1009
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 129
+#define _APS_NEXT_COMMAND_VALUE 32771
+#define _APS_NEXT_CONTROL_VALUE 1011
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif