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

Jacek Caban jacek at codeweavers.com
Mon Jun 3 10:47:17 CDT 2019


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.


Jacek





More information about the wine-devel mailing list