| // Common/MyGuidDef.h |
| |
| #ifndef GUID_DEFINED |
| #define GUID_DEFINED |
| |
| #include "Types.h" |
| |
| typedef struct { |
| UInt32 Data1; |
| UInt16 Data2; |
| UInt16 Data3; |
| unsigned char Data4[8]; |
| } GUID; |
| |
| #ifdef __cplusplus |
| #define REFGUID const GUID & |
| #else |
| #define REFGUID const GUID * |
| #endif |
| |
| #define REFCLSID REFGUID |
| #define REFIID REFGUID |
| |
| #ifdef __cplusplus |
| inline bool operator==(REFGUID g1, REFGUID g2) |
| { |
| for (int i = 0; i < (int)sizeof(g1); i++) |
| if (((const unsigned char *)&g1)[i] != ((const unsigned char *)&g2)[i]) |
| return false; |
| return true; |
| } |
| inline bool operator!=(REFGUID g1, REFGUID g2) { return !(g1 == g2); } |
| #endif |
| |
| #ifdef __cplusplus |
| #define MY_EXTERN_C extern "C" |
| #else |
| #define MY_EXTERN_C extern |
| #endif |
| |
| #endif // GUID_DEFINED |
| |
| |
| #ifdef DEFINE_GUID |
| #undef DEFINE_GUID |
| #endif |
| |
| #ifdef INITGUID |
| #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ |
| MY_EXTERN_C const GUID name = { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } } |
| #else |
| #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ |
| MY_EXTERN_C const GUID name |
| #endif |