mirror of https://github.com/lianthony/NT4.0
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.
128 lines
3.4 KiB
128 lines
3.4 KiB
//*********************************************************************
|
|
//* Microsoft Windows **
|
|
//* Copyright(c) Microsoft Corp., 1995 **
|
|
//*********************************************************************
|
|
|
|
//
|
|
// DOCOBJ.HPP - Header file for docObj classes (CMsoDocument, CMsoView)
|
|
//
|
|
|
|
// HISTORY:
|
|
//
|
|
// 10/25/95 jeremys Created.
|
|
//
|
|
|
|
//
|
|
// The CMsoDocument class implements the IMsoDocument interface.
|
|
// The CMsoView class implements the IMsoView interface.
|
|
//
|
|
|
|
#ifndef _DOCOBJ_HPP_
|
|
#define _DOCOBJ_HPP_
|
|
|
|
#include <docobj.h> // for IMsoDocument, IMsoView prototypes
|
|
|
|
// Forward declaration
|
|
class HTMLView;
|
|
|
|
// implementation of IMsoDocument
|
|
|
|
class CMsoDocument : public IMsoDocument
|
|
{
|
|
private:
|
|
HTMLView * m_pHTMLView; // HTMLView object associated with this instance
|
|
LPUNKNOWN m_pUnkOuter; // outer unknown
|
|
int m_nCount;
|
|
|
|
public:
|
|
// BUGBUG move constructor/destructor to .cpp file
|
|
CMsoDocument::CMsoDocument(HTMLView * pHTMLView,LPUNKNOWN pUnkOuter)
|
|
{
|
|
// BUGBUG asserts!
|
|
m_pHTMLView = pHTMLView;
|
|
m_pUnkOuter = pUnkOuter;
|
|
m_nCount = 0;
|
|
};
|
|
CMsoDocument::~CMsoDocument()
|
|
{
|
|
};
|
|
|
|
// IUnknown methods
|
|
STDMETHODIMP QueryInterface (REFIID riid, LPVOID FAR* ppvObj);
|
|
STDMETHODIMP_(ULONG) AddRef ();
|
|
STDMETHODIMP_(ULONG) Release ();
|
|
|
|
// IMsoDocument methods
|
|
|
|
STDMETHODIMP CreateView(LPOLEINPLACESITE pInPlaceSite,
|
|
LPSTREAM pStream, DWORD grfReserved, LPMSOVIEW * ppMsoView);
|
|
STDMETHODIMP GetDocMiscStatus(DWORD * pdwStatus);
|
|
STDMETHODIMP EnumViews(LPENUMMSOVIEW * ppEnumView,LPMSOVIEW * ppMsoView);
|
|
|
|
};
|
|
|
|
DECLARE_STANDARD_TYPES(CMsoDocument);
|
|
|
|
|
|
// implementation of IMsoDocument
|
|
|
|
class CMsoView : public IMsoView
|
|
{
|
|
private:
|
|
HTMLView * m_pHTMLView; // HTMLView object associated with this instance
|
|
LPUNKNOWN m_pUnkOuter; // outer unknown
|
|
int m_nCount;
|
|
|
|
|
|
// for shared menus
|
|
HMENU m_hMenuShared; // top level shared menu
|
|
HOLEMENU m_hOLEMenu; // ole's dude
|
|
// HMENU m_phMenus[3]; // our submenus
|
|
enum {
|
|
MENU_SHARED_EDIT = 0,
|
|
MENU_SHARED_VIEW = 1,
|
|
MENU_SHARED_HELP = 2
|
|
};
|
|
|
|
/// private functions
|
|
void InitInplaceMenus();
|
|
void InitInplaceToolbar();
|
|
void DestroyInplaceMenus();
|
|
void DestroyInplaceToolbar() {};
|
|
void TransferSharedMenu(HMENU hmenuDest, HMENU hmenuSrc, int iPos);
|
|
|
|
public:
|
|
// BUGBUG move constructor/destructor to .cpp file
|
|
CMsoView::CMsoView(HTMLView * pHTMLView,LPUNKNOWN pUnkOuter) ;
|
|
CMsoView::~CMsoView()
|
|
{
|
|
};
|
|
|
|
// IUnknown methods
|
|
STDMETHODIMP QueryInterface (REFIID riid, LPVOID FAR* ppvObj);
|
|
STDMETHODIMP_(ULONG) AddRef ();
|
|
STDMETHODIMP_(ULONG) Release ();
|
|
|
|
// IMsoView methods
|
|
STDMETHODIMP SetInPlaceSite(LPOLEINPLACESITE pInPlaceSite);
|
|
STDMETHODIMP GetInPlaceSite(LPOLEINPLACESITE * ppInPlaceSite);
|
|
STDMETHODIMP GetDocument(LPUNKNOWN * ppUnk);
|
|
STDMETHODIMP SetRect(LPRECT pViewRect);
|
|
STDMETHODIMP GetRect(LPRECT pViewRect);
|
|
STDMETHODIMP SetRectComplex(LPRECT pViewRect,LPRECT pHScrollRect,
|
|
LPRECT pVScrollRect, LPRECT pSizeBoxRect);
|
|
STDMETHODIMP Show(BOOL fShow);
|
|
STDMETHODIMP UIActivate(BOOL fUIActivate);
|
|
STDMETHODIMP Open();
|
|
STDMETHODIMP Close(DWORD dwReserved);
|
|
STDMETHODIMP SaveViewState(LPSTREAM pStream);
|
|
STDMETHODIMP ApplyViewState(LPSTREAM pStream);
|
|
STDMETHODIMP Clone(LPOLEINPLACESITE pNewSite, LPMSOVIEW * ppNewView);
|
|
|
|
};
|
|
|
|
DECLARE_STANDARD_TYPES(CMsoView);
|
|
|
|
|
|
#endif
|
|
|