[PATCH] ieframe: IOleObject::SetExtent() should resize the Shell Embedding Window.
Dmitry Timoshkov
dmitry at baikal.ru
Thu Jun 18 22:19:07 CDT 2020
Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
---
dlls/ieframe/oleobject.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/dlls/ieframe/oleobject.c b/dlls/ieframe/oleobject.c
index 5c49845aa7..b0e166897a 100644
--- a/dlls/ieframe/oleobject.c
+++ b/dlls/ieframe/oleobject.c
@@ -740,6 +740,22 @@ static HRESULT WINAPI OleObject_SetExtent(IOleObject *iface, DWORD dwDrawAspect,
TRACE("(%p)->(%x %p)\n", This, dwDrawAspect, psizel);
+ if(This->shell_embedding_hwnd) {
+ LONG dpi_x, dpi_y, width, height;
+ HDC hdc;
+
+ hdc = GetDC(0);
+ dpi_x = GetDeviceCaps(hdc, LOGPIXELSX);
+ dpi_y = GetDeviceCaps(hdc, LOGPIXELSY);
+ ReleaseDC(0, hdc);
+
+ width = MulDiv(psizel->cx, dpi_x, 2540);
+ height = MulDiv(psizel->cy, dpi_y, 2540);
+
+ SetWindowPos(This->shell_embedding_hwnd, NULL,
+ 0, 0, width, height, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE);
+ }
+
/* Tests show that dwDrawAspect is ignored */
This->extent = *psizel;
return S_OK;
--
2.26.2
More information about the wine-devel
mailing list