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.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1999 - 1999
//
// File: amc.h
//
//--------------------------------------------------------------------------
// AMC.h : main header file for the AMC application
//
#ifndef __AMC_H__
#define __AMC_H__
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
class CAMCDoc;
/////////////////////////////////////////////////////////////////////////////
// CAMCApp:
// See AMC.cpp for the implementation of this class
//
class CMainFrame;
class CAMCApp : public CWinApp, public CAMCViewObserver, public CAMCViewToolbarsObserver, public CConsoleEventDispatcher { friend class CMMCApplication; DECLARE_DYNAMIC (CAMCApp)
typedef std::list<HWND> WindowList; typedef std::list<HWND>::iterator WindowListIterator;
// object model
public: SC ScGet_Application(_Application **pp_Application); SC ScRegister_Application(_Application *p_Application);
private: _ApplicationPtr m_sp_Application;
public: SC ScCheckMMCPrerequisites(); virtual BOOL PumpMessage(); // low level message pump
virtual BOOL PreTranslateMessage(MSG* pMsg); virtual void RegisterShellFileTypes(BOOL bCompat); CAMCApp();
// Attributes
public: CMainFrame * GetMainFrame();
// Operations
public: void SetDefaultDirectory(); void SaveUserDirectory(LPCTSTR pszUserDir); CString GetUserDirectory(); CString GetDefaultDirectory();
HMENU GetMenu () const { return (m_Menu); }
ProgramMode GetMode() const { ASSERT (IsValidProgramMode (m_eMode)); return (m_eMode); }
bool IsInitializing() const { return (m_fInitializing); }
bool DidCloseComeFromMainPump() const { return (m_fCloseCameFromMainPump); }
void ResetCloseCameFromMainPump() { m_fCloseCameFromMainPump = false; }
void DelayCloseUntilIdle (bool fDelay = true) { m_fDelayCloseUntilIdle = fDelay; }
bool IsWin9xPlatform() const { return m_fIsWin9xPlatform; }
bool IsMMCRunningAsOLEServer() const { return m_fRunningAsOLEServer;}
void UpdateFrameWindow(bool bUpdate);
void InitializeMode (ProgramMode eMode); void SetMode (ProgramMode eMode);
void HookPreTranslateMessage (CWnd* pwndHook); void UnhookPreTranslateMessage (CWnd* pwndUnhook);
CIdleTaskQueue * GetIdleTaskQueue ();
SC ScShowHtmlHelp(LPCTSTR pszFile, DWORD_PTR dwData);
// helpers for script event firing
SC ScOnNewDocument(CAMCDoc *pDocument, BOOL bLoadedFromConsole); SC ScOnCloseDocument(CAMCDoc *pDocument); SC ScOnQuitApp(); SC ScOnSnapinAdded (CAMCDoc *pDocument, PSNAPIN pSnapIn); SC ScOnSnapinRemoved(CAMCDoc *pDocument, PSNAPIN pSnapIn); SC ScOnNewView(CAMCView *pView);
bool IsUnderUserControl() { return m_fUnderUserControl;}
protected: void SetUnderUserControl(bool bUserControl = true);
// Interfaces
private: BOOL InitializeOLE(); void DeinitializeOLE(); SC ScUninitializeHelpControl();
HRESULT DumpConsoleFile (CString strConsoleFile, CString strDumpFile);
private: SC ScProcessAuthorModeRestrictions();
private: BOOL m_bOleInitialized; BOOL m_bDefaultDirSet; bool m_fAuthorModeForced; bool m_fInitializing; bool m_fDelayCloseUntilIdle; bool m_fCloseCameFromMainPump; int m_nMessagePumpNestingLevel; bool m_fUnderUserControl; bool m_fRunningAsOLEServer;
CIdleTaskQueue m_IdleTaskQueue; ProgramMode m_eMode; CMenu m_Menu; CAccel m_Accel; WindowList m_TranslateMessageHookWindows; bool m_fIsWin9xPlatform;
static const TCHAR m_szSettingsSection[]; static const TCHAR m_szUserDirectoryEntry[];
bool m_bHelpInitialized; DWORD m_dwHelpCookie;
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAMCApp)
public: virtual BOOL InitInstance(); virtual int ExitInstance(); virtual BOOL OnIdle(LONG lCount); //}}AFX_VIRTUAL
// Implementation
#ifdef _DEBUG
virtual void AssertValid() const; #endif
//{{AFX_MSG(CAMCApp)
afx_msg void OnAppAbout(); afx_msg void OnFileNewInUserMode(); // do nothing in user mode when CTRL+N is pressed. This handler prevents the hotkey from going to any WebBrowser controls
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
// Observed view events - each fires a com event
protected: virtual SC ScOnCloseView( CAMCView *pView ); virtual SC ScOnViewChange( CAMCView *pView, HNODE hNode ); virtual SC ScOnResultSelectionChange( CAMCView *pView ); virtual SC ScOnContextMenuExecuted( PMENUITEM pMenuItem ); virtual SC ScOnListViewItemUpdated(CAMCView *pView , int nIndex);
// toolbar events
virtual SC ScOnToolbarButtonClicked( );
// Object model related code - these are in a private block
// because CMMCApplication is a friend class
private: SC ScHelp(); SC ScRunTestScript();
};
inline CAMCApp* AMCGetApp() { extern CAMCApp theApp; return (&theApp); }
inline CIdleTaskQueue * AMCGetIdleTaskQueue() { return (AMCGetApp()->GetIdleTaskQueue()); }
extern const CRect g_rectEmpty;
#ifdef DBG
extern CTraceTag tagForceMirror; #endif
/////////////////////////////////////////////////////////////////////////////
#endif //__AMC_H__
|