1*f6dc9357SAndroid Build Coastguard Worker // Common/MyGuidDef.h 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker // #pragma message "Common/MyGuidDef.h" 4*f6dc9357SAndroid Build Coastguard Worker 5*f6dc9357SAndroid Build Coastguard Worker #ifndef GUID_DEFINED 6*f6dc9357SAndroid Build Coastguard Worker #define GUID_DEFINED 7*f6dc9357SAndroid Build Coastguard Worker 8*f6dc9357SAndroid Build Coastguard Worker // #pragma message "GUID_DEFINED" 9*f6dc9357SAndroid Build Coastguard Worker 10*f6dc9357SAndroid Build Coastguard Worker #include "MyTypes.h" 11*f6dc9357SAndroid Build Coastguard Worker 12*f6dc9357SAndroid Build Coastguard Worker typedef struct { 13*f6dc9357SAndroid Build Coastguard Worker UInt32 Data1; 14*f6dc9357SAndroid Build Coastguard Worker UInt16 Data2; 15*f6dc9357SAndroid Build Coastguard Worker UInt16 Data3; 16*f6dc9357SAndroid Build Coastguard Worker Byte Data4[8]; 17*f6dc9357SAndroid Build Coastguard Worker } GUID; 18*f6dc9357SAndroid Build Coastguard Worker 19*f6dc9357SAndroid Build Coastguard Worker #ifdef __cplusplus 20*f6dc9357SAndroid Build Coastguard Worker #define REFGUID const GUID & 21*f6dc9357SAndroid Build Coastguard Worker #else 22*f6dc9357SAndroid Build Coastguard Worker #define REFGUID const GUID * 23*f6dc9357SAndroid Build Coastguard Worker #endif 24*f6dc9357SAndroid Build Coastguard Worker 25*f6dc9357SAndroid Build Coastguard Worker // typedef GUID IID; 26*f6dc9357SAndroid Build Coastguard Worker typedef GUID CLSID; 27*f6dc9357SAndroid Build Coastguard Worker 28*f6dc9357SAndroid Build Coastguard Worker #define REFCLSID REFGUID 29*f6dc9357SAndroid Build Coastguard Worker #define REFIID REFGUID 30*f6dc9357SAndroid Build Coastguard Worker 31*f6dc9357SAndroid Build Coastguard Worker #ifdef __cplusplus 32*f6dc9357SAndroid Build Coastguard Worker inline int operator==(REFGUID g1, REFGUID g2) 33*f6dc9357SAndroid Build Coastguard Worker { 34*f6dc9357SAndroid Build Coastguard Worker for (unsigned i = 0; i < sizeof(g1); i++) 35*f6dc9357SAndroid Build Coastguard Worker if (((const Byte *)&g1)[i] != ((const Byte *)&g2)[i]) 36*f6dc9357SAndroid Build Coastguard Worker return 0; 37*f6dc9357SAndroid Build Coastguard Worker return 1; 38*f6dc9357SAndroid Build Coastguard Worker } 39*f6dc9357SAndroid Build Coastguard Worker inline int operator!=(REFGUID g1, REFGUID g2) { return !(g1 == g2); } 40*f6dc9357SAndroid Build Coastguard Worker #endif 41*f6dc9357SAndroid Build Coastguard Worker 42*f6dc9357SAndroid Build Coastguard Worker #endif // GUID_DEFINED 43*f6dc9357SAndroid Build Coastguard Worker 44*f6dc9357SAndroid Build Coastguard Worker #ifndef EXTERN_C 45*f6dc9357SAndroid Build Coastguard Worker #ifdef __cplusplus 46*f6dc9357SAndroid Build Coastguard Worker #define EXTERN_C extern "C" 47*f6dc9357SAndroid Build Coastguard Worker #else 48*f6dc9357SAndroid Build Coastguard Worker #define EXTERN_C extern 49*f6dc9357SAndroid Build Coastguard Worker #endif 50*f6dc9357SAndroid Build Coastguard Worker #endif 51*f6dc9357SAndroid Build Coastguard Worker 52*f6dc9357SAndroid Build Coastguard Worker #ifdef DEFINE_GUID 53*f6dc9357SAndroid Build Coastguard Worker #undef DEFINE_GUID 54*f6dc9357SAndroid Build Coastguard Worker #endif 55*f6dc9357SAndroid Build Coastguard Worker 56*f6dc9357SAndroid Build Coastguard Worker #ifdef INITGUID 57*f6dc9357SAndroid Build Coastguard Worker #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ 58*f6dc9357SAndroid Build Coastguard Worker EXTERN_C const GUID name; \ 59*f6dc9357SAndroid Build Coastguard Worker EXTERN_C const GUID name = { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } } 60*f6dc9357SAndroid Build Coastguard Worker #else 61*f6dc9357SAndroid Build Coastguard Worker #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ 62*f6dc9357SAndroid Build Coastguard Worker EXTERN_C const GUID name 63*f6dc9357SAndroid Build Coastguard Worker #endif 64