Add dummy file to make sure bin/ directory exists.
[jelmer/openchange.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 [v1_enum] enum {
13                 seOpenToDelete          = 0x00000001,
14                 seNoFrame               = 0x00000008,
15                 seCoerceToInbox         = 0x00000010,
16                 seOpenToCopy            = 0x00000020,
17                 seOpenToMove            = 0x00000040,
18                 seOpenForCtxMenu        = 0x00000100,
19                 seCannotUndoDelete      = 0x00000400,
20                 seCannotUndoCopy        = 0x00000800,
21                 seCannotUndoMove        = 0x00001000,
22                 seHasScript             = 0x00002000,
23                 seOpenToPermDelete      = 0x00004000
24         } SideEffects;
25
26         typedef [enum16bit] enum {
27                 RecurFrequency_Daily    = 0x200A,
28                 RecurFrequency_Weekly   = 0x200B,
29                 RecurFrequency_Monthly  = 0x200C,
30                 RecurFrequency_Yearly   = 0x200D
31         } RecurFrequency;
32
33         typedef [enum16bit] enum {
34                 PatternType_Day         = 0x0,
35                 PatternType_Week        = 0x1,
36                 PatternType_Month       = 0x2,
37                 PatternType_MonthNth    = 0x3,
38                 PatternType_MonthEnd    = 0x4,
39                 PatternType_HjMonth     = 0xA,
40                 PatternType_HjMonthNth  = 0xB,
41                 PatternType_HjMonthEnd  = 0xC
42         } PatternType;
43
44         typedef [enum16bit] enum {
45                 CAL_DEFAULT                     = 0x0,
46                 CAL_GREGORIAN                   = 0x1,
47                 CAL_GREGORIAN_US                = 0x2,
48                 CAL_JAPAN                       = 0x3,
49                 CAL_TAIWAN                      = 0x4,
50                 CAL_KOREA                       = 0x5,
51                 CAL_HIJRI                       = 0x6,
52                 CAL_THAI                        = 0x7,
53                 CAL_HEBREW                      = 0x8,
54                 CAL_GREGORIAN_ME_FRENCH         = 0x9,
55                 CAL_GREGORIAN_ARABIC            = 0xA,
56                 CAL_GREGORIAN_XLIT_ENGLISH      = 0xB,
57                 CAL_GREGORIAN_XLIT_FRENCH       = 0xC,
58                 CAL_LUNAR_JAPANESE              = 0xE,
59                 CAL_CHINESE_LUNAR               = 0xF,
60                 CAL_SAKA                        = 0x10,
61                 CAL_LUNAR_KOREAN                = 0x14
62         } CalendarType;
63
64         typedef [bitmap32bit] bitmap {
65                 Su              = 0x00000001,
66                 M               = 0x00000002,
67                 Tu              = 0x00000004,
68                 W               = 0x00000008,
69                 Th              = 0x00000010,
70                 F               = 0x00000020,
71                 Sa              = 0x00000040
72         } WeekRecurrencePattern;
73
74         typedef [v1_enum] enum {
75                 olFree          = 0x00000000,
76                 olTentative     = 0x00000001,
77                 olBusy          = 0x00000002,
78                 olOutOfOffice   = 0x00000003
79         } FreeBusyStatus; /* oxocal - 2.2.1.2 */
80
81         typedef [v1_enum] enum {
82                 RecurrenceN_First       =       0x1,
83                 RecurrenceN_Second      =       0x2,
84                 RecurrenceN_Third       =       0x3,
85                 RecurrenceN_Fourth      =       0x4,
86                 RecurrenceN_Last        =       0x5
87         } RecurrenceN;
88
89         typedef [flag(NDR_NOALIGN)] struct {
90                 WeekRecurrencePattern   WeekRecurrencePattern;
91                 RecurrenceN             N;
92         } MonthRecurrencePattern;
93
94         typedef [nodiscriminant,flag(NDR_NOALIGN)] union {
95                 [case(0x1)] WeekRecurrencePattern               WeekRecurrencePattern;
96                 [case(0x2)] uint32                              Day;
97                 [case(0x3)] MonthRecurrencePattern              MonthRecurrencePattern;
98                 [case(0x4)] uint32                              Day;
99                 [case(0xA)] uint32                              Day;
100                 [case(0xB)] MonthRecurrencePattern              MonthRecurrencePattern;
101                 [case(0xC)] uint32                              Day;
102                 [case(0x0)];
103                 [default];
104         } PatternTypeSpecific;
105
106         typedef [v1_enum] enum {
107                 END_AFTER_DATE          = 0x00002021,
108                 END_AFTER_N_OCCURRENCES = 0x00002022,
109                 END_NEVER_END           = 0x00002023,
110                 NEVER_END               = 0xFFFFFFFF
111         } EndType;
112
113         typedef [v1_enum] enum {
114                 FirstDOW_Sunday         = 0x0,
115                 FirstDOW_Monday         = 0x1,
116                 FirstDOW_Tuesday        = 0x2,
117                 FirstDOW_Wednesday      = 0x3,
118                 FirstDOW_Thursday       = 0x4,
119                 FirstDOW_Friday         = 0x5,
120                 FirstDOW_Saturday       = 0x6
121         } FirstDOW;
122
123         typedef [enum16bit] enum {
124                 ARO_SUBJECT             = 0x0001,
125                 ARO_MEETINGTYPE         = 0x0002,
126                 ARO_REMINDERDELTA       = 0x0004,
127                 ARO_REMINDER            = 0x0008,
128                 ARO_LOCATION            = 0x0010,
129                 ARO_BUSYSTATUS          = 0x0020,
130                 ARO_ATTACHMENT          = 0x0040,
131                 ARO_SUBTYPE             = 0x0080,
132                 ARO_APPTCOLOR           = 0x0100,
133                 ARO_EXCEPTIONAL_BODY    = 0x0200
134         } OverrideFlags;
135
136         typedef [public,flag(NDR_NOALIGN)] struct {
137                 uint16                                          ReaderVersion;
138                 uint16                                          WriterVersion;
139                 RecurFrequency                                  RecurFrequency;
140                 PatternType                                     PatternType;
141                 CalendarType                                    CalendarType;
142                 uint32                                          FirstDateTime;
143                 uint32                                          Period;
144                 uint32                                          SlidingFlag;
145                 [switch_is(PatternType)] PatternTypeSpecific    PatternTypeSpecific;
146                 EndType                                         EndType;
147                 uint32                                          OccurrenceCount;
148                 FirstDOW                                        FirstDOW;
149                 uint32                                          DeletedInstanceCount;
150                 uint32                                          DeletedInstanceDates[DeletedInstanceCount];
151                 uint32                                          ModifiedInstanceCount;
152                 uint32                                          ModifiedInstanceDates[ModifiedInstanceCount];
153                 uint32                                          StartDate;
154                 uint32                                          EndDate;
155         } RecurrencePattern;
156
157         typedef [public,flag(NDR_NOALIGN)] struct {     
158                 uint16                          msgLength;
159                 uint16                          msgLength2;
160                 uint8                           msg[msgLength2];
161         } Exception_Msg;
162
163         typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
164                 [case(0x0000)]                  ;
165                 [case(0x0001)]  Exception_Msg   subjectMsg;
166                 [case(0x0002)]  uint32          mType;
167                 [case(0x0004)]  uint32          rDelta;
168                 [case(0x0008)]  uint32          rSet;
169                 [case(0x0010)]  Exception_Msg   locationMsg;
170                 [case(0x0020)]  uint32          bStatus;
171                 [case(0x0040)]  uint32          attachment;
172                 [case(0x0080)]  uint32          sType;
173                 [case(0x0100)]  uint32          aColor;
174                 [default];
175         } Exception_Value;
176
177         typedef [public,flag(NDR_NOALIGN)] struct {
178                 uint32                                                          StartDateTime;
179                 uint32                                                          EndDateTime;
180                 uint32                                                          OriginalStartDate;
181                 OverrideFlags                                                   OverrideFlags;
182                 [switch_is(OverrideFlags & 0x0001)]     Exception_Value         Subject;
183                 [switch_is(OverrideFlags & 0x0002)]     Exception_Value         MeetingType;
184                 [switch_is(OverrideFlags & 0x0004)]     Exception_Value         ReminderDelta;
185                 [switch_is(OverrideFlags & 0x0008)]     Exception_Value         ReminderSet;
186                 [switch_is(OverrideFlags & 0x0010)]     Exception_Value         Location;
187                 [switch_is(OverrideFlags & 0x0020)]     Exception_Value         BusyStatus;
188                 [switch_is(OverrideFlags & 0x0040)]     Exception_Value         Attachment;
189                 [switch_is(OverrideFlags & 0x0080)]     Exception_Value         SubType;
190                 [switch_is(OverrideFlags & 0x0100)]     Exception_Value         AppointmentColor;
191         } ExceptionInfo;
192
193         typedef [public,flag(NDR_NOALIGN)] struct {
194                 uint32                                          ChangeHighlightSize;
195                 uint32                                          ChangeHighlightValue;
196                 uint8                                           Reserved[ChangeHighlightSize-4];
197         } ChangeHighlight;
198
199         typedef [nopull,nopush,flag(NDR_NOALIGN)] struct {      
200                 ChangeHighlight                                 ChangeHighlight;
201                 uint32                                          ReservedBlockEE1Size;
202                 uint8                                           ReservedBlockEE1[ReservedBlockEE1Size];
203                 uint32                                          StartDateTime;                  
204                 uint32                                          EndDateTime;
205                 uint32                                          OriginalStartDate;
206                 uint16                                          WideCharSubjectLength;
207                 uint16                                          WideCharSubject[WideCharSubjectLength];
208                 uint16                                          WideCharLocationLength;
209                 uint16                                          WideCharLocation[WideCharLocationLength];
210                 uint32                                          ReservedBlockEE2Size;
211                 uint8                                           ReservedBlockEE2[ReservedBlockEE2Size];
212         } ExtendedException;
213
214         typedef [nopull,nopush,flag(NDR_NOALIGN)] struct {
215                 RecurrencePattern                                       RecurrencePattern;
216                 uint32                                                  ReaderVersion2;
217                 uint32                                                  WriterVersion2;
218                 uint32                                                  StartTimeOffset;
219                 uint32                                                  EndTimeOffset;
220                 uint16                                                  ExceptionCount;
221                 ExceptionInfo                                           ExceptionInfo[ExceptionCount];
222                 uint32                                                  ReservedBlock1Size;
223                 uint32                                                  ReservedBlock1[ReservedBlock1Size];
224                 ExtendedException                                       ExtendedException[ExceptionCount];
225                 uint32                                                  ReservedBlock2Size;
226                 uint32                                                  ReservedBlock2[ReservedBlock2Size];
227         } AppointmentRecurrencePattern;
228         
229         /* [MS-DIF].pdf Section 2.3.6 */
230         typedef [public,flag(NDR_NOALIGN)] struct {
231                 uint16  wYear;
232                 uint16  wMonth;
233                 uint16  wDayOfWeek;
234                 uint16  wDay;
235                 uint16  wHour;
236                 uint16  wMinute;
237                 uint16  wSecond;
238                 uint16  wMilliseconds;
239         } SYSTEMTIME;
240
241         /* pidLidTimeZoneStruct */
242         typedef [public,flag(NDR_NOALIGN)] struct {
243                 uint32                  lBias;
244                 uint32                  lStandardBias;
245                 uint32                  lDaylightBias;
246                 uint16                  wStandardYear;
247                 SYSTEMTIME              stStandardDate;
248                 uint16                  wDaylightYear;
249                 SYSTEMTIME              stDaylightDate;
250         } TimeZoneStruct;
251
252         /* pidLidGlobalObjectId */
253         typedef [public,flag(NDR_NOALIGN)] struct {
254                 uint8                   ByteArrayID[16];
255                 uint8                   YH;
256                 uint8                   YL;
257                 uint8                   Month;
258                 uint8                   D;
259                 FILETIME                CreationTime;
260                 uint8                   X[8];
261                 uint32                  Size;
262                 uint8                   Data[Size];
263         } GlobalObjectId;
264
265         typedef [enum16bit] enum {
266                 eitLTPrivateFolder              = 0x01,
267                 eitLTPPublicFolder              = 0x03,
268                 eitLTPMappedPublicFolder        = 0x05,
269                 eitLTPPrivateMessage            = 0x07,
270                 eitLTPPublicMessage             = 0x09,
271                 eitLTPMappedPublicMessage       = 0x0b,
272                 eitLTPPublicNewsgroupFolder     = 0x0c
273         } EntryIdFolderType;
274
275         /* PtypServerId */
276         typedef [public,flag(NDR_NOALIGN)] struct {
277                 uint8                   ours;
278                 dlong                   FolderId;
279                 dlong                   MessageId;
280                 int32                   Instance;
281         } PtypServerId;
282
283         /* FolderEntryId */
284         typedef [public,flag(NDR_NOALIGN)] struct {
285                 uint32                  Flags;
286                 GUID                    ProviderUID;
287                 EntryIdFolderType       FolderType;
288                 GUID                    FolderDatabaseGuid;
289                 [switch_is(1)] GLOBCNT  FolderGlobalCounter;
290                 uint16                  Pad;
291         } FolderEntryId;
292
293         /* PR_ENTRYID/PR_TARGET_ENTRYID (messages) */
294         typedef [public,flag(NDR_NOALIGN)] struct {
295                 uint32                  Flags;
296                 GUID                    ProviderUID;
297                 EntryIdFolderType       MessageType;
298                 GUID                    FolderDatabaseGuid;
299                 [switch_is(1)] GLOBCNT  FolderGlobalCounter;
300                 uint16                  Pad1;
301                 GUID                    MessageDatabaseGuid;
302                 [switch_is(1)] GLOBCNT  MessageGlobalCounter;
303                 uint16                  Pad2;
304         } MessageEntryId;
305
306         /* AddressBookEntryId */
307         typedef [public,flag(NDR_NOALIGN)] struct {
308                 uint32                  Flags;
309                 GUID                    ProviderUID;
310                 uint32                  Version;
311                 uint32                  Type;
312                 astring                 X500DN;
313         } AddressBookEntryId;
314 }