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

Jacek Caban jacek at codeweavers.com
Mon Jun 3 10:59:53 CDT 2019


On 6/3/19 5:55 PM, Dmitry Timoshkov wrote:
> 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.


Oh, I forgot about forward declarations. Sure, looks good to me.


Thanks,

Jacek




More information about the wine-devel mailing list