// [!output DOC_IMPL] : [!output DOC_CLASS] Ŭ·¡½ºÀÇ ±¸Çö // #include "stdafx.h" #include "[!output APP_HEADER]" [!if OLEDB_RECORD_VIEW || ODBC_RECORD_VIEW] #include "[!output ROWSET_HEADER]" [!endif] #include "[!output DOC_HEADER]" [!if CONTAINER || CONTAINER_SERVER] #include "[!output CONTAINER_ITEM_HEADER]" [!endif] [!if MINI_SERVER || FULL_SERVER || CONTAINER_SERVER] #include "[!output SERVER_ITEM_HEADER]" [!endif] #ifdef _DEBUG #define new DEBUG_NEW #endif // [!output DOC_CLASS] IMPLEMENT_DYNCREATE([!output DOC_CLASS], [!output DOC_BASE_CLASS]) BEGIN_MESSAGE_MAP([!output DOC_CLASS], [!output DOC_BASE_CLASS]) [!if CONTAINER || CONTAINER_SERVER] // ±âº» OLE ÄÁÅ×ÀÌ³Ê ±¸ÇöÀ» Ȱ¼ºÈ­ÇÕ´Ï´Ù. [!if !RICH_EDIT_VIEW] ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, &[!output DOC_BASE_CLASS]::OnUpdatePasteMenu) ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE_LINK, &[!output DOC_BASE_CLASS]::OnUpdatePasteLinkMenu) ON_UPDATE_COMMAND_UI(ID_OLE_EDIT_CONVERT, &[!output DOC_BASE_CLASS]::OnUpdateObjectVerbMenu) ON_COMMAND(ID_OLE_EDIT_CONVERT, &[!output DOC_BASE_CLASS]::OnEditConvert) [!endif] ON_UPDATE_COMMAND_UI(ID_OLE_EDIT_LINKS, &[!output DOC_BASE_CLASS]::OnUpdateEditLinksMenu) ON_COMMAND(ID_OLE_EDIT_LINKS, &[!output DOC_BASE_CLASS]::OnEditLinks) ON_UPDATE_COMMAND_UI_RANGE(ID_OLE_VERB_FIRST, ID_OLE_VERB_LAST, &[!output DOC_BASE_CLASS]::OnUpdateObjectVerbMenu) [!endif] [!if MAPI] ON_COMMAND(ID_FILE_SEND_MAIL, &[!output DOC_CLASS]::OnFileSendMail) ON_UPDATE_COMMAND_UI(ID_FILE_SEND_MAIL, &[!output DOC_CLASS]::OnUpdateFileSendMail) [!endif] END_MESSAGE_MAP() [!if AUTOMATION] BEGIN_DISPATCH_MAP([!output DOC_CLASS], [!output DOC_BASE_CLASS]) END_DISPATCH_MAP() // Âü°í: IID_I[!output SAFE_PROJECT_IDENTIFIER_NAME]¿¡ ´ëÇÑ Áö¿øÀ» Ãß°¡ÇÏ¿© // VBA¿¡¼­ Çü½Ä ¾ÈÀü ¹ÙÀεùÀ» Áö¿øÇÕ´Ï´Ù. // ÀÌ IID´Â .IDL ÆÄÀÏÀÇ dispinterface¿¡ ÷ºÎµÈ GUID¿Í ÀÏÄ¡ÇØ¾ß ÇÕ´Ï´Ù. // {[!output DISPIID_REGISTRY_FORMAT]} static const IID IID_I[!output SAFE_PROJECT_IDENTIFIER_NAME] = [!output DISPIID_STATIC_CONST_GUID_FORMAT]; BEGIN_INTERFACE_MAP([!output DOC_CLASS], [!output DOC_BASE_CLASS]) INTERFACE_PART([!output DOC_CLASS], IID_I[!output SAFE_PROJECT_IDENTIFIER_NAME], Dispatch) END_INTERFACE_MAP() [!endif] // [!output DOC_CLASS] »ý¼º/¼Ò¸ê [!output DOC_CLASS]::[!output DOC_CLASS]() { [!if SUPPORT_COMPOUND_FILES && !COMPOUND_DOC_NONE] // OLE º¹ÇÕ ÆÄÀÏÀ» »ç¿ëÇÕ´Ï´Ù. EnableCompoundFile(); [!endif] // TODO: ¿©±â¿¡ ÀÏȸ¼º »ý¼º Äڵ带 Ãß°¡ÇÕ´Ï´Ù. [!if AUTOMATION] EnableAutomation(); AfxOleLockApp(); [!endif] } [!output DOC_CLASS]::~[!output DOC_CLASS]() { [!if AUTOMATION] AfxOleUnlockApp(); [!endif] } BOOL [!output DOC_CLASS]::OnNewDocument() { if (![!output DOC_BASE_CLASS]::OnNewDocument()) return FALSE; [!if APP_TYPE_SDI] [!if EDIT_VIEW] reinterpret_cast(m_viewList.GetHead())->SetWindowText(NULL); [!endif] [!endif] // TODO: ¿©±â¿¡ ÀçÃʱâÈ­ Äڵ带 Ãß°¡ÇÕ´Ï´Ù. // SDI ¹®¼­´Â ÀÌ ¹®¼­¸¦ ´Ù½Ã »ç¿ëÇÕ´Ï´Ù. return TRUE; } [!if RICH_EDIT_VIEW] [!output CONTAINER_ITEM_BASE_CLASS]* [!output DOC_CLASS]::CreateClientItem(REOBJECT* preo) const { return new [!output CONTAINER_ITEM_CLASS](preo, const_cast<[!output DOC_CLASS]*>(this)); } [!endif] [!if MINI_SERVER || FULL_SERVER || CONTAINER_SERVER] // [!output DOC_CLASS] ¼­¹ö ±¸Çö COleServerItem* [!output DOC_CLASS]::OnGetEmbeddedItem() { // ¹®¼­¿Í °ü·ÃµÈ COleServerItemÀ» °¡Á®¿À±â À§ÇØ ÇÁ·¹ÀÓ¿öÅ©¿¡¼­ OnGetEmbeddedItemÀ» // È£ÃâÇÕ´Ï´Ù. À̰ÍÀº ÇÊ¿äÇÒ ¶§¸¸ È£ÃâµË´Ï´Ù. [!output SERVER_ITEM_CLASS]* pItem = new [!output SERVER_ITEM_CLASS](this); ASSERT_VALID(pItem); return pItem; } [!endif] [!if ACTIVE_DOC_SERVER] // [!output DOC_CLASS] ¾×Ƽºê ¹®¼­ ¼­¹ö ±¸Çö CDocObjectServer *[!output DOC_CLASS]::GetDocObjectServer(LPOLEDOCUMENTSITE pDocSite) { return new CDocObjectServer(this, pDocSite); } [!endif] [!if !DB_VIEW_NO_FILE && !HTML_EDITVIEW] // [!output DOC_CLASS] serialization void [!output DOC_CLASS]::Serialize(CArchive& ar) { [!if EDIT_VIEW] // CEditView¿¡´Â ¸ðµç serializationÀ» ó¸®ÇÏ´Â edit ÄÁÆ®·ÑÀÌ µé¾î ÀÖ½À´Ï´Ù. reinterpret_cast(m_viewList.GetHead())->SerializeRaw(ar); [!else] if (ar.IsStoring()) { // TODO: ¿©±â¿¡ ÀúÀå Äڵ带 Ãß°¡ÇÕ´Ï´Ù. } else { // TODO: ¿©±â¿¡ ·Îµù Äڵ带 Ãß°¡ÇÕ´Ï´Ù. } [!if CONTAINER || CONTAINER_SERVER] // ±âº» Ŭ·¡½ºÀÎ [!output DOC_BASE_CLASS]¸¦ È£ÃâÇϸé ÄÁÅ×ÀÌ³Ê ¹®¼­ÀÇ COleClientItem °³Ã¼¿¡ ´ëÇÑ serializationÀÌ // Ȱ¼ºÈ­µË´Ï´Ù. [!if RICH_EDIT_VIEW] // TODO: ÅØ½ºÆ®·Î serializeÇÒ °æ¿ì CRichEditDoc::m_bRTF = FALSE·Î ¼³Á¤ÇÕ´Ï´Ù. [!endif] [!output DOC_BASE_CLASS]::Serialize(ar); [!if ACTIVE_DOC_CONTAINER] // ù° Ç׸ñÀ» Ȱ¼ºÈ­ÇÕ´Ï´Ù. if (!ar.IsStoring()) { POSITION posItem = GetStartPosition(); if (posItem != NULL) { CDocItem* pItem = GetNextItem(posItem); POSITION posView = GetFirstViewPosition(); COleDocObjectItem *pDocObjectItem = DYNAMIC_DOWNCAST(COleDocObjectItem, pItem); if (posView != NULL && pDocObjectItem != NULL) { CView* pView = GetNextView(posView); pDocObjectItem->DoVerb(OLEIVERB_SHOW, pView); } } } [!endif] [!endif] [!endif] } [!endif] // [!output DOC_CLASS] Áø´Ü #ifdef _DEBUG void [!output DOC_CLASS]::AssertValid() const { [!output DOC_BASE_CLASS]::AssertValid(); } void [!output DOC_CLASS]::Dump(CDumpContext& dc) const { [!output DOC_BASE_CLASS]::Dump(dc); } #endif //_DEBUG // [!output DOC_CLASS] ¸í·É