/
G3DDocHostUiHandler.h
106 lines (79 loc) · 3.45 KB
/
G3DDocHostUiHandler.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/*
Copyright (c) 2009 NetAllied Systems GmbH
This file is part of G3DWarehouseBrowser.
Licensed under the MIT Open Source License,
for details please see LICENSE file or the website
http://www.opensource.org/licenses/mit-license.php
*/
#ifndef __G3D_DOC_HOST_UI_HANDLER_H__
#define __G3D_DOC_HOST_UI_HANDLER_H__
#include "G3DPrerequisites.h"
#include <mshtml.h>
#include <mshtmhst.h>
#include <oaidl.h>
#include <string>
namespace G3D
{
static const wchar_t* URL_START_STRING = L"skp:getSkp@";
static const wchar_t* FILE_PATH = L"C:\\Temp\\test.zip";
class DocHostUiHandler : public IDocHostUIHandler {
private:
IOleClientSite* mClientSite;
HWND mHwndProgress;
WideString& mFilePath;
public:
DocHostUiHandler(HWND hwndProgress, WideString& filePath)
: mHwndProgress(hwndProgress)
, mFilePath(filePath)
, mClientSite(0) {};
virtual ~DocHostUiHandler() { mClientSite->Release(); }
void setClientSite(IOleClientSite*);
HRESULT cancelNavigation(OLECHAR __RPC_FAR* __RPC_FAR* ppchURLOut);
public: // IDocHostUIHandler interface
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, LPVOID FAR* ppvObj) {
if (mClientSite) {
return mClientSite->QueryInterface(riid, ppvObj);
}
return E_NOINTERFACE;
}
ULONG STDMETHODCALLTYPE AddRef() { return 1; }
ULONG STDMETHODCALLTYPE Release() { return 1; }
HRESULT STDMETHODCALLTYPE ShowContextMenu(
DWORD dwID,
POINT __RPC_FAR *ppt,
IUnknown __RPC_FAR *pcmdtReserved,
IDispatch __RPC_FAR *pdispReserved){ return S_OK; }
HRESULT STDMETHODCALLTYPE ShowUI(
DWORD dwID,
IOleInPlaceActiveObject __RPC_FAR *pActiveObject,
IOleCommandTarget __RPC_FAR *pCommandTarget,
IOleInPlaceFrame __RPC_FAR *pFrame,
IOleInPlaceUIWindow __RPC_FAR *pDoc) { return S_OK; }
HRESULT STDMETHODCALLTYPE GetHostInfo(DOCHOSTUIINFO __RPC_FAR *pInfo);
HRESULT STDMETHODCALLTYPE HideUI() { return S_OK; }
HRESULT STDMETHODCALLTYPE UpdateUI() { return S_OK; }
HRESULT STDMETHODCALLTYPE EnableModeless(BOOL fEnable) { return S_FALSE; }
HRESULT STDMETHODCALLTYPE OnDocWindowActivate(BOOL fActivate) { return S_OK; }
HRESULT STDMETHODCALLTYPE OnFrameWindowActivate(BOOL fActivate) { return S_OK; }
HRESULT STDMETHODCALLTYPE ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow __RPC_FAR *pUIWindow, BOOL fRameWindow) { return S_OK; }
HRESULT STDMETHODCALLTYPE TranslateAccelerator(LPMSG lpMsg, const GUID __RPC_FAR *pguidCmdGroup, DWORD nCmdID)
{
pguidCmdGroup = 0;
return S_FALSE;
}
HRESULT STDMETHODCALLTYPE GetOptionKeyPath(LPOLESTR __RPC_FAR *pchKey, DWORD dw) { return S_FALSE; }
HRESULT STDMETHODCALLTYPE GetDropTarget(IDropTarget __RPC_FAR *pDropTarget, IDropTarget __RPC_FAR *__RPC_FAR *ppDropTarget)
{ return S_FALSE; }
HRESULT STDMETHODCALLTYPE GetExternal(IDispatch __RPC_FAR *__RPC_FAR *ppDispatch){
*ppDispatch = 0;
return S_FALSE;
}
HRESULT STDMETHODCALLTYPE TranslateUrl(DWORD dwTranslate, OLECHAR __RPC_FAR *pchURLIn, OLECHAR __RPC_FAR *__RPC_FAR *ppchURLOut);
HRESULT STDMETHODCALLTYPE FilterDataObject(IDataObject __RPC_FAR *pDO, IDataObject __RPC_FAR *__RPC_FAR *ppDORet) {
NOTIMPLEMENTED;
//*ppDORet = 0;
//return S_FALSE;
}
};
}
#endif // __G3D_DOC_HOST_UI_HANDLER_H__