Daily ChangeLog Update
[OpenChange-git-clone.git] / property.idl
blobb66c1ccaefdf188d64b4a6d7d0b8c4443d52a59f
1 #include "idl_types.h"
3 cpp_quote("#include <gen_ndr/ndr_misc.h>")
5 import "exchange.idl";
8 pointer_default(unique)
10 interface property
12 typedef [enum16bit] enum {
13 RecurFrequency_Daily = 0x200A,
14 RecurFrequency_Weekly = 0x200B,
15 RecurFrequency_Monthly = 0x200C,
16 RecurFrequency_Yearly = 0x200D
17 } RecurFrequency;
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;
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;
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;
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;
68 typedef [flag(NDR_NOALIGN)] struct {
69 WeekRecurrencePattern WeekRecurrencePattern;
70 RecurrenceN N;
71 } MonthRecurrencePattern;
73 typedef [nodiscriminant,flag(NDR_NOALIGN)] union {
74 [case(0x1)] WeekRecurrencePattern WeekRecurrencePattern;
75 [case(0x2)] uint32 Day;
76 [case(0x3)] MonthRecurrencePattern MonthRecurrencePattern;
77 [case(0x4)] uint32 Day;
78 [case(0xA)] uint32 Day;
79 [case(0xB)] MonthRecurrencePattern MonthRecurrencePattern;
80 [case(0xC)] uint32 Day;
81 [case(0x0)];
82 [default];
83 } PatternTypeSpecific;
85 typedef [v1_enum] enum {
86 END_AFTER_DATE = 0x00002021,
87 END_AFTER_N_OCCURRENCES = 0x00002022,
88 END_NEVER_END = 0x00002023,
89 NEVER_END = 0xFFFFFFFF
90 } EndType;
92 typedef [v1_enum] enum {
93 FirstDOW_Sunday = 0x0,
94 FirstDOW_Monday = 0x1,
95 FirstDOW_Tuesday = 0x2,
96 FirstDOW_Wednesday = 0x3,
97 FirstDOW_Thursday = 0x4,
98 FirstDOW_Friday = 0x5,
99 FirstDOW_Saturday = 0x6
100 } FirstDOW;
102 typedef [public,flag(NDR_NOALIGN)] struct {
103 uint16 ReaderVersion;
104 uint16 WriterVersion;
105 RecurFrequency RecurFrequency;
106 PatternType PatternType;
107 CalendarType CalendarType;
108 uint32 FirstDateTime;
109 uint32 Period;
110 uint32 SlidingFlag;
111 [switch_is(PatternType)] PatternTypeSpecific PatternTypeSpecific;
112 EndType EndType;
113 uint32 OccurrenceCount;
114 FirstDOW FirstDOW;
115 uint32 DeletedInstanceCount;
116 uint32 DeletedInstanceDates[DeletedInstanceCount];
117 uint32 ModifiedInstanceCount;
118 uint32 ModifiedInstanceDates[ModifiedInstanceCount];
119 uint32 StartDate;
120 uint32 EndDate;
121 } RecurrencePattern;
123 /* [MS-DIF].pdf Section 2.3.6 */
124 typedef [public,flag(NDR_NOALIGN)] struct {
125 uint16 wYear;
126 uint16 wMonth;
127 uint16 wDayOfWeek;
128 uint16 wDay;
129 uint16 wHour;
130 uint16 wMinute;
131 uint16 wSecond;
132 uint16 wMilliseconds;
133 } SYSTEMTIME;
135 /* pidLidTimeZoneStruct */
136 typedef [public,flag(NDR_NOALIGN)] struct {
137 uint32 lBias;
138 uint32 lStandardBias;
139 uint32 lDaylightBias;
140 uint16 wStandardYear;
141 SYSTEMTIME stStandardDate;
142 uint16 wDaylightYear;
143 SYSTEMTIME stDaylightDate;
144 } TimeZoneStruct;
146 /* pidLidGlobalObjectId */
147 typedef [public,flag(NDR_NOALIGN)] struct {
148 uint8 ByteArrayID[16];
149 uint8 YH;
150 uint8 YL;
151 uint8 Month;
152 uint8 D;
153 FILETIME CreationTime;
154 uint8 X[8];
155 uint32 Size;
156 uint8 Data[Size];
157 } GlobalObjectId;