home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / com / activedocument / doserver / oledocvw.h < prev    next >
C/C++ Source or Header  |  1997-06-05  |  3KB  |  92 lines

  1. /**************************************************************************
  2.    THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  3.    ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  4.    THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  5.    PARTICULAR PURPOSE.
  6.  
  7.    Copyright 1997 Microsoft Corporation.  All Rights Reserved.
  8. **************************************************************************/
  9.  
  10. /******************************************************************************
  11.  
  12.    File:          OleDoctVw.h
  13.    
  14.    Description:   COleDocumentView definitions.
  15.  
  16. ******************************************************************************/
  17.  
  18. #ifndef OLEDOCUMENTVIEW_H
  19. #define OLEDOCUMENTVIEW_H
  20.  
  21. #include "DOServer.h"
  22.  
  23. #define VIEW_CLASS_NAME TEXT("DocObject_View_Class")
  24.  
  25. /**************************************************************************
  26.  
  27.    COleDocumentView class definition
  28.  
  29. **************************************************************************/
  30.  
  31. class COleDocument;
  32.  
  33. class COleDocumentView : public IOleDocumentView
  34. {
  35. friend class COleDocument;
  36. friend class COleInPlaceActiveObject;
  37.  
  38. private:
  39.     BOOL                       m_fInPlaceActive;
  40.     RECT                       m_Rect;
  41.    COleDocument               *m_pOleDoc;
  42.     LPOLEINPLACESITE           m_pInPlaceSite;
  43.    HWND                       m_hwndView;
  44.    LPOLEINPLACEFRAME          m_pInPlaceFrame;
  45.    LPOLEINPLACEUIWINDOW       m_pInPlaceUIWindow;
  46.    OLEINPLACEFRAMEINFO        m_FrameInfo;
  47.    HMENU                      m_hSharedMenu;
  48.    HOLEMENU                   m_hOleMenu;
  49.    OLEMENUGROUPWIDTHS         m_mgw;
  50.    BOOL                       m_fUIActive;
  51.    
  52. public:
  53.    COleDocumentView(COleDocument*);
  54.    ~COleDocumentView();
  55.    
  56.    //IUnknown methods
  57.    STDMETHODIMP QueryInterface(REFIID, LPVOID*);
  58.    STDMETHODIMP_(DWORD) AddRef();
  59.    STDMETHODIMP_(DWORD) Release();
  60.  
  61.    //IOleDocumentView methods
  62.    STDMETHODIMP SetInPlaceSite(IOleInPlaceSite*);
  63.    STDMETHODIMP GetInPlaceSite(IOleInPlaceSite**);
  64.    STDMETHODIMP GetDocument(IUnknown**);
  65.    STDMETHODIMP SetRect(LPRECT);
  66.    STDMETHODIMP GetRect(LPRECT);
  67.    STDMETHODIMP SetRectComplex(LPRECT, LPRECT, LPRECT, LPRECT);
  68.    STDMETHODIMP Show(BOOL);
  69.    STDMETHODIMP UIActivate(BOOL);
  70.    STDMETHODIMP Open(void);
  71.    STDMETHODIMP CloseView(DWORD);
  72.    STDMETHODIMP SaveViewState(IStream*);
  73.    STDMETHODIMP ApplyViewState(IStream*);
  74.    STDMETHODIMP Clone(IOleInPlaceSite*, IOleDocumentView**);
  75.  
  76. private:
  77.    STDMETHODIMP ActivateInPlace();
  78.    STDMETHODIMP DeactivateInPlace();
  79.    STDMETHODIMP ActivateUI();
  80.    STDMETHODIMP DeactivateUI();
  81.    STDMETHODIMP CreateViewWindow();
  82.    static LRESULT CALLBACK ViewWndProc(HWND, UINT, WPARAM, LPARAM);
  83.     LRESULT OnPaint(void);
  84.     LRESULT OnCommand(UINT, UINT, HWND);
  85.     LRESULT OnCreate(void);
  86.    BOOL MergeMenus(void);
  87.    BOOL RemoveMenus(void);
  88.    BOOL UpdateMenu(HMENU);
  89. };
  90.  
  91. #endif   //OLEDOCUMENTVIEW_H
  92.