APP.H

//********************************************************************** 
// File name: app.h
//
// Definition of CSimpleApp
//
// Copyright 1992 - 1998 Microsoft Corporation. All rights reserved.
//**********************************************************************

#if !defined( _APP_H_)
#define _APP_H_

#include <ole2.h>
#include <stablize.h>
#include "ioipf.h"

class CSimpleDoc;

class CSimpleApp : public IUnknown, public CSafeRefCount
{
public:

HWND m_hAppWnd; // main window handle
HINSTANCE m_hInst; // application instance
HMENU m_hMainMenu;
HMENU m_hFileMenu;
HMENU m_hEditMenu;
HMENU m_hHelpMenu;
HMENU m_hCascadeMenu;


COleInPlaceFrame m_OleInPlaceFrame; // IOleInPlaceFrame Implementation

CSimpleDoc FAR * m_lpDoc; // pointer to document object
BOOL m_fInitialized; // OLE initialization flag
BOOL m_fCSHMode;
BOOL m_fMenuMode;
HWND m_hwndUIActiveObj; // HWND of UIActive Object
HPALETTE m_hStdPal; // Color palette used by container
BOOL m_fAppActive; // TRUE if app is active

CSimpleApp(); // Constructor
~CSimpleApp(); // Destructor
RECT nullRect;


// IUnknown Interfaces
STDMETHODIMP QueryInterface(REFIID riid, LPVOID FAR* ppvObj);
STDMETHODIMP_(ULONG) AddRef();
STDMETHODIMP_(ULONG) Release();

// Initialization methods

BOOL fInitApplication (HANDLE hInstance);
BOOL fInitInstance (HANDLE hInstance, int nCmdShow);

// Message handling methods

long lCommandHandler (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
long lSizeHandler (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
long lCreateDoc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
BOOL HandleAccelerators (LPMSG lpMsg);
void PaintApp(HDC hDC);
void DestroyDocs();

// In-Place support functions
void AddFrameLevelUI();
void AddFrameLevelTools();
void ContextSensitiveHelp (BOOL fEnterMode);
LRESULT QueryNewPalette(void);
};

LRESULT wSelectPalette(HWND hWnd, HPALETTE hPal, BOOL fBackground);

#endif