home *** CD-ROM | disk | FTP | other *** search
- // DaoViewDoc.cpp : implementation of the CDaoViewDoc class
- //
- // This is a part of the Microsoft Foundation Classes C++ library.
- // Copyright (C) 1992-1998 Microsoft Corporation
- // All rights reserved.
- //
- // This source code is only intended as a supplement to the
- // Microsoft Foundation Classes Reference and related
- // electronic documentation provided with the library.
- // See these sources for detailed information regarding the
- // Microsoft Foundation Classes product.
-
- #include "stdafx.h"
- #include "DaoView.h"
- #include "OptionsD.h"
-
- #ifdef _DEBUG
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
-
- /////////////////////////////////////////////////////////////////////////////
- // CDaoViewDoc
-
- IMPLEMENT_DYNCREATE(CDaoViewDoc, CDocument)
-
- BEGIN_MESSAGE_MAP(CDaoViewDoc, CDocument)
- //{{AFX_MSG_MAP(CDaoViewDoc)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CDaoViewDoc construction/destruction
-
- CDaoViewDoc::CDaoViewDoc()
- {
- m_pDB = NULL;
- m_pTreeView = NULL;
- m_pListView = NULL;
- }
-
- CDaoViewDoc::~CDaoViewDoc()
- {
- if(m_pDB)
- {
- if(m_pDB->IsOpen())
- m_pDB->Close();
- delete m_pDB;
- }
- }
-
- BOOL CDaoViewDoc::OnNewDocument()
- {
- if (!CDocument::OnNewDocument())
- return FALSE;
-
- // TODO: add reinitialization code here
- // (SDI documents will reuse this document)
-
- return TRUE;
- }
-
- /////////////////////////////////////////////////////////////////////////////
- // CDaoViewDoc serialization
-
- void CDaoViewDoc::Serialize(CArchive& ar)
- {
- if (ar.IsStoring())
- {
- // TODO: add storing code here
- }
- else
- {
- // TODO: add loading code here
- }
- }
-
- /////////////////////////////////////////////////////////////////////////////
- // CDaoViewDoc diagnostics
-
- #ifdef _DEBUG
- void CDaoViewDoc::AssertValid() const
- {
- CDocument::AssertValid();
- }
-
- void CDaoViewDoc::Dump(CDumpContext& dc) const
- {
- CDocument::Dump(dc);
- }
- #endif //_DEBUG
-
- /////////////////////////////////////////////////////////////////////////////
- // CDaoViewDoc commands
-
- BOOL CDaoViewDoc::OnOpenDocument(LPCTSTR lpszPathName)
- {
- if (!CDocument::OnOpenDocument(lpszPathName))
- return FALSE;
-
- CDaoDatabase* tmpDB = new CDaoDatabase;
-
- // Attempt to open the new database before replacing our ptr
- try
- {
- tmpDB->Open(lpszPathName);
- }
- catch (CDaoException* e)
- {
- DisplayDaoException(e);
- delete tmpDB;
- e->Delete();
- return FALSE;
- }
-
-
- if (m_pDB)
- {
- if (m_pDB->IsOpen())
- m_pDB->Close();
- delete m_pDB;
- }
-
- m_pDB = tmpDB;
- m_pTreeView->m_pDB = m_pDB;
- m_pListView->m_pDB = m_pDB;
-
- RefreshViews();
-
- return TRUE;
- }
-
-
- void CDaoViewDoc::RefreshViews()
- {
- if (m_pDB)
- {
- if (m_pListView)
- m_pListView->EraseList();
-
- if (m_pTreeView)
- m_pTreeView->PopulateTree();
- }
- }
-