diff --git a/dlls/mshtml/htmlscreen.c b/dlls/mshtml/htmlscreen.c
index 3ed403f7766..c1d1f9230c4 100644
--- a/dlls/mshtml/htmlscreen.c
+++ b/dlls/mshtml/htmlscreen.c
@@ -158,8 +158,11 @@ static HRESULT WINAPI HTMLScreen_get_width(IHTMLScreen *iface, LONG *p)
static HRESULT WINAPI HTMLScreen_get_height(IHTMLScreen *iface, LONG *p)
{
HTMLScreen *This = HTMLSCREEN_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ *p = GetDeviceCaps(get_display_dc(), VERTRES);
+ return S_OK;
}
static HRESULT WINAPI HTMLScreen_put_updateInterval(IHTMLScreen *iface, LONG v)
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index ff58013f166..a29a4c387a6 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -3058,12 +3058,17 @@ static void test_screen(IHTMLWindow2 *window)
hdc = CreateICW(displayW, NULL, NULL, NULL);
exl = GetDeviceCaps(hdc, HORZRES);
-
l = 0xdeadbeef;
hres = IHTMLScreen_get_width(screen, &l);
ok(hres == S_OK, "get_width failed: %08x\n", hres);
ok(l == exl, "width = %d, expected %d\n", l, exl);
+ exl = GetDeviceCaps(hdc, VERTRES);
+ l = 0xdeadbeef;
+ hres = IHTMLScreen_get_height(screen, &l);
+ ok(hres == S_OK, "get_height failed: %08x\n", hres);
+ ok(l == exl, "height = %d, expected %d\n", l, exl);
+
DeleteObject(hdc);
IHTMLScreen_Release(screen);