Actually use pymapi variables in Makefile.
[jelmer/openchange-proposed.git/.git] / property.idl
1 #include "idl_types.h"
2
3 cpp_quote("#include <gen_ndr/ndr_misc.h>")
4
5 import "exchange.idl";
6
7 [
8         pointer_default(unique)
9 ]
10 interface property
11 {
12         typedef [enum16bit] enum {
13                 RecurFrequency_Daily    = 0x200A,
14                 RecurFrequency_Weekly   = 0x200B,
15                 RecurFrequency_Monthly  = 0x200C,
16                 RecurFrequency_Yearly   = 0x200D
17         } RecurFrequency;
18         
19         typedef [enum16bit] enum {
20                 PatternType_Day         = 0x0,
21                 PatternType_Week        = 0x1,
22                 PatternType_Month       = 0x2,
23                 PatternType_MonthNth    = 0x3,
24                 PatternType_MonthEnd    = 0x4,
25                 PatternType_HjMonth     = 0xA,
26                 PatternType_HjMonthNth  = 0xB,
27                 PatternType_HjMonthEnd  = 0xC
28         } PatternType;
29
30         typedef [enum16bit] enum {
31                 CAL_DEFAULT                     = 0x0,
32                 CAL_GREGORIAN                   = 0x1,
33                 CAL_GREGORIAN_US                = 0x2,
34                 CAL_JAPAN                       = 0x3,
35                 CAL_TAIWAN                      = 0x4,
36                 CAL_KOREA                       = 0x5,
37                 CAL_HIJRI                       = 0x6,
38                 CAL_THAI                        = 0x7,
39                 CAL_HEBREW                      = 0x8,
40                 CAL_GREGORIAN_ME_FRENCH         = 0x9,
41                 CAL_GREGORIAN_ARABIC            = 0xA,
42                 CAL_GREGORIAN_XLIT_ENGLISH      = 0xB,
43                 CAL_GREGORIAN_XLIT_FRENCH       = 0xC,
44                 CAL_LUNAR_JAPANESE              = 0xE,
45                 CAL_CHINESE_LUNAR               = 0xF,
46                 CAL_SAKA                        = 0x10,
47                 CAL_LUNAR_KOREAN                = 0x14
48         } CalendarType;
49
50         typedef [bitmap32bit] bitmap {
51                 Su              = 0x00000001,
52                 M               = 0x00000002,
53                 Tu              = 0x00000004,
54                 W               = 0x00000008,
55                 Th              = 0x00000010,
56                 F               = 0x00000020,
57                 Sa              = 0x00000040
58         } WeekRecurrencePattern;
59
60         typedef [v1_enum] enum {
61                 RecurrenceN_First       =       0x1,
62                 RecurrenceN_Second      =       0x2,
63                 RecurrenceN_Third       =       0x3,
64                 RecurrenceN_Fourth      =       0x4,
65                 RecurrenceN_Last        =       0x5
66         } RecurrenceN;
67
68         typedef [flag(NDR_NOALIGN)] struct {
69                 WeekRecurrencePattern   WeekRecurrencePattern;
70                 RecurrenceN             N;
71         } MonthRecurrencePattern;
72
73         typedef [nodiscriminant,flag(NDR_NOALIGN)] union {
74                 [case(0x1)] WeekRecurrencePattern               WeekRecurrencePattern;
75                 [case(0x3)] MonthRecurrencePattern              MonthRecurrencePattern;
76                 [case(0x4)] uint32                              Day;
77                 [case(0xA)] uint32                              Day;
78                 [case(0xB)] MonthRecurrencePattern              MonthRecurrencePattern;
79                 [case(0xC)] uint32                              Day;
80                 [case(0x0)];
81                 [default];
82         } PatternTypeSpecific;
83
84         typedef [v1_enum] enum {
85                 END_AFTER_DATE          = 0x00002021,
86                 END_AFTER_N_OCCURRENCES = 0x00002022,
87                 END_NEVER_END           = 0x00002023,
88                 NEVER_END               = 0xFFFFFFFF
89         } EndType;
90
91         typedef [v1_enum] enum {
92                 FirstDOW_Sunday         = 0x0,
93                 FirstDOW_Monday         = 0x1,
94                 FirstDOW_Tuesday        = 0x2,
95                 FirstDOW_Wednesday      = 0x3,
96                 FirstDOW_Thursday       = 0x4,
97                 FirstDOW_Friday         = 0x5,
98                 FirstDOW_Saturday       = 0x6
99         } FirstDOW;
100
101         typedef [public,flag(NDR_NOALIGN)] struct {
102                 uint16                                          ReaderVersion;
103                 uint16                                          WriterVersion;
104                 RecurFrequency                                  RecurFrequency;
105                 PatternType                                     PatternType;
106                 CalendarType                                    CalendarType;
107                 uint32                                          FirstDateTime;
108                 uint32                                          Period;
109                 uint32                                          SlidingFlag;
110                 [switch_is(PatternType)] PatternTypeSpecific    PatternTypeSpecific;
111                 EndType                                         EndType;
112                 uint32                                          OccurrenceCount;
113                 FirstDOW                                        FirstDOW;
114                 uint32                                          DeletedInstanceCount;
115                 uint32                                          DeletedInstanceDates[DeletedInstanceCount];
116                 uint32                                          ModifiedInstanceCount;
117                 uint32                                          ModifiedInstanceDates[ModifiedInstanceCount];
118                 uint32                                          StartDate;
119                 uint32                                          EndDate;
120         } RecurrencePattern;
121
122         /* [MS-DIF].pdf Section 2.3.6 */
123         typedef [public,flag(NDR_NOALIGN)] struct {
124                 uint16  wYear;
125                 uint16  wMonth;
126                 uint16  wDayOfWeek;
127                 uint16  wDay;
128                 uint16  wHour;
129                 uint16  wMinute;
130                 uint16  wSecond;
131                 uint16  wMilliseconds;
132         } SYSTEMTIME;
133
134         /* pidLidTimeZoneStruct */
135         typedef [public,flag(NDR_NOALIGN)] struct {
136                 uint32                  lBias;
137                 uint32                  lStandardBias;
138                 uint32                  lDaylightBias;
139                 uint16                  wStandardYear;
140                 SYSTEMTIME              stStandardDate;
141                 uint16                  wDaylightYear;
142                 SYSTEMTIME              stDaylightDate;
143         } TimeZoneStruct;
144
145         /* pidLidGlobalObjectId */
146         typedef [public,flag(NDR_NOALIGN)] struct {
147                 uint8                   ByteArrayID[16];
148                 uint8                   YH;
149                 uint8                   YL;
150                 uint8                   Month;
151                 uint8                   D;
152                 FILETIME                CreationTime;
153                 uint8                   X[8];
154                 uint32                  Size;
155                 uint8                   Data[Size];
156         } GlobalObjectId;
157 }