This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/guiddef.h

133 lines
3 KiB
C

/*
* guiddef.h Globally unique identifier definitions
*
* =========================================================================
*
* Open Watcom Project
*
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
*
* This file is automatically generated. Do not edit directly.
*
* =========================================================================
*/
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
/* Macro used to specify extern "C" */
#ifdef __cplusplus
#define EXTERN_C extern "C"
#else
#define EXTERN_C extern
#endif
/* Macro to define a GUID */
#ifdef DEFINE_GUID
#undef DEFINE_GUID
#endif
#ifdef INITGUID
#define DEFINE_GUID( x, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11 ) \
EXTERN_C const GUID x = { p1, p2, p3, { p4, p5, p6, p7, p8, p9, p10, p11 } }
#else
#define DEFINE_GUID( x, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11 ) \
EXTERN_C const GUID x
#endif
#ifndef _GUIDDEF_H_
#define _GUIDDEF_H_
#include <string.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Null values */
#define IID_NULL GUID_NULL
#define CLSID_NULL GUID_NULL
#define FMTID_NULL GUID_NULL
/* Globally unique identifier */
#ifndef GUID_DEFINED
#define GUID_DEFINED
typedef struct _GUID {
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID;
#endif
#ifndef __LPGUID_DEFINED__
#define __LPGUID_DEFINED__
typedef GUID *LPGUID;
#endif
#ifndef __LPCGUID_DEFINED__
#define __LPCGUID_DEFINED__
typedef const GUID *LPCGUID;
#endif
/* Interface identifier */
typedef GUID IID;
typedef IID *LPIID;
/* Class identifier */
typedef GUID CLSID;
typedef CLSID *LPCLSID;
/* Format identifier */
typedef GUID FMTID;
typedef FMTID *LPFMTID;
/* Reference data types */
#ifdef __cplusplus
#define REFGUID const GUID &
#define REFIID const IID &
#define REFCLSID const CLSID &
#define REFFMTID const FMTID &
#else
#define REFGUID const GUID *const
#define REFIID const IID *const
#define REFCLSID const CLSID *const
#define REFFMTID const FMTID *const
#endif
/* Macro used to define a standard GUID */
#define DEFINE_OLEGUID( x, p1, p2, p3 ) \
DEFINE_GUID( x, p1, p2, p3, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 )
/* GUID comparison macros */
#ifndef __cplusplus
#define IsEqualGUID( p1, p2 ) (!memcmp( p1, p2, sizeof( GUID ) ))
#endif
#define IsEqualIID( p1, p2 ) IsEqualGUID( p1, p2 )
#define IsEqualCLSID( p1, p2 ) IsEqualGUID( p1, p2 )
#define IsEqualFMTID( p1, p2 ) IsEqualGUID( p1, p2 )
#ifdef __cplusplus
} /* extern "C" */
#endif
#ifdef __cplusplus
__inline int IsEqualGUID( REFGUID p1, REFGUID p2 )
{
return( !memcmp( &p1, &p2, sizeof( GUID ) ) );
}
__inline int operator==( REFGUID p1, REFGUID p2 )
{
return( IsEqualGUID( p1, p2 ) );
}
__inline int operator!=( REFGUID p1, REFGUID p2 )
{
return( !(p1 == p2) );
}
#endif /* __cplusplus */
#endif /* _GUIDDEF_H_ */