Jacek Caban (@jacek) commented about dlls/mshtml/htmlstyle.c:
HTMLCSSStyleDeclaration2_get_animationFillMode };
+static inline CSSStyle *impl_from_IWineCSSProperties(IWineCSSProperties *iface) +{ + return CONTAINING_RECORD(iface, CSSStyle, IWineCSSProperties_iface); +} + +DISPEX_IDISPATCH_IMPL(CSSProperties, IWineCSSProperties, impl_from_IWineCSSProperties(iface)->dispex) + +static HRESULT WINAPI CSSProperties_setAttribute(IWineCSSProperties *iface, BSTR name, VARIANT value, LONG flags) +{ + CSSStyle *This = impl_from_IWineCSSProperties(iface); + return This->vtbl->set_attribute(iface, name, value, flags); +}
If we're forwarding everything anyway, I don't see a point of the extra indirection. We could implement the interface separately in `HTMLStyle` and `HTMLCurrentStyle`. Since computed style should not expose it, having it outside `CSSStyle` seems cleaner anyway. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6952#note_89695