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
#include "G3DStableHeaders.h"
12
#include "G3DDocHostUiHandler.h"
13
#include "G3DDownloadFile.h"
14
#include "G3DBrowser.h"
22
//---------------------------------------------------------------------
23
void DocHostUiHandler::setClientSite(IOleClientSite* o) {
26
//---------------------------------------------------------------------
27
HRESULT STDMETHODCALLTYPE DocHostUiHandler::TranslateUrl (
29
OLECHAR __RPC_FAR* pchURLIn,
30
OLECHAR __RPC_FAR* __RPC_FAR* ppchURLOut) {
32
OLECHAR* src = pchURLIn;
34
// determine length of URL
37
size_t len = src - pchURLIn;
38
size_t urlStartStringLen = wcslen(URL_START_STRING);
39
size_t urlStartStringLen2 = wcslen(URL_START_STRING2);
41
if ( ( ( len >= urlStartStringLen ) &&
42
!_wcsnicmp(pchURLIn, URL_START_STRING , urlStartStringLen)
44
( ( len >= urlStartStringLen2 ) &&
45
!_wcsnicmp(pchURLIn, URL_START_STRING2 , urlStartStringLen2)
50
WideString inString ( pchURLIn );
51
size_t fromPos = inString.find( L"rtyp=" );
52
size_t lenPos = inString.find( L"&fn=" );
53
inString.replace(fromPos,lenPos-fromPos, L"rtyp=zs" );
54
inString = inString.substr(inString.find( L"http://" ));
57
fromPos = inString.find( L"&fn=" ) + 4;
58
lenPos = inString.find( L"&ctyp=" );
59
WideString fileName = inString.substr(fromPos, lenPos-fromPos);
60
for ( UINT i = 0; i < fileName.length(); i++)
62
if (fileName[i] =='+')
64
fileName.replace(i,1,L"_");
68
fileName.append(L".zip");
70
mFilePath.append(fileName.c_str());
73
test.getFile(inString.c_str(), mFilePath.c_str(), mHwndProgress);
77
Browser::getSingletonPtr()->closeBrowser();
79
return cancelNavigation(ppchURLOut);
81
else if (len >= 4 && !_wcsnicmp(pchURLIn, L"skp:" , 4))
83
MessageBox(0,L"This operation is not supported!", L"Error", MB_OK );
84
return cancelNavigation(ppchURLOut);
91
//---------------------------------------------------------------------
92
HRESULT DocHostUiHandler::cancelNavigation(OLECHAR __RPC_FAR* __RPC_FAR* ppchURLOut)
95
if ((dest = (OLECHAR *)CoTaskMemAlloc(2 << 1)))
98
CopyMemory(dest, L" ", 2 << 1);
106
//---------------------------------------------------------------------
107
/* Be sure to use CoTaskMemAlloc to allocate strings for pchHostCss or pchHostNS. */
108
HRESULT DocHostUiHandler::GetHostInfo(DOCHOSTUIINFO __RPC_FAR *pInfo) {
109
pInfo->cbSize = sizeof(DOCHOSTUIINFO);
112
// DOCHOSTUIFLAG_DIALOG |
113
// DOCHOSTUIFLAG_DISABLE_HELP_MENU |
114
DOCHOSTUIFLAG_NO3DBORDER | /* No 3D Border */
115
// DOCHOSTUIFLAG_SCROLL_NO | /* Hide Scrollbar */
116
// DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE |
117
// DOCHOSTUIFLAG_OPENNEWWIN |
118
// DOCHOSTUIFLAG_DISABLE_OFFSCREEN |
119
// DOCHOSTUIFLAG_FLAT_SCROLLBAR |
120
// DOCHOSTUIFLAG_DIV_BLOCKDEFAULT |
121
// DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY |
122
// DOCHOSTUIFLAG_OVERRIDEBEHAVIORFACTORY |
123
// DOCHOSTUIFLAG_CODEPAGELINKEDFONTS |
124
// DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8 |
125
// DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8 |
126
// DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE |
127
// DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION |
128
// DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION |
129
// DOCHOSTUIFLAG_THEME |
130
// DOCHOSTUIFLAG_NOTHEME |
131
// DOCHOSTUIFLAG_NOPICS |
132
DOCHOSTUIFLAG_NO3DOUTERBORDER |
135
// What happens if user double clicks?
136
pInfo->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT;
b'\\ No newline at end of file'