My Project
WBClientSite.h
1 
2 
3 #pragma once
4 #include <oleidl.h>
5 #include <mshtmhst.h>
6 
7 namespace ParaEngine
8 {
9  class WBClientSite :public IOleClientSite, public IOleInPlaceFrame, public IOleInPlaceSite,public IDocHostUIHandler
10  {
11  public:
12  // constructors
13  WBClientSite()
14  {}
15 
16  WBClientSite(HWND hwnd)
17  {
18  m_hWindow = hwnd;
19  }
20 
21  //
22  // IUnknown methods
23  //
24  virtual HRESULT STDMETHODCALLTYPE QueryInterface(
25  /* [in] */ REFIID riid,
26  /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
27 
28  virtual ULONG STDMETHODCALLTYPE AddRef( void);
29 
30  virtual ULONG STDMETHODCALLTYPE Release( void);
31 
32  //
33  // IOleClientSite methods
34  //
35  virtual HRESULT STDMETHODCALLTYPE SaveObject( void);
36 
37  virtual HRESULT STDMETHODCALLTYPE GetMoniker(
38  /* [in] */ DWORD dwAssign,
39  /* [in] */ DWORD dwWhichMoniker,
40  /* [out] */ IMoniker **ppmk);
41 
42  virtual HRESULT STDMETHODCALLTYPE GetContainer(
43  /* [out] */ IOleContainer **ppContainer);
44 
45  virtual HRESULT STDMETHODCALLTYPE ShowObject( void);
46 
47  virtual HRESULT STDMETHODCALLTYPE OnShowWindow(
48  /* [in] */ BOOL fShow);
49 
50  virtual HRESULT STDMETHODCALLTYPE RequestNewObjectLayout( void);
51 
52  //
53  // IOleWindow methods
54  //
55  virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE GetWindow(
56  /* [out] */ HWND *phwnd);
57 
58  virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(
59  /* [in] */ BOOL fEnterMode);
60 
61  //
62  // IOleInPlaceUIWindow methods
63  //
64  virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE GetBorder(
65  /* [out] */ LPRECT lprectBorder);
66 
67  virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE RequestBorderSpace(
68  /* [unique][in] */ LPCBORDERWIDTHS pborderwidths);
69 
70  virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE SetBorderSpace(
71  /* [unique][in] */ LPCBORDERWIDTHS pborderwidths);
72 
73  virtual HRESULT STDMETHODCALLTYPE SetActiveObject(
74  /* [unique][in] */ IOleInPlaceActiveObject *pActiveObject,
75  /* [unique][string][in] */ LPCOLESTR pszObjName);
76 
77  //
78  // IOleInPlaceFrame methods
79  //
80  virtual HRESULT STDMETHODCALLTYPE InsertMenus(
81  /* [in] */ HMENU hmenuShared,
82  /* [out][in] */ LPOLEMENUGROUPWIDTHS lpMenuWidths);
83 
84  virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE SetMenu(
85  /* [in] */ HMENU hmenuShared,
86  /* [in] */ HOLEMENU holemenu,
87  /* [in] */ HWND hwndActiveObject);
88 
89  virtual HRESULT STDMETHODCALLTYPE RemoveMenus(
90  /* [in] */ HMENU hmenuShared);
91 
92  virtual /* [input_sync] */ HRESULT STDMETHODCALLTYPE SetStatusText(
93  /* [unique][in] */ LPCOLESTR pszStatusText);
94 
95  virtual HRESULT STDMETHODCALLTYPE EnableModeless(
96  /* [in] */ BOOL fEnable);
97 
98  virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
99  /* [in] */ LPMSG lpmsg,
100  /* [in] */ WORD wID);
101 
102  //
103  // IOleInPlaceSite methods
104  //
105  virtual HRESULT STDMETHODCALLTYPE CanInPlaceActivate( void);
106 
107  virtual HRESULT STDMETHODCALLTYPE OnInPlaceActivate( void);
108 
109  virtual HRESULT STDMETHODCALLTYPE OnUIActivate( void);
110 
111  virtual HRESULT STDMETHODCALLTYPE GetWindowContext(
112  /* [out] */ IOleInPlaceFrame **ppFrame,
113  /* [out] */ IOleInPlaceUIWindow **ppDoc,
114  /* [out] */ LPRECT lprcPosRect,
115  /* [out] */ LPRECT lprcClipRect,
116  /* [out][in] */ LPOLEINPLACEFRAMEINFO lpFrameInfo);
117 
118  virtual HRESULT STDMETHODCALLTYPE Scroll(
119  /* [in] */ SIZE scrollExtant);
120 
121  virtual HRESULT STDMETHODCALLTYPE OnUIDeactivate(
122  /* [in] */ BOOL fUndoable);
123 
124  virtual HRESULT STDMETHODCALLTYPE OnInPlaceDeactivate( void);
125 
126  virtual HRESULT STDMETHODCALLTYPE DiscardUndoState( void);
127 
128  virtual HRESULT STDMETHODCALLTYPE DeactivateAndUndo( void);
129 
130  virtual HRESULT STDMETHODCALLTYPE OnPosRectChange( /* [in] */ LPCRECT lprcPosRect);
131 
132 
133 
134 
136  //IDocHostUIHandler interface
138  virtual HRESULT STDMETHODCALLTYPE ShowContextMenu(
139  /* [in] */ DWORD dwID,
140  /* [in] */ POINT *ppt,
141  /* [in] */ IUnknown *pcmdtReserved,
142  /* [in] */ IDispatch *pdispReserved);
143  virtual HRESULT STDMETHODCALLTYPE GetHostInfo(
144  /* [out][in] */ DOCHOSTUIINFO *pInfo);
145  virtual HRESULT STDMETHODCALLTYPE ShowUI(
146  /* [in] */ DWORD dwID,
147  /* [in] */ IOleInPlaceActiveObject *pActiveObject,
148  /* [in] */ IOleCommandTarget *pCommandTarget,
149  /* [in] */ IOleInPlaceFrame *pFrame,
150  /* [in] */ IOleInPlaceUIWindow *pDoc);
151  virtual HRESULT STDMETHODCALLTYPE HideUI();
152  virtual HRESULT STDMETHODCALLTYPE UpdateUI();
153 
154  /*
155  virtual HRESULT STDMETHODCALLTYPE EnableModeless(
156  BOOL fEnable);
157  */
158 
159 
160  virtual HRESULT STDMETHODCALLTYPE OnDocWindowActivate(
161  /* [in] */ BOOL fActivate);
162  virtual HRESULT STDMETHODCALLTYPE OnFrameWindowActivate(
163  /* [in] */ BOOL fActivate);
164  virtual HRESULT STDMETHODCALLTYPE ResizeBorder(
165  /* [in] */ LPCRECT prcBorder,
166  /* [in] */ IOleInPlaceUIWindow *pUIWindow,
167  /* [in] */ BOOL fRameWindow);
168  virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
169  /* [in] */ LPMSG lpMsg,
170  /* [in] */ const GUID *pguidCmdGroup,
171  /* [in] */ DWORD nCmdID);
172  virtual HRESULT STDMETHODCALLTYPE GetOptionKeyPath(
173  /* [out] */ LPOLESTR *pchKey,
174  /* [in] */ DWORD dw);
175  virtual HRESULT STDMETHODCALLTYPE GetDropTarget(
176  /* [in] */ IDropTarget *pDropTarget,
177  /* [out] */ IDropTarget **ppDropTarget);
178  virtual HRESULT STDMETHODCALLTYPE GetExternal(
179  /* [out] */ IDispatch **ppDispatch);
180  virtual HRESULT STDMETHODCALLTYPE TranslateUrl(
181  /* [in] */ DWORD dwTranslate,
182  /* [in] */ OLECHAR *pchURLIn,
183  /* [out] */ OLECHAR **ppchURLOut);
184  virtual HRESULT STDMETHODCALLTYPE FilterDataObject(
185  /* [in] */ IDataObject *pDO,
186  /* [out] */ IDataObject **ppDORet);
187 
188 
189  /* //////////////////////////////////////////////////
190  // We don't want those functions to access global
191  // variables, because then we couldn't use more
192  // than one browser object. (ie, we couldn't have
193  // multiple windows, each with its own embedded
194  // browser object to display a different web page).
195  //
196  // So here is where I added my extra HWND that the
197  // CWBIOleInPlaceFrame function Frame_GetWindow() needs
198  // to access.
200  HWND m_hWindow;
201  };
202 }
203 
different physics engine has different winding order.
Definition: EventBinding.h:32
Definition: PEtypes.h:116
Definition: WBClientSite.h:9