// Common/MyGuidDef.h // #pragma message "Common/MyGuidDef.h" #ifndef GUID_DEFINED #define GUID_DEFINED // #pragma message "GUID_DEFINED" #include "MyTypes.h" typedef struct { UInt32 Data1; UInt16 Data2; UInt16 Data3; Byte Data4[8]; } GUID; #ifdef __cplusplus #define REFGUID const GUID & #else #define REFGUID const GUID * #endif // typedef GUID IID; typedef GUID CLSID; #define REFCLSID REFGUID #define REFIID REFGUID #ifdef __cplusplus inline int operator==(REFGUID g1, REFGUID g2) { for (unsigned i = 0; i < sizeof(g1); i++) if (((const Byte *)&g1)[i] != ((const Byte *)&g2)[i]) return 0; return 1; } inline int operator!=(REFGUID g1, REFGUID g2) { return !(g1 == g2); } #endif #endif // GUID_DEFINED #ifndef EXTERN_C #ifdef __cplusplus #define EXTERN_C extern "C" #else #define EXTERN_C extern #endif #endif #ifdef DEFINE_GUID #undef DEFINE_GUID #endif #ifdef INITGUID #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ EXTERN_C const GUID name; \ 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) \ EXTERN_C const GUID name #endif