Skip to content

Commit 41e109e

Browse files
committed
24.3.9 WebView2.1.0.2365.46
1 parent b0fd20f commit 41e109e

5 files changed

Lines changed: 98 additions & 25 deletions

File tree

tewv/Resource.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
#define STRING(str) STRING2(str)
55
#define STRING2(str) #str
66
#define VER_Y 24
7-
#define VER_M 1
7+
#define VER_M 3
88
#define VER_D 9
99
#define VER_Z 0

tewv/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="Microsoft.Web.WebView2" version="1.0.1722.45" targetFramework="native" />
3+
<package id="Microsoft.Web.WebView2" version="1.0.2365.46" targetFramework="native" />
44
</packages>

tewv/tewv.cpp

Lines changed: 75 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,10 @@ CteBase::CteBase()
438438
m_pDocument = NULL;
439439
m_webviewController = NULL;
440440
m_webviewWindow = NULL;
441+
#ifdef USE_DRAGDROP
442+
m_webviewEnvironment3 = NULL;
443+
m_webviewCompositionController3 = NULL;
444+
#endif
441445
}
442446

443447
CteBase::~CteBase()
@@ -451,7 +455,20 @@ CteBase::~CteBase()
451455
SafeRelease(&m_pDocument);
452456
SafeRelease(&m_webviewController);
453457
SafeRelease(&m_webviewWindow);
458+
#ifdef USE_DRAGDROP
459+
SafeRelease(&m_webviewCompositionController3);
460+
SafeRelease(&m_webviewEnvironment3);
461+
#endif
462+
}
463+
464+
#ifdef USE_DRAGDROP
465+
VOID CteBase::OffsetPointToWebView(LPPOINT ppt)
466+
{
467+
HWND hwnd;
468+
GetWindow(&hwnd);
469+
::ScreenToClient(hwnd, ppt);
454470
}
471+
#endif
455472

456473
STDMETHODIMP CteBase::QueryInterface(REFIID riid, void **ppvObject)
457474
{
@@ -473,6 +490,9 @@ STDMETHODIMP CteBase::QueryInterface(REFIID riid, void **ppvObject)
473490
QITABENT(CteBase, IServiceProvider),
474491
QITABENT(CteBase, ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler),
475492
QITABENT(CteBase, ICoreWebView2CreateCoreWebView2ControllerCompletedHandler),
493+
#ifdef USE_DRAGDROP
494+
QITABENT(CteBase, ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler),
495+
#endif
476496
QITABENT(CteBase, ICoreWebView2DocumentTitleChangedEventHandler),
477497
QITABENT(CteBase, ICoreWebView2NavigationCompletedEventHandler),
478498
{ 0 }
@@ -797,7 +817,7 @@ STDMETHODIMP CteBase::get_HWND(SHANDLE_PTR *pHWND)
797817
HWND hwnd;
798818
HRESULT hr = GetWindow(&hwnd);
799819
*pHWND = (HANDLE_PTR)hwnd;
800-
return S_OK;
820+
return hr;
801821
}
802822

803823
STDMETHODIMP CteBase::get_FullName(BSTR *FullName)
@@ -964,6 +984,11 @@ STDMETHODIMP CteBase::put_RegisterAsDropTarget(VARIANT_BOOL bRegister)
964984
pDocHostUIHandler->GetDropTarget(this, &pDropTarget);
965985
RegisterDragDrop(hwnd, pDropTarget);
966986
pDropTarget->Release();
987+
#ifdef USE_DRAGDROP
988+
if (m_webviewEnvironment3) {
989+
m_webviewEnvironment3->CreateCoreWebView2CompositionController(m_hwndParent, this);
990+
}
991+
#endif
967992
}
968993
}
969994
return S_OK;
@@ -1067,8 +1092,9 @@ STDMETHODIMP CteBase::DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSit
10671092
}
10681093
auto options = Microsoft::WRL::Make<CoreWebView2EnvironmentOptions>();
10691094
if (pszProxyServer[0]) {
1070-
lstrcat(pszSetting, L" --proxy-server=");
1095+
lstrcat(pszSetting, L" --proxy-server=\"");
10711096
lstrcat(pszSetting, pszProxyServer);
1097+
lstrcat(pszSetting, L"\"");
10721098
}
10731099
options->put_AdditionalBrowserArguments(pszSetting);
10741100
#ifdef _DEBUG
@@ -1144,28 +1170,17 @@ STDMETHODIMP CteBase::SetColorScheme(LOGPALETTE *pLogpal)
11441170
//IOleWindow
11451171
STDMETHODIMP CteBase::GetWindow(HWND *phwnd)
11461172
{
1147-
HRESULT hr = E_FAIL;
1148-
if (m_webviewController) {
1149-
HWND hwnd1, hwnd = NULL;
1150-
hr = m_webviewController->get_ParentWindow(&hwnd1);
1151-
if (hr == S_OK) {
1152-
hwnd = hwnd1;
1153-
hwnd1 = FindWindowEx(hwnd1, NULL, L"Chrome_WidgetWin_0", NULL);
1154-
if (hwnd1) {
1155-
hwnd = hwnd1;
1156-
hwnd1 = FindWindowEx(hwnd1, NULL, L"Chrome_WidgetWin_1", NULL);
1157-
if (hwnd1) {
1158-
hwnd = hwnd1;
1159-
hwnd1 = FindWindowEx(hwnd1, NULL, L"Chrome_RenderWidgetHostHWND", NULL);
1160-
if (hwnd1) {
1161-
hwnd = hwnd1;
1162-
}
1163-
}
1173+
if (m_hwndParent) {
1174+
*phwnd = FindWindowEx(m_hwndParent, NULL, L"Chrome_WidgetWin_0", NULL);
1175+
if (*phwnd) {
1176+
*phwnd = FindWindowEx(*phwnd, NULL, L"Chrome_WidgetWin_1", NULL);
1177+
if (*phwnd) {
1178+
*phwnd = FindWindowEx(*phwnd, NULL, L"Chrome_RenderWidgetHostHWND", NULL);
1179+
return S_OK;
11641180
}
11651181
}
1166-
*phwnd = hwnd;
11671182
}
1168-
return hr;
1183+
return E_FAIL;
11691184
}
11701185

11711186
STDMETHODIMP CteBase::ContextSensitiveHelp(BOOL fEnterMode)
@@ -1195,6 +1210,7 @@ STDMETHODIMP CteBase::SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect)
11951210
int deviceYDPI = GetDeviceCaps(hdc, LOGPIXELSY);
11961211
ReleaseDC(m_hwndParent, hdc);
11971212
m_webviewController->SetBoundsAndZoomFactor(*lprcClipRect, 96.0 / deviceYDPI);
1213+
CopyRect(&m_webviewBounds, lprcClipRect);
11981214
return S_OK;
11991215
}
12001216

@@ -1209,21 +1225,47 @@ STDMETHODIMP CteBase::ReactivateAndUndo(void)
12091225
//IDropTarget
12101226
STDMETHODIMP CteBase::DragEnter(IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
12111227
{
1228+
#ifdef USE_DRAGDROP
1229+
if (m_webviewCompositionController3) {
1230+
POINT ptc = { pt.x, pt.y };
1231+
OffsetPointToWebView(&ptc);
1232+
return m_webviewCompositionController3->DragEnter(pDataObj, grfKeyState, ptc, pdwEffect);
1233+
}
1234+
#endif
12121235
return E_NOTIMPL;
12131236
}
12141237

12151238
STDMETHODIMP CteBase::DragOver(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
12161239
{
1240+
#ifdef USE_DRAGDROP
1241+
if (m_webviewCompositionController3) {
1242+
POINT ptc = { pt.x, pt.y };
1243+
OffsetPointToWebView(&ptc);
1244+
return m_webviewCompositionController3->DragOver(grfKeyState, ptc, pdwEffect);
1245+
}
1246+
#endif
12171247
return E_NOTIMPL;
12181248
}
12191249

12201250
STDMETHODIMP CteBase::DragLeave()
12211251
{
1252+
#ifdef USE_DRAGDROP
1253+
if (m_webviewCompositionController3) {
1254+
return m_webviewCompositionController3->DragLeave();
1255+
}
1256+
#endif
12221257
return E_NOTIMPL;
12231258
}
12241259

12251260
STDMETHODIMP CteBase::Drop(IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
12261261
{
1262+
#ifdef USE_DRAGDROP
1263+
if (m_webviewCompositionController3) {
1264+
POINT ptc = { pt.x, pt.y };
1265+
OffsetPointToWebView(&ptc);
1266+
return m_webviewCompositionController3->Drop(pDataObj, grfKeyState, ptc, pdwEffect);
1267+
}
1268+
#endif
12271269
return E_NOTIMPL;
12281270
}
12291271

@@ -1325,6 +1367,9 @@ STDMETHODIMP CteBase::QueryService(REFGUID guidService, REFIID riid, void **ppv)
13251367
STDMETHODIMP CteBase::Invoke(HRESULT result, ICoreWebView2Environment *created_environment)
13261368
{
13271369
created_environment->CreateCoreWebView2Controller(m_hwndParent, this);
1370+
#ifdef USE_DRAGDROP
1371+
created_environment->QueryInterface(IID_PPV_ARGS(&m_webviewEnvironment3));
1372+
#endif
13281373
return S_OK;
13291374
}
13301375

@@ -1362,6 +1407,15 @@ STDMETHODIMP CteBase::Invoke(HRESULT result, ICoreWebView2Controller *createdCon
13621407
return S_OK;
13631408
}
13641409

1410+
#ifdef USE_DRAGDROP
1411+
//ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler
1412+
STDMETHODIMP CteBase::Invoke(HRESULT result, ICoreWebView2CompositionController *createdController)
1413+
{
1414+
SafeRelease(&m_webviewCompositionController3);
1415+
return createdController->QueryInterface(IID_PPV_ARGS(&m_webviewCompositionController3));
1416+
}
1417+
#endif
1418+
13651419
//ICoreWebView2ExecuteScriptCompletedHandler
13661420
STDMETHODIMP CteBase::Invoke(HRESULT result, LPCWSTR resultObjectAsJson)
13671421
{

tewv/tewv.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
#define DISPID_TE_MAX TE_VI
3131
#define MAX_PATHEX 32768
3232

33+
//#define USE_DRAGDROP 1
34+
3335
//Tablacus Explorer (Edge)
3436
const CLSID CLSID_WebBrowserExt = {0x55bbf1b8, 0x0d30, 0x4908, { 0xbe, 0x0c, 0xd5, 0x76, 0x61, 0x2a, 0x0f, 0x48}};
3537
// {BD34E79B-963F-4AFB-B03E-C5BD289B5080}
@@ -53,6 +55,9 @@ class CteBase : public IWebBrowser2, public IOleObject, public IOleInPlaceObject
5355
public IDropTarget, public IShellBrowser,
5456
public ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler,
5557
public ICoreWebView2CreateCoreWebView2ControllerCompletedHandler,
58+
#ifdef USE_DRAGDROP
59+
public ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler,
60+
#endif
5661
public ICoreWebView2ExecuteScriptCompletedHandler,
5762
public ICoreWebView2DocumentTitleChangedEventHandler,
5863
public ICoreWebView2NavigationStartingEventHandler,
@@ -189,6 +194,10 @@ class CteBase : public IWebBrowser2, public IOleObject, public IOleInPlaceObject
189194
STDMETHODIMP Invoke(HRESULT result, ICoreWebView2Environment *created_environment);
190195
//ICoreWebView2CreateCoreWebView2ControllerCompletedHandler
191196
STDMETHODIMP Invoke(HRESULT result, ICoreWebView2Controller *createdController);
197+
#ifdef USE_DRAGDROP
198+
//ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler
199+
STDMETHODIMP Invoke(HRESULT result, ICoreWebView2CompositionController *createdController);
200+
#endif
192201
//ICoreWebView2ExecuteScriptCompletedHandler
193202
STDMETHODIMP Invoke(HRESULT result, LPCWSTR resultObjectAsJson);
194203
//ICoreWebView2DocumentTitleChangedEventHandler
@@ -200,18 +209,28 @@ class CteBase : public IWebBrowser2, public IOleObject, public IOleInPlaceObject
200209

201210
CteBase();
202211
~CteBase();
212+
213+
#ifdef USE_DRAGDROP
214+
VOID OffsetPointToWebView(LPPOINT point);
215+
#endif
203216
private:
204217
IOleClientSite *m_pOleClientSite;
205218
IDispatch *m_pdisp;
206219
HWND m_hwndParent;
207220
ICoreWebView2Controller *m_webviewController;
208221
ICoreWebView2 *m_webviewWindow;
222+
#ifdef USE_DRAGDROP
223+
ICoreWebView2Environment3 *m_webviewEnvironment3;
224+
ICoreWebView2CompositionController3 *m_webviewCompositionController3;
225+
#endif
209226
EventRegistrationToken m_documentTitleChangedToken;
210227
EventRegistrationToken m_navigationStartingToken;
211228
EventRegistrationToken m_navigationCompletedToken;
212229
BSTR m_bstrPath;
230+
// HANDLE m_hOleDropTargetInterface;
213231

214232
IDispatch *m_pDocument;
233+
RECT m_webviewBounds;
215234
LONG m_cRef;
216235
};
217236

tewv/tewv.vcxproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@
157157
</ItemGroup>
158158
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
159159
<ImportGroup Label="ExtensionTargets">
160-
<Import Project="..\packages\Microsoft.Web.WebView2.1.0.1722.45\build\native\Microsoft.Web.WebView2.targets" Condition="Exists('..\packages\Microsoft.Web.WebView2.1.0.1722.45\build\native\Microsoft.Web.WebView2.targets')" />
160+
<Import Project="..\packages\Microsoft.Web.WebView2.1.0.2365.46\build\native\Microsoft.Web.WebView2.targets" Condition="Exists('..\packages\Microsoft.Web.WebView2.1.0.2365.46\build\native\Microsoft.Web.WebView2.targets')" />
161161
</ImportGroup>
162162
<PropertyGroup>
163163
<WebView2LoaderPreference>Static</WebView2LoaderPreference>
@@ -166,6 +166,6 @@
166166
<PropertyGroup>
167167
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
168168
</PropertyGroup>
169-
<Error Condition="!Exists('..\packages\Microsoft.Web.WebView2.1.0.1722.45\build\native\Microsoft.Web.WebView2.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Web.WebView2.1.0.1722.45\build\native\Microsoft.Web.WebView2.targets'))" />
169+
<Error Condition="!Exists('..\packages\Microsoft.Web.WebView2.1.0.2365.46\build\native\Microsoft.Web.WebView2.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Web.WebView2.1.0.2365.46\build\native\Microsoft.Web.WebView2.targets'))" />
170170
</Target>
171171
</Project>

0 commit comments

Comments
 (0)