1 // IDecl.h
2 
3 #ifndef __IDECL_H
4 #define __IDECL_H
5 
6 #include "../Common/MyUnknown.h"
7 
8 #define k_7zip_GUID_Data1 0x23170F69
9 #define k_7zip_GUID_Data2 0x40C1
10 
11 #define k_7zip_GUID_Data3_Common  0x278A
12 
13 #define k_7zip_GUID_Data3_Decoder 0x2790
14 #define k_7zip_GUID_Data3_Encoder 0x2791
15 #define k_7zip_GUID_Data3_Hasher  0x2792
16 
17 
18 #define DECL_INTERFACE_SUB(i, base, groupId, subId) \
19   DEFINE_GUID(IID_ ## i, \
20     k_7zip_GUID_Data1, \
21     k_7zip_GUID_Data2, \
22     k_7zip_GUID_Data3_Common, \
23     0, 0, 0, (groupId), 0, (subId), 0, 0); \
24   struct i: public base
25 
26 #define DECL_INTERFACE(i, groupId, subId) DECL_INTERFACE_SUB(i, IUnknown, groupId, subId)
27 
28 #endif
29