3 cpp_quote("#include <gen_ndr/ndr_misc.h>")
8 pointer_default(unique)
12 typedef [enum16bit] enum {
13 RecurFrequency_Daily = 0x200A,
14 RecurFrequency_Weekly = 0x200B,
15 RecurFrequency_Monthly = 0x200C,
16 RecurFrequency_Yearly = 0x200D
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
30 typedef [enum16bit] enum {
33 CAL_GREGORIAN_US = 0x2,
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,
47 CAL_LUNAR_KOREAN = 0x14
50 typedef [bitmap32bit] bitmap {
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
68 typedef [flag(NDR_NOALIGN)] struct {
69 WeekRecurrencePattern WeekRecurrencePattern;
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;
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
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
102 typedef [v1_enum] enum {
103 ARO_SUBJECT = 0x0001,
104 ARO_MEETINGTYPE = 0x0002,
105 ARO_REMINDERDELTA = 0x0004,
106 ARO_REMINDER = 0x0008,
107 ARO_LOCATION = 0x0010,
108 ARO_BUSYSTATUS = 0x0020,
109 ARO_ATTACHMENT = 0x0040,
110 ARO_SUBTYPE = 0x0080,
111 ARO_APPTCOLOR = 0x0100,
112 ARO_EXCEPTIONAL_BODY = 0x0200
115 typedef [public,flag(NDR_NOALIGN)] struct {
116 uint16 ReaderVersion;
117 uint16 WriterVersion;
118 RecurFrequency RecurFrequency;
119 PatternType PatternType;
120 CalendarType CalendarType;
121 uint32 FirstDateTime;
124 [switch_is(PatternType)] PatternTypeSpecific PatternTypeSpecific;
126 uint32 OccurrenceCount;
128 uint32 DeletedInstanceCount;
129 uint32 DeletedInstanceDates[DeletedInstanceCount];
130 uint32 ModifiedInstanceCount;
131 uint32 ModifiedInstanceDates[ModifiedInstanceCount];
136 typedef [public,flag(NDR_NOALIGN)] struct {
137 uint32 ReservedBlockEE1Size;
138 [size_is(ReservedBlockEE1Size)] uint8 ReservedBlockEE1[];
139 uint32 StartDateTime;
141 uint32 OriginalStartDate;
142 uint16 WideCharSubjectLength;
143 [size_is(WideCharSubjectLength+1)] uint16 WideCharSubject[];
144 uint16 WideCharLocationLength;
145 [size_is(WideCharLocationLength+1)] uint16 WideCharLocation[];
146 uint32 ReservedBlockEE2Size;
147 [size_is(ReservedBlockEE2Size)] uint8 ReservedBlockEE2[];
148 } OldExtendedException;
150 typedef [public,flag(NDR_NOALIGN)] struct {
151 uint32 ChangeHighlightSize;
152 uint32 ChangeHighlightValue;
156 typedef [public,flag(NDR_NOALIGN)] struct {
157 ChangeHighlight ChangeHighlight;
158 uint32 ReservedBlockEE1Size;
159 [size_is(ReservedBlockEE1Size)] uint8 ReservedBlockEE1[];
160 uint32 StartDateTime;
162 uint32 OriginalStartDate;
163 uint16 WideCharSubjectLength;
164 [size_is(WideCharSubjectLength+1)] uint16 WideCharSubject[];
165 uint16 WideCharLocationLength;
166 [size_is(WideCharLocationLength+1)] uint16 WideCharLocation[];
167 uint32 ReservedBlockEE2Size;
168 [size_is(ReservedBlockEE2Size)] uint8 ReservedBlockEE2[];
171 typedef [public,flag(NDR_NOALIGN)] struct {
174 [size_is(msgLength)] uint8 msg[];
177 typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
179 [case(0x0001)] Exception_Msg subjectMsg;
180 [case(0x0002)] uint32 mType;
181 [case(0x0004)] uint32 rDelta;
182 [case(0x0008)] uint32 rSet;
183 [case(0x0010)] Exception_Msg locationMsg;
184 [case(0x0020)] uint32 bStatus;
185 [case(0x0040)] uint32 attachment;
186 [case(0x0080)] uint32 sType;
187 [case(0x0100)] uint32 aColor;
191 typedef [public,flag(NDR_NOALIGN)] struct {
192 uint32 StartDateTime;
194 uint32 OriginalStartDate;
195 OverrideFlags OverrideFlags;
196 [switch_is(OverrideFlags & 0x0001)] Exception_Value Subject;
197 [switch_is(OverrideFlags & 0x0002)] Exception_Value MeetingType;
198 [switch_is(OverrideFlags & 0x0004)] Exception_Value ReminderDelta;
199 [switch_is(OverrideFlags & 0x0008)] Exception_Value ReminderSet;
200 [switch_is(OverrideFlags & 0x0010)] Exception_Value Location;
201 [switch_is(OverrideFlags & 0x0020)] Exception_Value BusyStatus;
202 [switch_is(OverrideFlags & 0x0040)] Exception_Value Attachment;
203 [switch_is(OverrideFlags & 0x0080)] Exception_Value SubType;
204 [switch_is(OverrideFlags & 0x0100)] Exception_Value AppointmentColor;
207 typedef [nodiscriminant,flag(NDR_NOALIGN)] union {
208 [case(0x3008)] OldExtendedException OldExtendedException;
209 [default] ExtendedException ExtendedException;
210 } ExtendedExceptionData;
212 typedef [public,flag(NDR_NOALIGN)] struct {
213 RecurrencePattern RecurrencePattern;
214 uint32 ReaderVersion2;
215 uint32 WriterVersion2;
216 uint32 StartTimeOffset;
217 uint32 EndTimeOffset;
218 uint16 ExceptionCount;
219 ExceptionInfo ExceptionInfo[ExceptionCount];
220 uint32 ReservedBlock1Size;
221 uint32 ReservedBlock1[ReservedBlock1Size];
222 // // ExtendedException ExtendedException;
223 [switch_is(WriterVersion2)] ExtendedExceptionData ExtendedExceptionData[ExceptionCount];
224 uint32 ReservedBlock2Size;
225 uint32 ReservedBlock2[ReservedBlock2Size];
226 } AppointmentRecurrencePattern;
228 /* [MS-DIF].pdf Section 2.3.6 */
229 typedef [public,flag(NDR_NOALIGN)] struct {
237 uint16 wMilliseconds;
240 /* pidLidTimeZoneStruct */
241 typedef [public,flag(NDR_NOALIGN)] struct {
243 uint32 lStandardBias;
244 uint32 lDaylightBias;
245 uint16 wStandardYear;
246 SYSTEMTIME stStandardDate;
247 uint16 wDaylightYear;
248 SYSTEMTIME stDaylightDate;
251 /* pidLidGlobalObjectId */
252 typedef [public,flag(NDR_NOALIGN)] struct {
253 uint8 ByteArrayID[16];
258 FILETIME CreationTime;
264 /* PR_ENTRYID/PR_TARGET_ENTRYID (messages) */
265 typedef [public,flag(NDR_NOALIGN)] struct {
269 GUID FolderDatabaseGuid;
270 [switch_is(1)] GLOBCNT FolderGlobalCounter;
272 GUID MessageDatabaseGuid;
273 [switch_is(1)] GLOBCNT MessageGlobalCounter;