text: // ContrDoc.cpp : implementation of the CContainerDoc class
  //
  // Copyright (c) Microsoft Corporation.  All rights reserved.
  //
  // This source code is only intended as a supplement to the
  // Microsoft Classes Reference and related electronic
  // documentation provided with the library.
  // See these sources for detailed information regarding the
  // Microsoft C++ Libraries products.
  
  #include "stdafx.h"
  #include "Contain.h"
  
  #include "ContrDoc.h"
  #include "CntrItem.h"
  
  #ifdef _DEBUG
  #define new DEBUG_NEW
  #undef THIS_FILE
  static char THIS_FILE[] = __FILE__;
  #endif
  
  /////////////////////////////////////////////////////////////////////////////
  // CContainerDoc
  
  IMPLEMENT_DYNCREATE(CContainerDoc, COleDocument)
  
  BEGIN_MESSAGE_MAP(CContainerDoc, COleDocument)
  	//{{AFX_MSG_MAP(CContainerDoc)
  		// NOTE - the ClassWizard will add and remove mapping macros here.
  		//    DO NOT EDIT what you see in these blocks of generated code!
  	//}}AFX_MSG_MAP
  	// Enable default OLE container implementation
  	ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, COleDocument::OnUpdatePasteMenu)
  	ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE_LINK, COleDocument::OnUpdatePasteLinkMenu)
  	ON_UPDATE_COMMAND_UI(ID_OLE_EDIT_CONVERT, COleDocument::OnUpdateObjectVerbMenu)
  	ON_COMMAND(ID_OLE_EDIT_CONVERT, COleDocument::OnEditConvert)
  	ON_UPDATE_COMMAND_UI(ID_OLE_EDIT_LINKS, COleDocument::OnUpdateEditLinksMenu)
  	ON_COMMAND(ID_OLE_EDIT_LINKS, COleDocument::OnEditLinks)
  	ON_UPDATE_COMMAND_UI(ID_OLE_VERB_FIRST, COleDocument::OnUpdateObjectVerbMenu)
  END_MESSAGE_MAP()
  
  /////////////////////////////////////////////////////////////////////////////
  // CContainerDoc construction/destruction
  
  CContainerDoc::CContainerDoc()
  {
  	// Use OLE compound files
  	EnableCompoundFile();
  
  	// TODO: add one-time construction code here
  
  }
  
  CContainerDoc::~CContainerDoc()
  {
  }
  
  BOOL CContainerDoc::OnNewDocument()
  {
  	if (!COleDocument::OnNewDocument())
  		return FALSE;
  
  	// TODO: add reinitialization code here
  	// (SDI documents will reuse this document)
  
  	return TRUE;
  }
  
  /////////////////////////////////////////////////////////////////////////////
  // CContainerDoc serialization
  
  void CContainerDoc::Serialize(CArchive& ar)
  {
  	if (ar.IsStoring())
  	{
  		// TODO: add storing code here
  	}
  	else
  	{
  		// TODO: add loading code here
  	}
  
  	// Calling the base class COleDocument enables serialization
  	//  of the container document's COleClientItem objects.
  	COleDocument::Serialize(ar);
  }
  
  /////////////////////////////////////////////////////////////////////////////
  // CContainerDoc diagnostics
  
  #ifdef _DEBUG
  void CContainerDoc::AssertValid() const
  {
  	COleDocument::AssertValid();
  }
  
  void CContainerDoc::Dump(CDumpContext& dc) const
  {
  	COleDocument::Dump(dc);
  }
  #endif //_DEBUG
  
  /////////////////////////////////////////////////////////////////////////////
  // CContainerDoc commands
  