86 lines
2.4 KiB
C++
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 메시지 처리기
|