shdocvw: Fix the computation of the default extents.
diff --git a/dlls/shdocvw/oleobject.c b/dlls/shdocvw/oleobject.c
index 9a38cf0..198ff2a 100644
--- a/dlls/shdocvw/oleobject.c
+++ b/dlls/shdocvw/oleobject.c
@@ -917,9 +917,9 @@
     memset(&This->clip_rect, 0, sizeof(RECT));
     memset(&This->frameinfo, 0, sizeof(OLEINPLACEFRAMEINFO));
 
-    /* The size is dpi dependent */
-    This->extent.cx = 127000 / dpi_x;
-    This->extent.cy =  50800 / dpi_y;
+    /* Default size is 50x20 pixels, in himetric units */
+    This->extent.cx = MulDiv( 50, 2540, dpi_x );
+    This->extent.cy = MulDiv( 20, 2540, dpi_y );
 }
 
 void WebBrowser_OleObject_Destroy(WebBrowser *This)
diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c
index ec036c5..76dfbf7 100644
--- a/dlls/shdocvw/tests/webbrowser.c
+++ b/dlls/shdocvw/tests/webbrowser.c
@@ -1814,7 +1814,7 @@
 static void test_Extent(IUnknown *unk)
 {
     IOleObject *oleobj;
-    SIZE size;
+    SIZE size, expected;
     HRESULT hres;
     DWORD dpi_x;
     DWORD dpi_y;
@@ -1836,10 +1836,11 @@
     size.cx = size.cy = 0xdeadbeef;
     hres = IOleObject_GetExtent(oleobj, DVASPECT_CONTENT, &size);
     ok(hres == S_OK, "GetExtent failed: %08x\n", hres);
-    /* The default size is dpi dependent (96:1323x529 / 120:1058x423) */
-    ok(size.cx == (127000 / dpi_x) &&
-        size.cy == (50800 / dpi_y), "size = {%d %d} (expected %d %d)\n",
-        size.cx, size.cy, 127000 / dpi_x, 50800 / dpi_y);
+    /* Default size is 50x20 pixels, in himetric units */
+    expected.cx = MulDiv( 50, 2540, dpi_x );
+    expected.cy = MulDiv( 20, 2540, dpi_y );
+    ok(size.cx == expected.cx && size.cy == expected.cy, "size = {%d %d} (expected %d %d)\n",
+       size.cx, size.cy, expected.cx, expected.cy );
 
     size.cx = 800;
     size.cy = 700;