Correctly importing uuid

Anton Romanov at
Fri Feb 16 11:11:40 CST 2018

On Fri, Feb 16, 2018 at 9:04 AM, Jacek Caban <jacek at> wrote:
> 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.

Oh, I see, thanks!

More information about the wine-devel mailing list