2
Copyright (c) 2009 NetAllied Systems GmbH
4
This file is part of G3DWarehouseBrowser.
6
Licensed under the MIT Open Source License,
7
for details please see LICENSE file or the website
8
http://www.opensource.org/licenses/mit-license.php
11
#ifndef __G3D_OLE_IN_PLACE_SITE_H__
12
#define __G3D_OLE_IN_PLACE_SITE_H__
14
#include "G3DPrerequisites.h"
15
#include "G3DOleClientSite.h"
16
#include "G3DOleInPlaceFrame.h"
22
class OleInPlaceSite : public IOleInPlaceSite {
24
OleClientSite* mClientSite;
25
OleInPlaceFrame* mInPlaceFrame;
26
IOleObject* mBrowserObject;
30
OleInPlaceSite(IOleObject* browserObject, OleInPlaceFrame* inPlaceFrame, HWND h);
31
virtual ~OleInPlaceSite(){
32
mClientSite -> Release();
33
// mInPlaceFrame -> Release();
34
mBrowserObject -> Release();
37
void setBrowserObject(IOleObject* o);
39
void setClientSite(OleClientSite* o) {mClientSite=o;}
41
public: // IOleInPlaceSite interface
42
HRESULT STDMETHODCALLTYPE QueryInterface( REFIID riid, LPVOID FAR* ppvObj);
44
ULONG STDMETHODCALLTYPE AddRef() {
48
ULONG STDMETHODCALLTYPE Release() {
52
HRESULT STDMETHODCALLTYPE GetWindow( HWND FAR* lphwnd) {
57
HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode) {
61
HRESULT STDMETHODCALLTYPE CanInPlaceActivate() {
65
HRESULT STDMETHODCALLTYPE OnInPlaceActivate() {
69
HRESULT STDMETHODCALLTYPE OnUIActivate() { return(S_OK); }
71
HRESULT STDMETHODCALLTYPE GetWindowContext( LPOLEINPLACEFRAME FAR* lplpFrame, LPOLEINPLACEUIWINDOW FAR* lplpDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo) {
72
*lplpFrame = mInPlaceFrame;
75
lpFrameInfo->fMDIApp = FALSE;
76
lpFrameInfo->hwndFrame = mHwnd;
77
lpFrameInfo->haccel = 0;
78
lpFrameInfo->cAccelEntries = 0;
83
HRESULT STDMETHODCALLTYPE Scroll(SIZE scrollExtent) { NOTIMPLEMENTED; }
85
HRESULT STDMETHODCALLTYPE OnUIDeactivate( BOOL fUndoable) { return S_OK; }
87
HRESULT STDMETHODCALLTYPE OnInPlaceDeactivate() { return S_OK; }
89
HRESULT STDMETHODCALLTYPE DiscardUndoState() { NOTIMPLEMENTED; }
91
HRESULT STDMETHODCALLTYPE DeactivateAndUndo() { NOTIMPLEMENTED; }
93
HRESULT STDMETHODCALLTYPE OnPosRectChange( LPCRECT lprcPosRect) {
94
IOleInPlaceObject *inplace;
95
if (!mBrowserObject->QueryInterface(IID_IOleInPlaceObject, (void**)&inplace)) {
96
inplace->SetObjectRects(lprcPosRect, lprcPosRect);
102
#endif // __G3D_OLE_IN_PLACE_SITE_H__