[PATCH 5/5] widl: Generate helper macros for WinRT implementation.
Rémi Bernon
rbernon at codeweavers.com
Fri Feb 19 13:43:25 CST 2021
On 2/19/21 8:12 PM, Jacek Caban wrote:
> On 19.02.2021 18:18, Rémi Bernon wrote:
>> Hi Jacek!
>>
>> On 2/19/21 5:48 PM, Jacek Caban wrote:
>>> Hi Rémi,
>>>
>>>
>>> On 19.02.2021 12:04, Rémi Bernon wrote:
>>>> This generates additional macros to help keeping implementation simple,
>>>> guarded with WIDL_USING ifdefs, like this:
>>>>
>>>> #ifdef WIDL_USING_WINDOWS_FOO_IFOO
>>>
>>>
>>> I would find it more readable if we didn't follow all-uppercase for
>>> macro rule here, something like:
>>>
>>> #define WIDL_using_Windows_Foo_IFoo
>>>
>>> But it's a matter of taste, so I'm mentioning it just for consideration.
>>>
>>
>> Yeah I don't really like it much, but I can see one reason to make
>> something like that, which would also possibly solve the [1] below:
>>
>> For making things simpler to type, it could just be the type C name
>> prefixed by WIDL_USING_, like in:
>>
>> #define WIDL_USING_CWindows_CGaming_CInput_CIRawGameController
>>
>> The generation of the guard macros would just have to remove the
>> __x_ABI_ prefix, and developers just need to copy paste the type names
>> they want without having to remove the C prefixes or mess with the
>> name case.
>
>
> I hope that we can save developers from dealing with details about name
> mangling, at least in non-templated cases. Ideally they would be able to
> type it manually.
>
Well, in that case all upper case could also save some effort trying to
guess how the words are supposed to be capitalized :)
>
>> I was afraid of making its scope too large, in case there's some types
>> which would conflict together. I think having it per type is a bit
>> verbose but at least it stays under control.
>
>
> Sure, we may have both mechanisms: use per-namespace macros whenever
> possible and fallback to per-type macros in problematic cases.
>
>
>> Could it be added later, if we need to implement a large amount of
>> WinRT DLLs where adding each type proves too verbose?
>
>
> Maybe we could implement only per-namespace macros and wait for an
> actual collision problem before implementing per-type variant?
>
Alright!
>
> Thanks,
>
> Jacek
>
--
Rémi Bernon <rbernon at codeweavers.com>
More information about the wine-devel
mailing list