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

Dmitry Timoshkov dmitry at baikal.ru
Mon Jun 3 10:55:59 CDT 2019


Jacek Caban <jacek at codeweavers.com> wrote:

> On 6/3/19 5:39 PM, Dmitry Timoshkov wrote:
> > 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)?
> 
> 
> We already do that and it's apparently not enough.

Attached patch does the trick.

-- 
Dmitry.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: mshtml.diff
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20190603/fbe8aa31/attachment.ksh>


More information about the wine-devel mailing list