Annotation of elwix/tools/oldlzma/SRC/Common/MyGuidDef.h, revision 1.1
1.1 ! misho 1: // Common/MyGuidDef.h
! 2:
! 3: #ifndef GUID_DEFINED
! 4: #define GUID_DEFINED
! 5:
! 6: typedef struct {
! 7: unsigned long Data1;
! 8: unsigned short Data2;
! 9: unsigned short Data3;
! 10: unsigned char Data4[8];
! 11: } GUID;
! 12:
! 13: #ifdef __cplusplus
! 14: #define REFGUID const GUID &
! 15: #else
! 16: #define REFGUID const GUID *
! 17: #endif
! 18:
! 19: #define REFCLSID REFGUID
! 20: #define REFIID REFGUID
! 21:
! 22: #ifdef __cplusplus
! 23: inline bool operator==(REFGUID g1, REFGUID g2)
! 24: {
! 25: for (int i = 0; i < (int)sizeof(g1); i++)
! 26: if (((unsigned char *)&g1)[i] != ((unsigned char *)&g2)[i])
! 27: return false;
! 28: return true;
! 29: }
! 30: inline bool operator!=(REFGUID g1, REFGUID g2) { return !(g1 == g2); }
! 31: #endif
! 32:
! 33: #ifdef __cplusplus
! 34: #define MY_EXTERN_C extern "C"
! 35: #else
! 36: #define MY_EXTERN_C extern
! 37: #endif
! 38:
! 39: #endif // GUID_DEFINED
! 40:
! 41:
! 42: #ifdef DEFINE_GUID
! 43: #undef DEFINE_GUID
! 44: #endif
! 45:
! 46: #ifdef INITGUID
! 47: #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
! 48: MY_EXTERN_C const GUID name = { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }
! 49: #else
! 50: #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
! 51: MY_EXTERN_C const GUID name
! 52: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>