00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __XPLC_UUID_H__
00025 #define __XPLC_UUID_H__
00026
00076 #ifndef GUID_DEFINED
00077 #define GUID_DEFINED
00078
00082 typedef struct _GUID {
00084 unsigned long Data1;
00085 unsigned short Data2;
00086 unsigned short Data3;
00087 unsigned char Data4[8];
00089 } GUID;
00090 #endif
00091
00092 #ifndef UUID_DEFINED
00093 #define UUID_DEFINED
00094 typedef GUID UUID;
00095 #ifndef uuid_t
00096 #define uuid_t UUID
00097 #endif
00098 #endif
00099
00100
00102 static const UUID UUID_null = {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}};
00103
00115 template<class T>
00116 struct XPLC_IID {
00117 };
00118
00122 #define DEFINE_IID(iface, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11) \
00123 static const UUID iface##_IID = u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11; \
00124 template <> \
00125 struct XPLC_IID<iface> { \
00126 static const UUID& get() { \
00127 return iface##_IID; \
00128 } \
00129 }
00130
00131 #endif