Correctly importing uuid

Jacek Caban jacek at codeweavers.com
Fri Feb 16 11:04:11 CST 2018


On 02/16/2018 05:59 PM, Anton Romanov wrote:
>> In such cases we need to use the second way. Note that uuids are usually
>> defined using DEFINE_GUID in headers, see guiddef.h for the macro. It
>> expands to |extern const GUID| unless DEFINE_GUID is defined. If it's
>> defined, full declaration is included. In wmp_main.c we include initguid.h,
>> which defines DEFINE_GUID macro. It means that we will have uuids declared
>> for all headers included in wmp_main.c.
>>
>> Wouldn't it be possible to include public headers that have GUIDs from
>> uuid.lib, then include initguid.h, and then include headers that define WMP
>> guids (or define the WMP GUIDs manually)? That should import guids that work
>> with uuid.lib from there and define the rest.
>>
>> Of course the beauty of a half-way approach is always questionable, so not
>> sure if that's better than just using DEFINE_GUID for everything.
>>
>>
>> Sure, that would work as well. The downside is that then we depend on
>> includes hierarchy - if we ever need to change includes in headers, we need
>> to take that into account in non-intuitive places. It's not a big deal, so I
>> think the solution is fine.
> So, I'm still confused - what do I need to include to have GUID_NULL
> without linking to uuid and without declaring it myself?

Declaring it yourself in wmp_main.c is fine. Just please don't add such
things when you don't need it. I commented on it because you added it in
a patch that didn't need it.

Jacek



More information about the wine-devel mailing list