Files
2022-10-26 12:25:11 +08:00

86 lines
2.4 KiB
C++

// DlgProxy.cpp : 구현 파일
//
#include "stdafx.h"
#include "ExcelMng.h"
#include "DlgProxy.h"
#include "ExcelMngDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CExcelMngDlgAutoProxy
IMPLEMENT_DYNCREATE(CExcelMngDlgAutoProxy, CCmdTarget)
CExcelMngDlgAutoProxy::CExcelMngDlgAutoProxy()
{
EnableAutomation();
// 자동화 개체가 활성화되어 있는 동안 응용 프로그램이 계속
// 실행되도록 하기 위해 생성자가 AfxOleLockApp를 호출합니다.
AfxOleLockApp();
// 응용 프로그램의 주 창 포인터를 통해 대화 상자에 대한
// 액세스를 가져옵니다. 프록시의 내부 포인터를 설정하여
// 대화 상자를 가리키고 대화 상자의 후방 포인터를 이 프록시로
// 설정합니다.
ASSERT_VALID(AfxGetApp()->m_pMainWnd);
if (AfxGetApp()->m_pMainWnd)
{
ASSERT_KINDOF(CExcelMngDlg, AfxGetApp()->m_pMainWnd);
if (AfxGetApp()->m_pMainWnd->IsKindOf(RUNTIME_CLASS(CExcelMngDlg)))
{
m_pDialog = reinterpret_cast<CExcelMngDlg*>(AfxGetApp()->m_pMainWnd);
m_pDialog->m_pAutoProxy = this;
}
}
}
CExcelMngDlgAutoProxy::~CExcelMngDlgAutoProxy()
{
// 자동화를 사용하여 모든 개체가 생성되면 응용 프로그램을 끝내기 위해
// 소멸자가 AfxOleUnlockApp를 호출합니다.
// 이러한 호출로 주 대화 상자가 삭제될 수 있습니다.
if (m_pDialog != NULL)
m_pDialog->m_pAutoProxy = NULL;
AfxOleUnlockApp();
}
void CExcelMngDlgAutoProxy::OnFinalRelease()
{
// 자동화 개체에 대한 마지막 참조가 해제되면 OnFinalRelease가
// 호출됩니다. 기본 클래스는 자동으로 개체를 삭제합니다.
// 기본 클래스를 호출하기 전에 개체에 필요한 추가 정리 작업을
// 추가합니다.
CCmdTarget::OnFinalRelease();
}
BEGIN_MESSAGE_MAP(CExcelMngDlgAutoProxy, CCmdTarget)
END_MESSAGE_MAP()
BEGIN_DISPATCH_MAP(CExcelMngDlgAutoProxy, CCmdTarget)
END_DISPATCH_MAP()
// 참고: VBA에서의 형식 안전 바인딩을 지원하기 위해 IID_IExcelMng에 대한 지원을 추가했습니다.
// 이 IID는 .IDL 파일의 dispinterface에 첨부된
// GUID와 일치해야 합니다.
// {21D7822A-499E-4B60-A62F-3544F7EA7193}
static const IID IID_IExcelMng =
{ 0x21D7822A, 0x499E, 0x4B60, { 0xA6, 0x2F, 0x35, 0x44, 0xF7, 0xEA, 0x71, 0x93 } };
BEGIN_INTERFACE_MAP(CExcelMngDlgAutoProxy, CCmdTarget)
INTERFACE_PART(CExcelMngDlgAutoProxy, IID_IExcelMng, Dispatch)
END_INTERFACE_MAP()
// IMPLEMENT_OLECREATE2 매크로가 이 프로젝트의 StdAfx.h에 정의됩니다.
// {46143530-5B35-4D82-9408-915F03D607EC}
IMPLEMENT_OLECREATE2(CExcelMngDlgAutoProxy, "ExcelMng.Application", 0x46143530, 0x5b35, 0x4d82, 0x94, 0x8, 0x91, 0x5f, 0x3, 0xd6, 0x7, 0xec)
// CExcelMngDlgAutoProxy 메시지 처리기