This fixes stand-alone inclusion of <guiddef.h>
(without first including <basetsd.h>).
Signed-off-by: Kevin Puetz <PuetzKevinA@JohnDeere.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
The typeof(...) extension is available in -std=gnu++11,
but c++11 considers it replaced by decltype(...) and off-by-default
__uuidof does need GNU __typeof__(), not decltype(), for c++03 support and
because both __uuidof(typename) and __uuidof(expression) should work,
but decltype(typename) is not accepted.
Signed-off-by: Kevin Puetz <PuetzKevinA@JohnDeere.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This patch ensures that the reference is unique and identical for all
uses in module, fixes handling of const types and uses direct reference
instead of depending on optimizer to produce sane code.
Based on patch by Kevin Puetz.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Protect LPGUID typedef by __LPGUID_DEFINED__ being defined.
Protect LPCLSID and LPFMTID typedefs, IsEqualGUID, IsEqualIID,
IsEqualCLSID, IID_NULL, CLSID_NULL and FMTID_NULL defines by
__IID_DEFINED__ being defined.
just "const" to ensure that the initialised GUID is visible to other
modules, and use EXTERN_C rather than just "extern" for the benefit of
MSVC++, which does name mangling on global variables.