Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//Copyright (c) 1998 - 1999 Microsoft Corporation
/*******************************************************************************
* * mainfrm.cpp * * implementation of CMainFrame class * * copyright notice: Copyright 1994, Citrix Systems Inc. * * $Author: butchd $ Butch Davis * * $Log: N:\NT\PRIVATE\UTILS\CITRIX\WINUTILS\WINCFG\VCS\MAINFRM.CPP $ * * Rev 1.5 27 Sep 1996 17:52:30 butchd * update * * Rev 1.4 24 Sep 1996 16:21:46 butchd * update * *******************************************************************************/
#include "stdafx.h"
#include "wincfg.h"
#include "mainfrm.h"
#include "appsvdoc.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__; #endif
extern CWincfgApp *pApp;
/*
* Global command line variables. */
/////////////////////////////////////////////////////////////////////////////
// CMainFrame class implementation / construction, destruction
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
/*******************************************************************************
* * CMainFrame - CMainFrame constructor * * ENTRY: * EXIT: * ******************************************************************************/
CMainFrame::CMainFrame() { } // end CMainFrame::CMainFrame
/*******************************************************************************
* * ~CMainFrame - CMainFrame destructor * * ENTRY: * EXIT: * ******************************************************************************/
CMainFrame::~CMainFrame() { pApp->Terminate(); } // end CMainFrame::~CMainFrame
/////////////////////////////////////////////////////////////////////////////
// CMainFrame debug diagnostics
#ifdef _DEBUG
void CMainFrame::AssertValid() const { CFrameWnd::AssertValid(); }
void CMainFrame::Dump(CDumpContext& dc) const { CFrameWnd::Dump(dc); } #endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMainFrame Overrides of MFC CFrameWnd class
/*******************************************************************************
* * ActivateFrame - CMainFrame member function: override * * Place and show the main frame window. * * ENTRY: * nCmdShow (input) * Default application 'show' state. * * EXIT: * ******************************************************************************/
void CMainFrame::ActivateFrame(int nCmdShow) { if ( g_Batch ) {
/*
* Always hide our main window if we're in batch mode. */ ShowWindow(SW_HIDE);
} else { if ( pApp->m_Placement.length == -1 ) {
/*
* This is the first time that this is called, set the window * placement and show state to the previously saved state. */ pApp->m_Placement.length = sizeof(pApp->m_Placement);
/*
* If we're in batch mode, make window hidden. */ if ( g_Batch ) nCmdShow = SW_HIDE;
/*
* If we have a previously saved placement state: set it. */ if ( pApp->m_Placement.rcNormalPosition.right != -1 ) {
if ( nCmdShow != SW_SHOWNORMAL ) pApp->m_Placement.showCmd = nCmdShow; else nCmdShow = pApp->m_Placement.showCmd;
SetWindowPlacement(&(pApp->m_Placement)); } }
/*
* Perform the parent classes' ActivateFrame(). */ CFrameWnd::ActivateFrame(nCmdShow); }
} // end CMainFrame::ActivateFrame
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message map
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //{{AFX_MSG_MAP(CMainFrame)
//ON_WM_CLOSE()
ON_WM_INITMENUPOPUP() ON_WM_SYSCOMMAND() ON_UPDATE_COMMAND_UI(ID_APP_EXIT, OnUpdateAppExit) ON_MESSAGE(WM_ADDWINSTATION, OnAddWinstation) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers
/*******************************************************************************
* * OnClose - CMainFrame member function: command * * Save application defaults and clean-up, then perform default * OnClose * * ENTRY: * EXIT: * (refer to the CWnd::OnClose documentation) * ******************************************************************************/ //void
//CMainFrame::OnClose()
//{
/*
* Call CWinquery::Terminate member function to save application defaults * and clean-up. */ // pApp->Terminate();
/*
* Call the default OnClose() member function. */ //CFrameWnd::OnClose();
//} // end CMainFrame::OnClose
/*******************************************************************************
* * OnInitMenuPopup - CMainFrame member function: command * * When the system control menu is about to be displayed, set the state of * the "close" item to allow or disallow closing the application. * * ENTRY: * EXIT: * (refer to the CWnd::OnInitMenuPopup documentation) * ******************************************************************************/
void CMainFrame::OnInitMenuPopup( CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu ) { /*
* Call the parent classes OnInitMenuPopup first. */ CFrameWnd::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu); /*
* If this is the system menu, enable or disable the Close menu item based * on whether our current document says that we can exit. */ if ( bSysMenu ) pPopupMenu->EnableMenuItem( SC_CLOSE, MF_BYCOMMAND | (((CAppServerDoc *)GetActiveDocument())->IsExitAllowed() ? MF_ENABLED : MF_GRAYED) ); } // end CMainFrame::OnInitMenuPopup
/*******************************************************************************
* * OnSysCommand - CMainFrame member function: command * * In case the user presses the ALT-F4 accelerator key, which can't be * disabled in the OnUpdateAppExit() and OnInitMenuPopup() command * functions. * * ENTRY: * EXIT: * (refer to the CWnd::OnSysCommand documentation) * ******************************************************************************/
void CMainFrame::OnSysCommand( UINT nId, LPARAM lParam ) {
/*
* If this is the SC_CLOSE command and exiting is not allowed, return. */ if ( (nId == SC_CLOSE) && !((CAppServerDoc *)GetActiveDocument())->IsExitAllowed() ) return;
/*
* Call the parent classes OnSysCommand() function. */ CFrameWnd::OnSysCommand( nId, lParam );
} // end CMainFrame::OnSysCommand
/*******************************************************************************
* * OnUpdateAppExit - CMainFrame member function: command * * Enables or disables the "exit" command item based on whether or not * we're allowed to close the application. * * ENTRY: * pCmdUI (input) * Points to the CCmdUI object of the "exit" command item. * * EXIT: * ******************************************************************************/
void CMainFrame::OnUpdateAppExit(CCmdUI* pCmdUI) { pCmdUI->Enable( ((CAppServerDoc *)GetActiveDocument())->IsExitAllowed() ? TRUE : FALSE );
} // end CMainFrame::OnUpdateAppExit
/*******************************************************************************
* * OnAddWinstation - CMainFrame member function: command * * Perform batch-mode add of winstation(s). * * ENTRY: * wParam (input) * WPARAM associated with the window message: not used. * wLparam (input) * LPARAM associated with the window message: not used. * * EXIT: * (LRESULT) always returns 0 to indicate operation complete. * ******************************************************************************/
LRESULT CMainFrame::OnAddWinstation( WPARAM wParam, LPARAM lParam ) { /*
* Call AddWinStation() in document to perform the add operation. If the * add failed in any way (index <= 0), post a WM_CLOSE message * to ourself so that we go away. Sucessful add will be closed when final * add operaion completes (in the document's OperationDone() function). */ if ( ((CAppServerDoc *)GetActiveDocument())->AddWinStation(0) <= 0 ) PostMessage(WM_CLOSE);
return(0);
} // end CMainFrame::OnAddWinstation
/////////////////////////////////////////////////////////////////////////////
|