diff --git a/dlls/mshtml/htmlstyle.c b/dlls/mshtml/htmlstyle.c index e21753bf59e..9602f5e24ff 100644 --- a/dlls/mshtml/htmlstyle.c +++ b/dlls/mshtml/htmlstyle.c @@ -1473,7 +1473,7 @@ static HRESULT WINAPI HTMLStyle_put_marginTop(IHTMLStyle *iface, VARIANT v) TRACE("(%p)->(v%d)\n", This, V_VT(&v)); - return set_nsstyle_attr_var(This->nsstyle, STYLEID_MARGIN_TOP, &v, 0); + return set_nsstyle_attr_var(This->nsstyle, STYLEID_MARGIN_TOP, &v, ATTR_FIX_PX); } static HRESULT WINAPI HTMLStyle_get_marginTop(IHTMLStyle *iface, VARIANT *p) diff --git a/dlls/mshtml/tests/style.c b/dlls/mshtml/tests/style.c index 4a0b9fb01db..183d3f41900 100644 --- a/dlls/mshtml/tests/style.c +++ b/dlls/mshtml/tests/style.c @@ -729,6 +729,18 @@ static void test_body_style(IHTMLStyle *style) ok(!strcmp_wa(V_BSTR(&v), "6px"), "V_BSTR(marginTop) = %s\n", wine_dbgstr_w(V_BSTR(&v))); VariantClear(&v); + V_VT(&v) = VT_I4; + V_I4(&v) = 5; + hres = IHTMLStyle_put_marginTop(style, v); + ok(hres == S_OK, "put_marginTop failed: %08x\n", hres); + + str = (void*)0xdeadbeef; + hres = IHTMLStyle_get_marginTop(style, &v); + ok(hres == S_OK, "get_marginTop failed: %08x\n", hres); + ok(V_VT(&v) == VT_BSTR, "V_VT(marginTop) = %d\n", V_VT(&v)); + ok(!strcmp_wa(V_BSTR(&v), "5px"), "V_BSTR(marginTop) = %s\n", wine_dbgstr_w(V_BSTR(&v))); + VariantClear(&v); + str = NULL; hres = IHTMLStyle_get_border(style, &str); ok(hres == S_OK, "get_border failed: %08x\n", hres);