OLEDOC.H

/************************************************************************** 
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.

Copyright 1997 Microsoft Corporation. All Rights Reserved.
**************************************************************************/

/******************************************************************************

File: OleDoc.h

Description: COleDocumentView definitions.

******************************************************************************/

#ifndef OLEDOC_H
#define OLEDOC_H

#include "DOServer.h"

/**************************************************************************

COleDocument class definition

**************************************************************************/

class COleDocumentView;
class COleObject;
class CDataObject;
class COleInPlaceObject;
class COleInPlaceActiveObject;
class CPersistStorage;
class CPersistFile;

class COleDocument : public IOleDocument
{
friend class COleDocumentView;
friend class COleObject;
friend class CDataObject;
friend class COleInPlaceObject;
friend class COleInPlaceActiveObject;
friend class CPersistStorage;

private:
COLORREF m_Color;
DWORD m_dwRegister;
LPOLECLIENTSITE m_pOleClientSite;
DWORD m_ObjRefCount;
BOOL m_fDirty;
BOOL m_fNoScribbleMode;
LPOLEADVISEHOLDER m_pOleAdviseHolder;
BOOL m_fCreated;

COleDocumentView *m_pOleDocView;
COleObject *m_pOleObject;
CDataObject *m_pDataObject;
COleInPlaceObject *m_pOleInPlaceObject;
COleInPlaceActiveObject *m_pOleInPlaceActiveObject;
CPersistStorage *m_pPersistStorage;
CPersistFile *m_pPersistFile;

public:
COleDocument();
~COleDocument();

//IUnknown methods
STDMETHODIMP QueryInterface(REFIID, LPVOID*);
STDMETHODIMP_(DWORD) AddRef();
STDMETHODIMP_(DWORD) Release();

//IOleDocument methods
STDMETHODIMP CreateView(IOleInPlaceSite*, IStream*, DWORD, IOleDocumentView**);
STDMETHODIMP GetDocMiscStatus(DWORD*);
STDMETHODIMP EnumViews(IEnumOleDocumentViews**, IOleDocumentView**);

//public utility methods
BOOL RegisterServer(void);
BOOL CreateFile(HWND);
BOOL CreateFile(LPTSTR);

private:
STDMETHODIMP GetWindow(HWND*);
STDMETHODIMP DeactivateUI();
STDMETHODIMP DeactivateInPlace();

friend BOOL CALLBACK ColorHookProc(HWND, UINT, WPARAM, LPARAM);
};

#endif //OLEDOC_H