[PATCH] mshtml.idl: Work around IDisplayServices and IHTMLWindow7 conflict for getComputedStyle.

Dmitry Timoshkov dmitry at baikal.ru
Mon Jun 3 10:39:16 CDT 2019


Dmitry Timoshkov <dmitry at baikal.ru> wrote:

> Jacek Caban <jacek at codeweavers.com> wrote:
> 
> > --- a/include/mshtml.idl
> > +++ b/include/mshtml.idl
> > @@ -28142,7 +28142,9 @@ interface IDisplayServices : IUnknown
> >      HRESULT TransformRect([in, out] RECT *pRect,[in] COORD_SYSTEM eSource,[in] COORD_SYSTEM eDestination,[in] IHTMLElement *pIElement);
> >      HRESULT TransformPoint([in, out] POINT *pPoint,[in] COORD_SYSTEM eSource,[in] COORD_SYSTEM eDestination,[in] IHTMLElement *pIElement);
> >      HRESULT GetCaret([out] IHTMLCaret **ppCaret);
> > -    HRESULT GetComputedStyle([in] IMarkupPointer *pPointer,[out] IHTMLComputedStyle **ppComputedStyle);
> > +    /* NOTE: We should use GetComputedStyle name instead, but due to the way typelibs are generated,
> > +     * it may conflict with lowercase getComputedStyle used by IHTMLWindow7 */
> > +    HRESULT getComputedStyle([in] IMarkupPointer *pPointer,[out] IHTMLComputedStyle **ppComputedStyle);
> 
> Are you sure that this is correct workaround? I checked Windows version of
> mshtml.tlb and it has "GetComputedStyle".

That was an XP version of mshtml.tlb without IHTMLWindow7 interface,
Windows7+ version of mshtml.tlb does indeed contain "getComputedStyle"
instead. Perhaps just do what PSDK does in that case: place IHTMLWindow7
declaration before IDisplayServices (with an appropriate comment)?

-- 
Dmitry.



More information about the wine-devel mailing list