[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