home *** CD-ROM | disk | FTP | other *** search
- // 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"
-
- #ifdef AFX_CORE2_SEG
- #pragma code_seg(AFX_CORE2_SEG)
- #endif
-
- #ifdef _DEBUG
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
-
- /////////////////////////////////////////////////////////////////////////////
- // CWinApp User Interface Extensions
-
- void CWinApp::OnAppExit()
- {
- // same as double-clicking on main window close box
- ASSERT(m_pMainWnd != NULL);
- m_pMainWnd->SendMessage(WM_CLOSE);
- }
-
- #ifdef AFX_CORE3_SEG
- #pragma code_seg(AFX_CORE3_SEG)
- #endif
-
- void CWinApp::HideApplication()
- {
- ASSERT_VALID(m_pMainWnd);
-
- // hide the application's windows before closing all the documents
- m_pMainWnd->ShowWindow(SW_HIDE);
- m_pMainWnd->ShowOwnedPopups(FALSE);
-
- // put the window at the bottom of zorder, so it isn't activated
- m_pMainWnd->SetWindowPos(&CWnd::wndBottom, 0, 0, 0, 0,
- SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);
- }
-
- void CWinApp::DoWaitCursor(int nCode)
- {
- // 0 => restore, 1=> begin, -1=> end
- ASSERT(nCode == 0 || nCode == 1 || nCode == -1);
- ASSERT(afxData.hcurWait != NULL);
- AfxLockGlobals(CRIT_WAITCURSOR);
- m_nWaitCursorCount += nCode;
- if (m_nWaitCursorCount > 0)
- {
- HCURSOR hcurPrev = ::SetCursor(afxData.hcurWait);
- if (nCode > 0 && m_nWaitCursorCount == 1)
- m_hcurWaitCursorRestore = hcurPrev;
- }
- else
- {
- // turn everything off
- m_nWaitCursorCount = 0; // prevent underflow
- ::SetCursor(m_hcurWaitCursorRestore);
- }
- AfxUnlockGlobals(CRIT_WAITCURSOR);
- }
-
-
- BOOL CWinApp::SaveAllModified()
- {
- if (m_pDocManager != NULL)
- return m_pDocManager->SaveAllModified();
- return TRUE;
- }
-
- void CWinApp::AddToRecentFileList(LPCTSTR lpszPathName)
- {
- ASSERT_VALID(this);
- ASSERT(lpszPathName != NULL);
- ASSERT(AfxIsValidString(lpszPathName));
-
- if (m_pRecentFileList != NULL)
- m_pRecentFileList->Add(lpszPathName);
- }
-
- CDocument* CWinApp::OpenDocumentFile(LPCTSTR lpszFileName)
- {
- ASSERT(m_pDocManager != NULL);
- return m_pDocManager->OpenDocumentFile(lpszFileName);
- }
-
- void CWinApp::CloseAllDocuments(BOOL bEndSession)
- {
- if (m_pDocManager != NULL)
- m_pDocManager->CloseAllDocuments(bEndSession);
- }
-
- /////////////////////////////////////////////////////////////////////////////
- // MRU file list default implementation
-
- void CWinApp::OnUpdateRecentFileMenu(CCmdUI* pCmdUI)
- {
- ASSERT_VALID(this);
- if (m_pRecentFileList == NULL) // no MRU files
- pCmdUI->Enable(FALSE);
- else
- m_pRecentFileList->UpdateMenu(pCmdUI);
- }
-
- /////////////////////////////////////////////////////////////////////////////
- // DDE and ShellExecute support
-
- BOOL CWinApp::OnDDECommand(LPTSTR lpszCommand)
- {
- if (m_pDocManager != NULL)
- return m_pDocManager->OnDDECommand(lpszCommand);
- else
- return FALSE;
- }
-
- /////////////////////////////////////////////////////////////////////////////
- // MRU file list default implementation
-
- BOOL CWinApp::OnOpenRecentFile(UINT nID)
- {
- ASSERT_VALID(this);
- ASSERT(m_pRecentFileList != NULL);
-
- ASSERT(nID >= ID_FILE_MRU_FILE1);
- ASSERT(nID < ID_FILE_MRU_FILE1 + (UINT)m_pRecentFileList->GetSize());
- int nIndex = nID - ID_FILE_MRU_FILE1;
- ASSERT((*m_pRecentFileList)[nIndex].GetLength() != 0);
-
- TRACE2("MRU: open file (%d) '%s'.\n", (nIndex) + 1,
- (LPCTSTR)(*m_pRecentFileList)[nIndex]);
-
- if (OpenDocumentFile((*m_pRecentFileList)[nIndex]) == NULL)
- m_pRecentFileList->Remove(nIndex);
-
- return TRUE;
- }
-
- /////////////////////////////////////////////////////////////////////////////
-