3
cpp_quote("#include <gen_ndr/ndr_misc.h>")
6
http://support.microsoft.com/default.aspx?scid=KB;en-us;q159298
7
Any UUID starting with:
13
uuid("99e64010-b032-11d0-97a4-00c04fd6551d"),
14
pointer_default(unique),
16
] interface exchange_store_admin3
18
void ec_store_admin3_dummy();
23
uuid("89742ace-a9ed-11cf-9c0c-08002be7ae86"),
24
pointer_default(unique),
26
] interface exchange_store_admin2
28
void ec_store_admin2_dummy();
32
uuid("a4f1db00-ca47-1067-b31e-00dd010662da"),
33
pointer_default(unique),
35
] interface exchange_store_admin1
37
void ec_store_admin1_dummy();
42
uuid("1544f5e0-613c-11d1-93df-00c04fd7bd09"),
43
endpoint("ncacn_np:[\\pipe\\lsass]","ncacn_np:[\\pipe\\protected_storage]","ncacn_ip_tcp:[]"),
44
authservice("exchangeRFR"),
45
pointer_default(unique),
47
helpstring("Exchange 2003 Directory Request For Response")
48
] interface exchange_ds_rfr
51
#include "properties_enum.h"
52
#include "mapicodes_enum.h"
56
MAPISTATUS RfrGetNewDSA(
58
[in,string,charset(DOS)] uint8 *pUserDN,
59
[in,out,unique,string,charset(DOS)] uint8 **ppszUnused,
60
[in,out,unique,string,charset(DOS)] uint8 **ppszServer
65
MAPISTATUS RfrGetFQDNFromLegacyDN(
67
[in,range(10,1024)] uint32 cbMailboxServerDN,
68
[in,string,charset(DOS),size_is(cbMailboxServerDN)] uint8 *szMailboxServerDN,
69
[out,ref,string,charset(DOS)] uint8 **ppszServerFQDN
74
uuid("f930c514-1215-11d3-99a5-00a0c9b61b04"),
75
helpstring("System Attendant Cluster Interface"),
76
pointer_default(unique),
78
] interface exchange_sysatt_cluster
80
void sysatt_cluster_dummy();
84
[83d72bf0-0d89-11ce-b13f-00aa003bac6c] MS Exchange
85
System Attendant Private Interface
89
uuid("469d6ec0-0d87-11ce-b13f-00aa003bac6c"),
90
pointer_default(unique),
91
helpstring("Exchange 5.5 System Attendant Request for Response")
92
] interface exchange_system_attendant
98
uuid("9e8ee830-4559-11ce-979b-00aa005ffebe"),
99
pointer_default(unique),
101
helpstring("Exchange 5.5 MTA")
102
] interface exchange_mta
114
uuid("f5cc59b4-4264-101a-8c59-08002b2f8426"),
115
pointer_default(unique),
117
helpstring("Exchange 5.5 DRS")
118
] interface exchange_drs
131
void ds_modify_entry();
132
void ds_modify_rdn();
134
void ds_receive_result();
135
void ds_remove_entry();
139
void dra_replica_add();
140
void dra_replica_delete();
141
void dra_replica_synchronize();
142
void dra_reference_update();
143
void dra_authorize_replica();
144
void dra_unauthorize_replica();
146
void dra_set_status();
147
void dra_modify_entry();
148
void dra_delete_subref();
152
uuid("f5cc5a7c-4264-101a-8c59-08002b2f8426"),
154
pointer_default(unique),
155
helpstring("Exchange 5.5 XDS")
156
] interface exchange_xds
162
uuid("38a94e72-a9bc-11d2-8faf-00c04fa378ff"),
163
pointer_default(unique),
165
] interface exchange_mta_qadmin
167
void exchange_mta_qadmin();
172
uuid("0e4a0156-dd5d-11d2-8c2f-00c04fb6bcde"),
173
pointer_default(unique),
175
] interface exchange_store_information
177
void exchange_store_information_dummy();
181
uuid("f5cc5a18-4264-101a-8c59-08002b2f8426"),
182
endpoint("ncacn_np:[\\pipe\\lsass]","ncacn_np:[\\pipe\\protected_storage]","ncacn_ip_tcp:[]"),
183
authservice("exchangeAB"),
184
pointer_default(unique),
186
helpstring("Exchange 5.5 Name Service Provider")
187
] interface exchange_nsp
190
#define PT_UNSPECIFIED 0x0000
191
#define PT_NULL 0x0001
193
#define PT_LONG 0x0003
195
#define PT_DOUBLE 0x0005
196
#define PT_CURRENCY 0x0006
197
#define PT_APPTIME 0x0007
198
#define PT_ERROR 0x000a /* means the given attr contains no value */
199
#define PT_BOOLEAN 0x000b
200
#define PT_OBJECT 0x000d
202
#define PT_STRING8 0x001e
203
#define PT_UNICODE 0x001f
204
#define PT_SYSTIME 0x0040
205
#define PT_CLSID 0x0048
206
#define PT_SVREID 0x00fb
207
#define PT_SRESTRICT 0x00fd
208
#define PT_ACTIONS 0x00fe
209
#define PT_BINARY 0x0102
210
/* Multi-valued properties */
211
#define PT_MV_I2 0x1002
212
#define PT_MV_LONG 0x1003
213
#define PT_MV_R4 0x1004
214
#define PT_MV_DOUBLE 0x1005
215
#define PT_MV_CURRENCY 0x1006
216
#define PT_MV_APPTIME 0x1007
217
#define PT_MV_I8 0x1014
218
#define PT_MV_STRING8 0x101e
219
#define PT_MV_TSTRING 0x101e
220
#define PT_MV_UNICODE 0x101f
221
#define PT_MV_SYSTIME 0x1040
222
#define PT_MV_CLSID 0x1048
223
#define PT_MV_BINARY 0x1102
225
typedef [v1_enum] enum {
226
SortTypeDisplayName = 0x00000000,
227
SortTypePhoneticDisplayName = 0x00000003,
228
SortTypeDisplayName_RO = 0x000003E8,
229
SortTypeDisplayName_W = 0x000003E9
232
typedef [v1_enum] enum {
233
MID_BEGINNING_OF_TABLE = 0x0,
234
MID_END_OF_TABLE = 0x2,
238
typedef [flag(NDR_NOALIGN)] struct {
239
TableSortOrders SortType;
246
uint32 TemplateLocale;
254
/* like a SPropTagArray, but without the "value is a an enum MAPITAGS" semantics */
256
[range(0,100000)] uint32 cValues;
257
[size_is(cValues+1), length_is(cValues)] uint32 aulPropTag[];
258
} PropertyTagArray_r;
267
[range(0,100000)] uint32 cNames;
268
[size_is(cNames)] PropertyName_r aNames[];
272
[range(0,100000)] uint32 cValues;
273
[string,size_is(cValues),charset(DOS)] uint8 **lppszA;
277
[range(0,100000)] uint32 Count;
278
[string,size_is(Count),charset(DOS)] uint8 *Strings[];
282
[range(0,100000)] uint32 cValues;
283
[string,size_is(cValues),charset(UTF16)] uint16 **lppszW;
287
[range(0,100000)] uint32 Count;
288
[string,size_is(Count),charset(UTF16)] uint16 *Strings[];
292
[range(0,100001)] uint32 cValues;
293
[size_is(cValues+1),length_is(cValues)] MAPITAGS aulPropTag[];
296
typedef [public,noprint] struct {
297
[range(0,2097152)] uint32 cb;
298
[size_is(cb)] uint8 *lpb;
301
typedef [public] struct {
302
uint32 dwLowDateTime;
303
uint32 dwHighDateTime;
307
[range(0,100000)] uint32 cValues;
308
[size_is(cValues)] uint16 *lpi;
312
[range(0,100000)] uint32 cValues;
313
[size_is(cValues)] uint32 *lpl;
317
[range(0,100000)] uint32 cValues;
318
[size_is(cValues)] dlong *lpi8;
322
[range(0,100000)] uint32 cValues;
323
[size_is(cValues)] Binary_r *lpbin;
326
typedef [flag(NDR_NOALIGN)] struct {
327
[range(0,100000)]uint32 cValues;
328
[size_is(cValues)] FlatUID_r **lpguid;
332
[range(0,100000)] uint32 cValues;
333
[size_is(cValues)] FILETIME *lpft;
336
typedef [switch_type(uint32)] union {
337
[case(PT_I2)] uint16 i;
338
[case(PT_LONG)] uint32 l;
339
[case(PT_DOUBLE)] dlong dbl;
340
[case(PT_BOOLEAN)] uint8 b;
341
[case(PT_I8)] dlong d;
342
[case(PT_STRING8)][unique][string,charset(DOS)] uint8 *lpszA;
343
[case(PT_BINARY)] Binary_r bin;
344
[case(PT_SVREID)] Binary_r bin;
345
[case(PT_UNICODE)][string,charset(UTF16)] uint16 *lpszW;
346
[case(PT_CLSID)] FlatUID_r *lpguid;
347
[case(PT_SYSTIME)] FILETIME ft;
348
[case(PT_ERROR)] MAPISTATUS err;
349
[case(PT_MV_I2)] ShortArray_r MVi;
350
[case(PT_MV_LONG)] LongArray_r MVl;
351
[case(PT_MV_I8)] I8Array_r MVi8;
352
[case(PT_MV_STRING8)] StringArray_r MVszA;
353
[case(PT_MV_BINARY)] BinaryArray_r MVbin;
354
[case(PT_MV_CLSID)] FlatUIDArray_r MVguid;
355
[case(PT_MV_UNICODE)] StringArrayW_r MVszW;
356
[case(PT_MV_SYSTIME)] DateTimeArray_r MVft;
357
[case(PT_NULL)] uint32 null;
358
[case(PT_OBJECT)] uint32 object;
361
typedef [public]struct {
364
[switch_is(ulPropTag & 0xFFFF)] SPropValue_CTR value;
368
uint32 ulAdrEntryPad;
369
[range(0,100000)] uint32 cValues;
370
[size_is(cValues)]SPropValue *lpProps;
374
typedef [public] struct {
375
[range(0,100000)] uint32 cRows;
376
[size_is(cRows)] SRow aRow[];
380
[range(0,100000)] uint32 cRes;
381
[size_is(cRes)] Restriction_r *lpRes;
385
[range(0,100000)] uint32 cRes;
386
[size_is(cRes)] Restriction_r *lpRes;
390
Restriction_r *lpRes;
397
} ContentRestriction_r;
403
} PropertyRestriction_r;
409
} ComparePropsRestriction_r;
415
} BitMaskRestriction_r;
427
} ExistRestriction_r;
431
Restriction_r *lpRes;
434
typedef [v1_enum] enum {
440
RES_COMPAREPROPS = 0x5,
444
RES_SUBRESTRICTION = 0x9,
448
typedef [switch_type(uint32)] union {
449
[case(RES_AND)] AndRestriction_r resAnd;
450
[case(RES_OR)] OrRestriction_r resOr;
451
[case(RES_NOT)] NotRestriction_r resNot;
452
[case(RES_CONTENT)] ContentRestriction_r resContent;
453
[case(RES_PROPERTY)] PropertyRestriction_r resProperty;
454
[case(RES_COMPAREPROPS)] ComparePropsRestriction_r resCompareProps;
455
[case(RES_BITMASK)] BitMaskRestriction_r resBitMask;
456
[case(RES_SIZE)] SizeRestriction_r resSize;
457
[case(RES_EXIST)] ExistRestriction_r resExist;
458
[case(RES_SUBRESTRICTION)] SubRestriction_r resSub;
459
} RestrictionUnion_r;
461
typedef [public] struct _Restriction_r{
462
RestrictionType_r rt;
463
[switch_is(rt)] RestrictionUnion_r res;
468
typedef [bitmap32bit] bitmap {
469
fAnonymousLogin = 0x00000020
473
[in] NspiBind_dwFlags dwFlags,
475
[in,out,unique] GUID *mapiuid,
476
[out] policy_handle *handle
481
MAPISTATUS NspiUnbind(
482
[in, out] policy_handle *handle,
488
MAPISTATUS NspiUpdateStat(
489
[in] policy_handle *handle,
490
[in] uint32 Reserved,
491
[in,out] STAT *pStat,
492
[in,out,unique] uint32 *plDelta
497
typedef [bitmap32bit] bitmap {
498
fSkipObjects = 0x00000001,
500
} NspiQueryRows_dwFlags;
502
MAPISTATUS NspiQueryRows(
503
[in] policy_handle *handle,
504
[in] NspiQueryRows_dwFlags dwFlags,
505
[in,out] STAT *pStat,
506
[in,range(0,100000)] uint32 dwETableCount,
507
[in,unique,size_is(dwETableCount)] uint32 *lpETable,
509
[in,unique] SPropTagArray *pPropTags,
510
[out] SRowSet **ppRows
515
MAPISTATUS NspiSeekEntries(
516
[in] policy_handle *handle,
517
[in] uint32 Reserved,
518
[in,out] STAT *pStat,
519
[in] SPropValue *pTarget,
520
[in,unique] PropertyTagArray_r *lpETable,
521
[in,unique] SPropTagArray *pPropTags,
522
[out] SRowSet **pRows
527
MAPISTATUS NspiGetMatches(
528
[in] policy_handle *handle,
529
[in] uint32 Reserved,
530
[in,out] STAT *pStat,
531
[in][unique] SPropTagArray *pReserved,
532
[in] uint32 Reserved2,
533
[in][unique] Restriction_r *Filter,
534
[in][unique] PropertyName_r *lpPropName,
535
[in] uint32 ulRequested,
536
[out] PropertyTagArray_r **ppOutMIds,
537
[in][unique] SPropTagArray *pPropTags,
538
[out] SRowSet **ppRows
543
MAPISTATUS NspiResortRestriction(
544
[in] policy_handle *handle,
545
[in] uint32 Reserved,
546
[in,out] STAT *pStat,
547
[in] PropertyTagArray_r *pInMIds,
548
[in,out] PropertyTagArray_r **ppMIds
553
MAPISTATUS NspiDNToMId(
554
[in] policy_handle *handle,
555
[in] uint32 Reserved,
556
[in] StringsArray_r *pNames,
557
[out] PropertyTagArray_r **ppMIds
562
MAPISTATUS NspiGetPropList(
563
[in] policy_handle *handle,
566
[in] uint32 CodePage,
567
[out] SPropTagArray **ppPropTags
572
MAPISTATUS NspiGetProps(
573
[in] policy_handle *handle,
576
[in,unique] SPropTagArray *pPropTags,
582
MAPISTATUS NspiCompareMIds(
583
[in] policy_handle *handle,
584
[in] uint32 Reserved,
588
[out] uint32 *plResult
593
MAPISTATUS NspiModProps(
594
[in] policy_handle *handle,
595
[in] uint32 Reserved,
597
[in,unique] SPropTagArray *pPropTags,
603
typedef [bitmap32bit] bitmap {
604
NspiAddressCreationTemplates = 0x00000002,
605
NspiUnicodeStrings = 0x00000004
606
} NspiGetSpecialTable_dwFlags;
608
MAPISTATUS NspiGetSpecialTable(
609
[in] policy_handle *handle,
610
[in] NspiGetSpecialTable_dwFlags dwFlags,
612
[in,out] uint32 *lpVersion,
613
[out] SRowSet **ppRows
616
/*******************/
618
typedef [bitmap32bit] bitmap {
619
TI_TEMPLATE = 0x00000001,
620
TI_SCRIPT = 0x00000004,
622
TI_HELPFILE_NAME = 0x00000020,
623
TI_HELPFILE_CONTENTS = 0x00000040
626
MAPISTATUS NspiGetTemplateInfo(
627
[in] policy_handle *handle,
628
[in] TI_dwFlags dwFlags,
630
[in,unique,string,charset(DOS)] uint8 *pDN,
631
[in] uint32 dwCodePage,
632
[in] uint32 dwLocaleID,
636
/*******************/
638
MAPISTATUS NspiModLinkAtt(
639
[in] policy_handle *handle,
641
[in] MAPITAGS ulPropTag,
643
[in] BinaryArray_r *lpEntryIds
646
/*************************************/
647
/* Function 0x0f: Not used on wire */
648
MAPISTATUS NspiDeleteEntries(
649
[in] policy_handle *Reserved1,
650
[in] uint32 Reserved2,
651
[in] uint32 Reserved3,
652
[in] BinaryArray_r *Reserved4
655
/*******************/
657
typedef [bitmap32bit] bitmap {
658
NspiUnicodeProptypes = 0x80000000
659
} NspiQueryColumns_dwFlags;
661
MAPISTATUS NspiQueryColumns(
662
[in] policy_handle *handle,
663
[in] uint32 Reserved,
664
[in] NspiQueryColumns_dwFlags dwFlags,
665
[out] SPropTagArray **ppColumns
668
/*******************/
670
MAPISTATUS NspiGetNamesFromIDs(
671
[in] policy_handle *handle,
672
[in] uint32 Reserved,
673
[in,unique] FlatUID_r *lpGuid,
674
[in,unique] SPropTagArray *pPropTags,
675
[out] SPropTagArray **ppReturnedPropTags,
676
[out] PropertyNameSet_r **ppNames
679
/*******************/
681
MAPISTATUS NspiGetIDsFromNames(
682
[in] policy_handle *handle,
683
[in] uint32 Reserved,
685
[in,range(0,100000)] uint32 cPropNames,
686
[in,size_is(cPropNames)] PropertyName_r **ppNames,
687
[out] SPropTagArray **ppPropTags
692
MAPISTATUS NspiResolveNames(
693
[in] policy_handle *handle,
694
[in] uint32 Reserved,
696
[in,unique] SPropTagArray *pPropTags,
697
[in] StringsArray_r *paStr,
698
[out] PropertyTagArray_r **ppMIds,
699
[out] SRowSet **ppRows
704
MAPISTATUS NspiResolveNamesW(
705
[in] policy_handle *handle,
706
[in] uint32 Reserved,
708
[in,unique] SPropTagArray *pPropTags,
709
[in] StringsArrayW_r *paWStr,
710
[out] PropertyTagArray_r **ppMIds,
711
[out] SRowSet **ppRows
716
uuid("a4f1db00-ca47-1067-b31f-00dd010662da"),
717
pointer_default(unique),
718
endpoint("ncacn_np:[\\pipe\\lsass]","ncacn_np:[\\pipe\\protected_storage]","ncacn_ip_tcp:"),
719
authservice("exchangeMDB"),
722
helpstring("Exchange 5.5 EMSMDB")
723
] interface exchange_emsmdb
728
MAPISTATUS EcDoConnect(
729
[out] policy_handle *handle,
730
[in,string,charset(DOS)] uint8 szUserDN[],
732
[in] uint32 ulConMod,
735
[in] uint32 ulLcidString,
736
[in] uint32 ulLcidSort,
737
[in] uint32 ulIcxrLink,
738
[in] uint16 usFCanConvertCodePages,
739
[out] uint32 *pcmsPollsMax,
740
[out] uint32 *pcRetry,
741
[out] uint32 *pcmsRetryDelay,
743
[out,ref,string,charset(DOS)]uint8 **szDNPrefix,
744
[out,ref,string,charset(DOS)]uint8 **szDisplayName,
745
[out] uint16 rgwServerVersion[3],
746
[in,out] uint16 rgwClientVersion[3],
747
[in,out] uint32 *pullTimeStamp
752
MAPISTATUS EcDoDisconnect(
753
[in,out] policy_handle *handle
763
typedef [public, enum8bit, flag(NDR_PAHEX)] enum
770
MAPI_MAILUSER = 0x6, /* Individual Recipient */
779
typedef [public, v1_enum, flag(NDR_PAHEX)] enum
781
RightsNone = 0x00000000,
782
RightsReadItems = 0x00000001,
783
RightsCreateItems = 0x00000002,
784
RightsEditOwn = 0x00000008,
785
RightsDeleteOwn = 0x00000010,
786
RightsEditAll = 0x00000020,
787
RightsDeleteAll = 0x00000040,
788
RightsCreateSubfolders = 0x00000080,
789
RightsFolderOwner = 0x00000100,
790
RightsFolderContact = 0x00000200,
791
RoleNone = 0x00000400,
792
RoleReviewer = 0x00000401,
793
RoleContributor = 0x00000402,
794
RoleNoneditingAuthor = 0x00000413,
795
RoleAuthor = 0x0000041B,
796
RoleEditor = 0x0000047B,
797
RolePublishAuthor = 0x0000049B,
798
RolePublishEditor = 0x000004FB,
799
RightsAll = 0x000005FB,
800
RoleOwner = 0x000007FB
803
typedef [public, enum8bit, flag(NDR_PAHEX)] enum
805
op_MAPI_Release = 0x1,
806
op_MAPI_OpenFolder = 0x2,
807
op_MAPI_OpenMessage = 0x3,
808
op_MAPI_GetHierarchyTable = 0x4,
809
op_MAPI_GetContentsTable = 0x5,
810
op_MAPI_CreateMessage = 0x6,
811
op_MAPI_GetProps = 0x7,
812
op_MAPI_GetPropsAll = 0x8,
813
op_MAPI_GetPropList = 0x9,
814
op_MAPI_SetProps = 0xa,
815
op_MAPI_DeleteProps = 0xb,
816
op_MAPI_SaveChangesMessage = 0xc,
817
op_MAPI_RemoveAllRecipients = 0xd,
818
op_MAPI_ModifyRecipients = 0xe,
819
op_MAPI_ReadRecipients = 0xf,
820
op_MAPI_ReloadCachedInformation = 0x10,
821
op_MAPI_SetMessageReadFlag = 0x11,
822
op_MAPI_SetColumns = 0x12,
823
op_MAPI_SortTable = 0x13,
824
op_MAPI_Restrict = 0x14,
825
op_MAPI_QueryRows = 0x15,
826
op_MAPI_GetStatus = 0x16,
827
op_MAPI_QueryPosition = 0x17,
828
op_MAPI_SeekRow = 0x18,
829
op_MAPI_SeekRowBookmark = 0x19,
830
op_MAPI_SeekRowApprox = 0x1a,
831
op_MAPI_CreateBookmark = 0x1b,
832
op_MAPI_CreateFolder = 0x1c,
833
op_MAPI_DeleteFolder = 0x1d,
834
op_MAPI_DeleteMessages = 0x1e,
835
op_MAPI_GetMessageStatus = 0x1f,
836
op_MAPI_SetMessageStatus = 0x20,
837
op_MAPI_GetAttachmentTable = 0x21,
838
op_MAPI_OpenAttach = 0x22,
839
op_MAPI_CreateAttach = 0x23,
840
op_MAPI_DeleteAttach = 0x24,
841
op_MAPI_SaveChangesAttachment = 0x25,
842
op_MAPI_SetReceiveFolder = 0x26,
843
op_MAPI_GetReceiveFolder = 0x27,
844
op_MAPI_RegisterNotification = 0x29,
845
op_MAPI_Notify = 0x2a,
846
op_MAPI_OpenStream = 0x2b,
847
op_MAPI_ReadStream = 0x2c,
848
op_MAPI_WriteStream = 0x2d,
849
op_MAPI_SeekStream = 0x2e,
850
op_MAPI_SetStreamSize = 0x2f,
851
op_MAPI_SetSearchCriteria = 0x30,
852
op_MAPI_GetSearchCriteria = 0x31,
853
op_MAPI_SubmitMessage = 0x32,
854
op_MAPI_MoveCopyMessages = 0x33,
855
op_MAPI_AbortSubmit = 0x34,
856
op_MAPI_MoveFolder = 0x35,
857
op_MAPI_CopyFolder = 0x36,
858
op_MAPI_QueryColumnsAll = 0x37,
859
op_MAPI_Abort = 0x38,
860
op_MAPI_CopyTo = 0x39,
861
op_MAPI_CopyToStream = 0x3a,
862
op_MAPI_CloneStream = 0x3b,
863
op_MAPI_GetPermissionsTable = 0x3e,
864
op_MAPI_GetRulesTable = 0x3f,
865
op_MAPI_ModifyPermissions = 0x40,
866
op_MAPI_ModifyRules = 0x41,
867
op_MAPI_GetOwningServers = 0x42,
868
op_MAPI_LongTermIdFromId = 0x43,
869
op_MAPI_IdFromLongTermId = 0x44,
870
op_MAPI_PublicFolderIsGhosted = 0x45,
871
op_MAPI_OpenEmbeddedMessage = 0x46,
872
op_MAPI_SetSpooler = 0x47,
873
op_MAPI_SpoolerLockMessage = 0x48,
874
op_MAPI_AddressTypes = 0x49,
875
op_MAPI_TransportSend = 0x4a,
876
op_MAPI_FastTransferSourceCopyMessages = 0x4b,
877
op_MAPI_FastTransferSourceCopyFolder = 0x4c,
878
op_MAPI_FastTransferSourceCopyTo = 0x4d,
879
op_MAPI_FastTransferSourceGetBuffer = 0x4e,
880
op_MAPI_FindRow = 0x4f,
881
op_MAPI_Progress = 0x50,
882
op_MAPI_TransportNewMail = 0x51,
883
op_MAPI_GetValidAttachments = 0x52,
884
op_MAPI_FastTransferDestConfigure = 0x53,
885
op_MAPI_FastTransferDestPutBuffer = 0x54,
886
op_MAPI_GetNamesFromIDs = 0x55,
887
op_MAPI_GetIDsFromNames = 0x56,
888
op_MAPI_UpdateDeferredActionMessages = 0x57,
889
op_MAPI_EmptyFolder = 0x58,
890
op_MAPI_ExpandRow = 0x59,
891
op_MAPI_CollapseRow = 0x5a,
892
op_MAPI_LockRegionStream = 0x5b,
893
op_MAPI_UnlockRegionStream = 0x5c,
894
op_MAPI_CommitStream = 0x5d,
895
op_MAPI_GetStreamSize = 0x5e,
896
op_MAPI_QueryNamedProperties = 0x5f,
897
op_MAPI_GetPerUserLongTermIds = 0x60,
898
op_MAPI_GetPerUserGuid = 0x61,
899
op_MAPI_ReadPerUserInformation = 0x63,
900
op_MAPI_WritePerUserInformation = 0x64,
901
op_MAPI_SetReadFlags = 0x66,
902
op_MAPI_CopyProperties = 0x67,
903
op_MAPI_GetReceiveFolderTable = 0x68,
904
op_MAPI_FastTransferSourceCopyProps = 0x69,
905
op_MAPI_GetCollapseState = 0x6b,
906
op_MAPI_SetCollapseState = 0x6c,
907
op_MAPI_GetTransportFolder = 0x6d,
908
op_MAPI_Pending = 0x6e,
909
op_MAPI_OptionsData = 0x6f,
910
op_MAPI_SyncConfigure = 0x70,
911
op_MAPI_SyncImportMessageChange = 0x72,
912
op_MAPI_SyncImportHierarchyChange = 0x73,
913
op_MAPI_SyncImportDeletes = 0x74,
914
op_MAPI_SyncUploadStateStreamBegin = 0x75,
915
op_MAPI_SyncUploadStateStreamContinue = 0x76,
916
op_MAPI_SyncUploadStateStreamEnd = 0x77,
917
op_MAPI_SyncImportMessageMove = 0x78,
918
op_MAPI_SetPropertiesNoReplicate = 0x79,
919
op_MAPI_DeletePropertiesNoReplicate = 0x7a,
920
op_MAPI_GetStoreState = 0x7b,
921
op_MAPI_SyncOpenCollector = 0x7e,
922
op_MAPI_GetLocalReplicaIds = 0x7f,
923
op_MAPI_SyncImportReadStateChanges = 0x80,
924
op_MAPI_ResetTable = 0x81,
925
op_MAPI_SyncGetTransferState = 0x82,
926
op_MAPI_SyncOpenAdvisor = 0x83,
927
op_MAPI_TellVersion = 0x86,
928
op_MAPI_OpenPublicFolderByName = 0x87,
929
op_MAPI_SetSyncNotificationGuid = 0x88,
930
op_MAPI_FreeBookmark = 0x89,
931
op_MAPI_WriteAndCommitStream = 0x90,
932
op_MAPI_HardDeleteMessages = 0x91,
933
op_MAPI_HardDeleteMessagesAndSubfolders = 0x92,
934
op_MAPI_SetLocalReplicaMidsetDeleted = 0x93,
935
op_MAPI_Backoff = 0xf9,
936
op_MAPI_Logon = 0xfe,
937
op_MAPI_BufferTooSmall = 0xff,
938
/****** custom MAPI opnum for mapiproxy ******/
939
op_MAPI_proxypack = 0xa5
943
typedef [public,noprint,flag(NDR_NOALIGN)] struct {
945
[flag(NDR_BUFFERS)]uint8 lpb[cb];
948
typedef [public] struct {
951
} mapi_MV_LONG_STRUCT;
957
typedef [public] struct {
959
mapi_LPSTR strings[cValues];
962
typedef [public] struct {
963
[flag(STR_NULLTERM)] string lppszW;
966
typedef [public] struct {
968
mapi_LPWSTR strings[cValues];
971
typedef [public] struct {
973
SBinary_short bin[cValues];
976
typedef [public] struct {
978
GUID lpguid[cValues];
981
/******* part of the no-pointer deep recursion hack *******/
982
typedef [nopull,nopush,noprint,flag(NDR_NOALIGN)] struct {
984
} mapi_SRestriction_wrap;
986
typedef [nopush,nopull,noprint,flag(NDR_NOALIGN)] struct {
988
} mapi_SPropValue_wrap;
990
typedef [nopush,nopull,noprint,flag(NDR_NOALIGN)] struct {
992
} mapi_SPropValue_array_wrap;
993
/**********************************************************/
995
typedef [enum8bit] enum {
996
ActionType_OP_MOVE = 0x1,
997
ActionType_OP_COPY = 0x2,
998
ActionType_OP_REPLY = 0x3,
999
ActionType_OP_OOF_REPLY = 0x4,
1000
ActionType_OP_DEFER_ACTION = 0x5,
1001
ActionType_OP_BOUNCE = 0x6,
1002
ActionType_OP_FORWARD = 0x7,
1003
ActionType_OP_DELEGATE = 0x8,
1004
ActionType_OP_TAG = 0x9,
1005
ActionType_OP_DELETE = 0xA,
1006
ActionType_OP_MARK_AS_READ = 0xB
1009
typedef [flag(NDR_NOALIGN)] struct {
1010
boolean8 FolderInThisStore;
1011
SBinary_short StoreEID;
1012
SBinary_short FolderEID;
1015
typedef [flag(NDR_NOALIGN)] struct {
1016
hyper ReplyTemplateFID;
1017
hyper ReplyTemplateMID;
1018
GUID ReplyTemplateGUID;
1021
typedef [flag(NDR_NOALIGN)] struct {
1023
mapi_SPropValue_array_wrap PropertyValue;
1026
typedef [flag(NDR_NOALIGN)] enum {
1027
BOUNCE_MESSAGE_TOO_LARGE = 0x0000000d,
1028
BOUNCE_MESSAGE_NOT_DISPLAYED = 0x0000001f,
1029
BOUNCE_MESSAGE_DENIED = 0x00000026
1032
typedef [flag(NDR_NOALIGN)] struct {
1033
uint16 RecipientCount;
1034
RecipientBlock RecipientBlock[RecipientCount];
1035
} ForwardDelegate_Action;
1037
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1038
[case(ActionType_OP_MOVE)] MoveCopy_Action MoveAction;
1039
[case(ActionType_OP_COPY)] MoveCopy_Action CopyAction;
1040
[case(ActionType_OP_REPLY)] ReplyOOF_Action ReplyAction;
1041
[case(ActionType_OP_OOF_REPLY)] ReplyOOF_Action ReplyOOFAction;
1042
[case(ActionType_OP_DEFER_ACTION)][flag(NDR_REMAINING)] DATA_BLOB DeferAction;
1043
[case(ActionType_OP_BOUNCE)] BounceCode BounceCode;
1044
[case(ActionType_OP_TAG)] mapi_SPropValue_wrap PropValue;
1045
[case(ActionType_OP_FORWARD)] ForwardDelegate_Action ForwardAction;
1046
[case(ActionType_OP_DELEGATE)] ForwardDelegate_Action DelegateAction;
1047
[case(ActionType_OP_DELETE)];
1048
[case(ActionType_OP_MARK_AS_READ)];
1051
typedef [flag(NDR_NOALIGN)] struct {
1052
ActionType ActionType;
1053
uint32 ActionFlavor;
1055
[switch_is(ActionType)] ActionData ActionDataBuffer;
1058
typedef [flag(NDR_NOALIGN)] struct {
1059
uint16 ActionLength;
1060
[subcontext(0),subcontext_size(ActionLength),flag(NDR_REMAINING)] ActionBlockData ActionBlockData;
1063
typedef [flag(NDR_NOALIGN)] struct {
1065
ActionBlock ActionBlock[count];
1068
typedef [public,nodiscriminant,flag(NDR_NOALIGN)] union {
1070
[case(PT_I2)] uint16 i;
1071
[case(PT_LONG)] uint32 l;
1072
[case(PT_DOUBLE)] double dbl;
1073
[case(PT_ERROR)] uint32 err;
1074
[case(PT_BOOLEAN)] uint8 b;
1075
[case(PT_I8)] dlong d;
1076
[case(PT_STRING8)] raw8string lpszA;
1077
[case(PT_UNICODE)][flag(STR_NULLTERM)] string lpszW;
1078
[case(PT_SYSTIME)] FILETIME ft;
1079
[case(PT_CLSID)] GUID lpguid;
1080
[case(PT_SRESTRICT)] mapi_SRestriction_wrap Restrictions;
1081
[case(PT_ACTIONS)] RuleAction RuleAction;
1082
[case(PT_BINARY)] SBinary_short bin;
1083
[case(PT_SVREID)] SBinary_short bin;
1084
[case(PT_MV_LONG)] mapi_MV_LONG_STRUCT MVl;
1085
[case(PT_MV_STRING8)] mapi_SLPSTRArray MVszA;
1086
[case(PT_MV_UNICODE)] mapi_SLPSTRArrayW MVszW;
1087
[case(PT_MV_CLSID)] mapi_SGuidArray MVguid;
1088
[case(PT_MV_BINARY)] mapi_SBinaryArray MVbin;
1089
} mapi_SPropValue_CTR;
1091
typedef [public,flag(NDR_NOALIGN)] struct {
1093
[switch_is(ulPropTag & 0xFFFF)] mapi_SPropValue_CTR value;
1096
typedef [public,flag(NDR_NOALIGN)] struct {
1098
[flag(NDR_REMAINING)]mapi_SPropValue lpProps[cValues];
1099
} mapi_SPropValue_array;
1101
typedef [flag(NDR_NOALIGN)] struct {
1103
MAPITAGS aulPropTag[cValues];
1104
} mapi_SPropTagArray;
1106
typedef [enum8bit, flag(NDR_PAHEX)] enum {
1112
/**************************/
1113
/* EcDoRpc Function 0x1 */
1114
typedef [nopush,nopull,flag(NDR_NOALIGN)] struct {
1117
typedef [nopush,nopull,flag(NDR_NOALIGN)] struct {
1120
/**************************/
1121
/* EcDoRpc Function 0x2 */
1122
typedef [enum8bit] enum {
1123
OpenModeFlags_Folder = 0x0,
1124
OpenModeFlags_SoftDeleted = 0x4
1125
} OpenFolder_OpenModeFlags;
1127
typedef [flag(NDR_NOALIGN)] struct {
1130
OpenFolder_OpenModeFlags OpenModeFlags;
1133
typedef [flag(NDR_NOALIGN)] struct {
1135
uint16 CheapServerCount;
1136
astring Servers[ServerCount];
1137
} OpenFolder_Replicas;
1139
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1141
[case(0x1)] OpenFolder_Replicas Replicas;
1144
typedef [flag(NDR_NOALIGN)] struct {
1147
[switch_is(IsGhosted)] IsGhosted Ghost;
1150
/**************************/
1151
/* EcDoRpc Function 0x3 */
1152
typedef [enum8bit] enum {
1153
StringType_NONE = 0x0,
1154
StringType_EMPTY = 0x1,
1155
StringType_STRING8 = 0x2,
1156
StringType_UNICODE_REDUCED = 0x3,
1157
StringType_UNICODE = 0x4
1160
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1163
[case(0x2)] raw8string lpszA;
1164
[case(0x3)] raw8string lpszW_reduced;
1165
[case(0x4)] [flag(STR_NULLTERM)] string lpszW;
1168
typedef [flag(NDR_NOALIGN)] struct {
1169
StringType StringType;
1170
[switch_is(StringType)] String String;
1173
typedef [enum8bit] enum {
1177
OpenSoftDelete = 0x4
1178
} OpenMessage_OpenModeFlags;
1180
typedef [flag(NDR_NOALIGN)] struct {
1184
OpenMessage_OpenModeFlags OpenModeFlags;
1188
typedef [enum16bit, flag(NDR_PAHEX)] enum {
1189
CP_USASCII = 0x04E4,
1190
CP_UNICODE = 0x04B0,
1191
CP_JAUTODETECT = 0xC6F4,
1192
CP_KAUTODETECT = 0xC705,
1193
CP_ISO2022JPESC = 0xC42D,
1194
CP_ISO2022JPSIO = 0xC42E
1197
typedef [enum8bit, flag(NDR_PAHEX)] enum {
1204
typedef [enum8bit, flag(NDR_PAHEX)] enum {
1205
SINGLE_RECIPIENT = 0x0,
1206
DISTRIBUTION_LIST = 0x1
1209
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1210
[case(0x1)] uint8 prefix_size;
1212
} recipient_AddressPrefixUsed;
1214
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1215
[case(0x1)] addr_type display_type;
1217
} recipient_DisplayType;
1219
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1220
[case(0x1)] astring recipient_x500name;
1224
/* We're covering the PersonalDistributionList1 (0x0006) and PersonalDistributionList2
1225
(0x0007) variations here, since we mask off the low bit in the switch. */
1226
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1227
[case(0x6)] SBinary_short entryid;
1229
} recipient_EntryId;
1231
/* We're covering the PersonalDistributionList1 (0x0006) and PersonalDistributionList2
1232
(0x0007) variations here, since we mask off the low bit in the switch. */
1233
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1234
[case(0x6)] SBinary_short searchkey;
1236
} recipient_SearchKey;
1238
/* Present if the Type field is set to NoType (0x0) and the O flag (0x8000) is set */
1239
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1240
[case(0x8000)] astring lpszA;
1242
} recipient_AddressType;
1244
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1245
[case(0x400)] raw8string lpszA;
1246
[case(0x600)][flag(STR_NULLTERM)] string lpszW;
1248
} recipient_SimpleDisplayName;
1250
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1251
[case(0x20)] raw8string lpszA;
1252
[case(0x220)][flag(STR_NULLTERM)] string lpszW;
1254
} recipient_TransmittableDisplayName;
1256
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1257
[case(0x10)] raw8string lpszA;
1258
[case(0x210)][flag(STR_NULLTERM)] string lpszW;
1260
} recipient_DisplayName;
1262
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1263
[case(0x8)] astring lpszA;
1264
[case(0x208)][flag(STR_NULLTERM)] string lpszW;
1266
} recipient_EmailAddress;
1268
typedef [flag(NDR_NOALIGN)] struct {
1269
uint16 RecipientFlags;
1270
[switch_is(RecipientFlags & 0x0007)] recipient_AddressPrefixUsed AddressPrefixUsed;
1271
[switch_is(RecipientFlags & 0x0007)] recipient_DisplayType DisplayType;
1272
[switch_is(RecipientFlags & 0x0007)] recipient_X500DN X500DN;
1273
[switch_is(RecipientFlags & 0x0006)] recipient_EntryId EntryId;
1274
[switch_is(RecipientFlags & 0x0006)] recipient_SearchKey SearchKey;
1275
[switch_is(RecipientFlags & 0x8007)] recipient_AddressType AddressType;
1276
[switch_is(RecipientFlags & 0x0208)] recipient_EmailAddress EmailAddress;
1277
[switch_is(RecipientFlags & 0x0210)] recipient_DisplayName DisplayName;
1278
[switch_is(RecipientFlags & 0x0600)] recipient_SimpleDisplayName SimpleDisplayName;
1279
[switch_is(RecipientFlags & 0x0220)] recipient_TransmittableDisplayName TransmittableDisplayName;
1281
// TODO: figure out if "layout" can go
1283
// TODO: convert this to a proper structure - see if we already have one.
1284
[flag(NDR_REMAINING)] DATA_BLOB prop_values;
1287
typedef [flag(NDR_NOALIGN)] struct {
1288
boolean8 HasNamedProperties;
1289
TypedString SubjectPrefix;
1290
TypedString NormalizedSubject;
1291
uint16 RecipientCount;
1292
mapi_SPropTagArray RecipientColumns;
1294
OpenRecipientRow RecipientRows[RowCount];
1297
/**************************/
1298
/* EcDoRpc Function 0x4 */
1299
typedef [bitmap8bit] bitmap {
1300
TableFlags_Associated = 0x2, /* only for GetContentsTable */
1301
TableFlags_Depth = 0x4, /* only for GetHierarchyTable */
1302
TableFlags_DeferredErrors = 0x8,
1303
TableFlags_NoNotifications = 0x10,
1304
TableFlags_SoftDeletes = 0x20,
1305
TableFlags_UseUnicode = 0x40,
1306
TableFlags_SuppressNotifications = 0x80
1309
typedef [flag(NDR_NOALIGN)] struct {
1311
TableFlags TableFlags;
1312
} GetHierarchyTable_req;
1314
typedef [flag(NDR_NOALIGN)] struct {
1316
} GetHierarchyTable_repl;
1318
/**************************/
1319
/* EcDoRpc Function 0x5 */
1320
typedef [flag(NDR_NOALIGN)] struct {
1322
TableFlags TableFlags;
1323
} GetContentsTable_req;
1325
typedef [flag(NDR_NOALIGN)] struct {
1327
} GetContentsTable_repl;
1329
/**************************/
1330
/* EcDoRpc Function 0x6 */
1331
typedef [flag(NDR_NOALIGN)] struct {
1335
boolean8 AssociatedFlag;
1336
} CreateMessage_req;
1338
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1340
[case(0x1)] hyper MessageId;
1341
} CreateMessage_MessageId;
1343
typedef [flag(NDR_NOALIGN)] struct {
1344
boolean8 HasMessageId;
1345
[switch_is(HasMessageId)] CreateMessage_MessageId MessageId;
1346
} CreateMessage_repl;
1348
/*************************/
1349
/* EcDoRpc Function 0x7 */
1350
typedef [flag(NDR_NOALIGN)] struct {
1351
uint16 PropertySizeLimit;
1354
MAPITAGS properties[prop_count];
1357
typedef [flag(NDR_NOALIGN)] struct {
1359
[flag(NDR_REMAINING)] DATA_BLOB prop_data;
1362
/*************************/
1363
/* EcDoRpc Function 0x8 */
1364
typedef [flag(NDR_NOALIGN)] struct {
1365
uint16 PropertySizeLimit;
1369
typedef [flag(NDR_NOALIGN)] struct {
1370
mapi_SPropValue_array properties;
1373
/*************************/
1374
/* EcDoRpc Function 0x9 */
1375
typedef [flag(NDR_NOALIGN)] struct {
1378
typedef [flag(NDR_NOALIGN)] struct {
1380
MAPITAGS tags[count];
1383
/*************************/
1384
/* EcDoRpc Function 0xa */
1385
typedef [flag(NDR_NOALIGN)] struct {
1386
uint32 index; /* index into array of property tags */
1387
MAPITAGS property_tag; /* property for which there was an error */
1388
MAPISTATUS error_code; /* the error that occurred for this property */
1391
typedef [flag(NDR_NOALIGN)] struct {
1392
[subcontext(2)] mapi_SPropValue_array values;
1395
typedef [flag(NDR_NOALIGN)] struct {
1396
uint16 PropertyProblemCount;
1397
PropertyProblem PropertyProblem[PropertyProblemCount];
1400
/*************************/
1401
/* EcDoRpc Function 0xb */
1402
typedef [flag(NDR_NOALIGN)] struct {
1404
MAPITAGS tags[count];
1407
typedef [flag(NDR_NOALIGN)] struct {
1408
uint16 PropertyProblemCount;
1409
PropertyProblem PropertyProblem[PropertyProblemCount];
1412
/*************************/
1413
/* EcDoRpc Function 0xc */
1414
typedef [enum8bit] enum {
1415
KeepOpenReadOnly = 0x9,
1416
KeepOpenReadWrite = 0xA,
1420
typedef [flag(NDR_NOALIGN)] struct {
1423
} SaveChangesMessage_req;
1425
typedef [flag(NDR_NOALIGN)] struct {
1428
} SaveChangesMessage_repl;
1430
/*************************/
1431
/* EcDoRpc Function 0xd */
1432
typedef [flag(NDR_NOALIGN)] struct {
1434
} RemoveAllRecipients_req;
1436
typedef [flag(NDR_NOALIGN)] struct {
1438
} RemoveAllRecipients_repl;
1440
/*************************/
1441
/* EcDoRpc Function 0xe */
1444
* MODRECIP_NULL and INVALID are not part of the msdn flags
1445
* but are added for printing support
1447
typedef [enum8bit,flag(NDR_PAHEX)] enum {
1448
MODRECIP_NULL = 0x0,
1449
MODRECIP_INVALID = 0x1,
1451
MODRECIP_MODIFY = 0x4,
1452
MODRECIP_REMOVE = 0x8
1455
typedef [flag(NDR_NOALIGN)]struct {
1457
ulRecipClass RecipClass;
1458
[subcontext(2),flag(NDR_REMAINING)] RecipientRow RecipientRow;
1459
} ModifyRecipientRow;
1461
typedef [flag(NDR_NOALIGN)] struct {
1463
MAPITAGS properties[prop_count];
1465
ModifyRecipientRow RecipientRow[cValues];
1466
} ModifyRecipients_req;
1468
typedef [flag(NDR_NOALIGN)] struct {
1470
} ModifyRecipients_repl;
1472
/*************************/
1473
/* EcDoRpc Function 0xf */
1474
typedef [flag(NDR_NOALIGN)] struct {
1477
} ReadRecipients_req;
1479
typedef [flag(NDR_NOALIGN)] struct {
1481
ulRecipClass RecipClass;
1482
CODEPAGEID CodePageId;
1484
[subcontext(2)] RecipientRow RecipientRow;
1487
typedef [flag(NDR_NOALIGN)] struct {
1489
ReadRecipientRow RecipientRows[RowCount];
1490
} ReadRecipients_repl;
1492
/*************************/
1493
/* EcDoRpc Function 0x10 */
1494
typedef [public,flag(NDR_NOALIGN)] struct {
1495
ulRecipClass RecipientType;
1496
CODEPAGEID CodePageId;
1498
[subcontext(2)]RecipientRow RecipientRow;
1501
typedef [flag(NDR_NOALIGN)] struct {
1503
} ReloadCachedInformation_req;
1505
typedef [flag(NDR_NOALIGN)] struct {
1506
boolean8 HasNamedProperties;
1507
TypedString SubjectPrefix;
1508
TypedString NormalizedSubject;
1509
uint16 RecipientCount;
1510
mapi_SPropTagArray RecipientColumns;
1512
OpenRecipientRow RecipientRows[RowCount];
1513
} ReloadCachedInformation_repl;
1515
/*************************/
1516
/* EcDoRpc Function 0x11 */
1518
typedef [bitmap8bit] bitmap {
1519
SUPPRESS_RECEIPT = 0x01,
1520
CLEAR_READ_FLAG = 0x04,
1521
GENERATE_RECEIPT_ONLY = 0x10,
1522
CLEAR_RN_PENDING = 0x20,
1523
CLEAR_NRN_PENDING = 0x40
1526
/* TODO: there is a variation that can provide "client data"
1527
here clientdata is a uint8 ClientData[24], but its
1528
existence within the request depends on flags associated to
1529
logon_id: it the private flag set or not
1531
typedef [flag(NDR_NOALIGN)] struct {
1534
/* TEMP HACK for editing notes without crashing Outlook:
1535
[flag(NDR_REMAINING)] DATA_BLOB clientdata; */
1536
} SetMessageReadFlag_req;
1538
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1540
[case(0x1)] uint8 LogonId;
1541
} SetMessageReadFlag_LogonId;
1543
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1545
[case(0x1)] uint8 ClientData[24];
1546
} SetMessageReadFlag_ClientData;
1548
typedef [flag(NDR_NOALIGN)] struct {
1549
boolean8 ReadStatusChanged;
1550
[switch_is(ReadStatusChanged)] SetMessageReadFlag_LogonId LogonId;
1551
/* TEMP HACK for editing notes without crashing Outlook:
1552
[switch_is(ReadStatusChanged)]
1553
SetMessageReadFlag_ClientData ClientData; */
1554
} SetMessageReadFlag_repl;
1556
/*************************/
1557
/* EcDoRpc Function 0x12 */
1558
typedef [enum8bit] enum {
1559
SetColumns_TBL_SYNC = 0x0,
1560
SetColumns_TBL_ASYNC = 0x1
1563
typedef [enum8bit] enum {
1564
TBLSTAT_COMPLETE = 0x0,
1565
TBLSTAT_SORTING = 0x9,
1566
TBLSTAT_SORT_ERROR = 0xA,
1567
TBLSTAT_SETTING_COLS = 0xB,
1568
TBLSTAT_SETCOL_ERROR = 0xD,
1569
TBLSTAT_RESTRICTING = 0xE,
1570
TBLSTAT_RESTRICT_ERROR = 0xF
1573
typedef [flag(NDR_NOALIGN)] struct {
1574
SetColumnsFlags SetColumnsFlags;
1576
MAPITAGS properties[prop_count];
1579
typedef [flag(NDR_NOALIGN)] struct {
1580
TableStatus TableStatus;
1583
/**************************/
1584
/* EcDoRpc Function 0x13 */
1585
typedef [enum8bit, flag(NDR_PAHEX)] enum {
1590
typedef [enum8bit, flag(NDR_PAHEX)] enum {
1591
TABLE_SORT_ASCEND = 0x0,
1592
TABLE_SORT_DESCEND = 0x1,
1593
TABLE_SORT_MAXIMUM_CATEGORY = 0x4
1595
TABLE_SORT_COMBINE = 0x1,
1596
TABLE_SORT_DESCEND = 0x2
1600
typedef [public, flag(NDR_NOALIGN)] struct _SSortOrder{
1605
typedef [public, flag(NDR_NOALIGN)] struct _SSortOrderSet {
1609
SSortOrder aSort[cSorts];
1612
typedef [flag(NDR_NOALIGN)] struct {
1613
uint8 SortTableFlags;
1614
SSortOrderSet lpSortCriteria;
1617
typedef [flag(NDR_NOALIGN)] struct {
1618
TableStatus TableStatus;
1621
/**************************/
1622
/* EcDoRpc Function 0x14 */
1623
typedef [flag(NDR_NOALIGN)] struct {
1625
mapi_SRestriction_and res[cRes];
1626
} mapi_SAndRestriction;
1628
typedef [flag(NDR_NOALIGN)] struct {
1630
mapi_SRestriction_or res[cRes];
1631
} mapi_SOrRestriction;
1633
typedef [flag(NDR_NOALIGN)] struct {
1634
mapi_SRestriction_wrap res;
1635
} mapi_SNotRestriction;
1637
typedef [noprint, bitmap32bit] bitmap {
1638
FL_FULLSTRING = 0x00000,
1639
FL_SUBSTRING = 0x00001,
1640
FL_PREFIX = 0x00002,
1641
FL_IGNORECASE = 0x10000,
1642
FL_IGNORENONSPACE = 0x20000,
1646
typedef [flag(NDR_NOALIGN)] struct {
1649
mapi_SPropValue lpProp;
1650
} mapi_SContentRestriction;
1652
typedef [enum8bit, flag(NDR_PAHEX)] enum {
1657
typedef [flag(NDR_NOALIGN)] struct {
1661
} mapi_SBitmaskRestriction;
1663
typedef [enum8bit, flag(NDR_PAHEX)] enum {
1664
RELOP_LT = 0x0, /* < */
1665
RELOP_LE = 0x1, /* <= */
1666
RELOP_GT = 0x2, /* > */
1667
RELOP_GE = 0x3, /* >= */
1668
RELOP_EQ = 0x4, /* == */
1669
RELOP_NE = 0x5, /* != */
1670
RELOP_RE = 0x6 /* LIKE (Regular expression) */
1673
typedef [flag(NDR_NOALIGN)] struct {
1677
} mapi_SSizeRestriction;
1679
typedef [flag(NDR_NOALIGN)] struct {
1682
mapi_SPropValue lpProp;
1683
} mapi_SPropertyRestriction;
1685
typedef [flag(NDR_NOALIGN)] struct {
1687
MAPITAGS ulPropTag1;
1688
MAPITAGS ulPropTag2;
1689
} mapi_SCompareProps;
1691
typedef [flag(NDR_NOALIGN)] struct {
1693
} mapi_SExistRestriction;
1695
typedef [flag(NDR_NOALIGN)] struct {
1696
MAPITAGS ulSubObject;
1697
mapi_SRestriction_sub res[ulSubObject - ulSubObject + 1]; /* nasty hack - generates fake pointer */
1698
} mapi_SSubRestriction;
1700
typedef [nopush,nopull,noprint,nodiscriminant] union {
1702
[case(0x1)] mapi_SRestriction_comment *res;
1703
} RestrictionVariable;
1705
typedef [flag(NDR_NOALIGN)] struct {
1706
uint8 TaggedValuesCount;
1707
mapi_SPropValue TaggedValues[TaggedValuesCount];
1708
boolean8 RestrictionPresent;
1709
[switch_is(RestrictionPresent)] RestrictionVariable Restriction;
1710
} mapi_SCommentRestriction;
1712
typedef [public,nodiscriminant] union {
1713
[case(RES_AND)] mapi_SAndRestriction resAnd;
1714
[case(RES_OR)] mapi_SOrRestriction resOr;
1715
[case(RES_NOT)] mapi_SNotRestriction resNot;
1716
[case(RES_CONTENT)] mapi_SContentRestriction resContent;
1717
[case(RES_PROPERTY)] mapi_SPropertyRestriction resProperty;
1718
[case(RES_COMPAREPROPS)] mapi_SCompareProps resCompareProps;
1719
[case(RES_BITMASK)] mapi_SBitmaskRestriction resBitmask;
1720
[case(RES_SIZE)] mapi_SSizeRestriction resSize;
1721
[case(RES_EXIST)] mapi_SExistRestriction resExist;
1722
[case(RES_SUBRESTRICTION)] mapi_SSubRestriction resSub;
1723
[case(RES_COMMENT)] mapi_SCommentRestriction resComment;
1725
} mapi_SRestriction_CTR;
1727
typedef [public,flag(NDR_NOALIGN)] struct {
1729
[switch_is(rt)] mapi_SRestriction_CTR res;
1730
} mapi_SRestriction;
1732
typedef [public,flag(NDR_NOALIGN)] struct _mapi_SRestriction {
1734
[switch_is(rt)] mapi_SRestriction_CTR res;
1735
} mapi_SRestriction_and;
1737
typedef [public,flag(NDR_NOALIGN)] struct _mapi_SRestriction {
1739
[switch_is(rt)] mapi_SRestriction_CTR res;
1740
} mapi_SRestriction_or;
1742
typedef [public,flag(NDR_NOALIGN)] struct _mapi_SRestriction {
1744
[switch_is(rt)] mapi_SRestriction_CTR res;
1745
} mapi_SRestriction_sub;
1747
typedef [public,flag(NDR_NOALIGN)] struct _mapi_SRestriction {
1749
[switch_is(rt)] mapi_SRestriction_CTR res;
1750
} mapi_SRestriction_comment;
1752
typedef [flag(NDR_NOALIGN)] struct {
1754
[subcontext(2)] mapi_SRestriction restrictions;
1757
typedef [flag(NDR_NOALIGN)] struct {
1758
TableStatus TableStatus;
1761
/**************************/
1762
/* EcDoRpc Function 0x15 */
1763
typedef [v1_enum] enum {
1765
TBL_EMPTY_CATEGORY = 0x2,
1766
TBL_EXPANDED_CATEGORY = 0x3,
1767
TBL_COLLAPSED_CATEGORY = 0x4
1770
typedef [enum8bit] enum {
1772
TBL_NOADVANCE = 0x1,
1773
TBL_ENABLEPACKEDBUFFERS = 0x2
1776
typedef [flag(NDR_NOALIGN)] struct {
1777
QueryRowsFlags QueryRowsFlags;
1782
typedef [nopush,nopull,flag(NDR_NOALIGN)] struct {
1785
[flag(NDR_REMAINING)]DATA_BLOB RowData;
1788
/**************************/
1789
/* EcDoRpc Function 0x16 */
1790
typedef [flag(NDR_NOALIGN)] struct {
1793
typedef [flag(NDR_NOALIGN)] struct {
1794
TableStatus TableStatus;
1797
/**************************/
1798
/* EcDoRpc Function 0x17 */
1799
typedef [flag(NDR_NOALIGN)] struct {
1800
} QueryPosition_req;
1802
typedef [flag(NDR_NOALIGN)] struct {
1805
} QueryPosition_repl;
1807
/**************************/
1808
/* EcDoRpc Function 0x18 */
1809
typedef [enum8bit] enum {
1810
BOOKMARK_BEGINNING = 0x0,
1811
BOOKMARK_CURRENT = 0x1,
1816
typedef [flag(NDR_NOALIGN)] struct {
1819
boolean8 WantRowMovedCount;
1822
typedef [flag(NDR_NOALIGN)] struct {
1823
boolean8 HasSoughtLess;
1827
/**************************/
1828
/* EcDoRpc Function 0x19 */
1829
typedef [flag(NDR_NOALIGN)] struct {
1830
SBinary_short Bookmark;
1832
boolean8 WantRowMovedCount;
1833
} SeekRowBookmark_req;
1835
typedef [flag(NDR_NOALIGN)] struct {
1836
boolean8 RowNoLongerVisible;
1837
boolean8 HasSoughtLess;
1839
} SeekRowBookmark_repl;
1841
/**************************/
1842
/* EcDoRpc Function 0x1a */
1843
typedef [flag(NDR_NOALIGN)] struct {
1845
uint32 ulDenominator;
1846
} SeekRowApprox_req;
1848
typedef [flag(NDR_NOALIGN)] struct {
1849
} SeekRowApprox_repl;
1851
/**************************/
1852
/* EcDoRpc Function 0x1b */
1853
typedef [flag(NDR_NOALIGN)] struct {
1854
} CreateBookmark_req;
1856
typedef [flag(NDR_NOALIGN)] struct {
1857
SBinary_short bookmark;
1858
} CreateBookmark_repl;
1860
/**************************/
1861
/* EcDoRpc Function 0x1c */
1862
typedef [enum8bit] enum {
1863
FOLDER_GENERIC = 0x1,
1867
typedef [enum8bit] enum {
1868
MAPI_FOLDER_ANSI = 0x0,
1869
MAPI_FOLDER_UNICODE = 0x1
1872
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1873
[case(MAPI_FOLDER_ANSI)] raw8string lpszA;
1874
[case(MAPI_FOLDER_UNICODE)][flag(STR_NULLTERM)] string lpszW;
1877
typedef [enum16bit] enum {
1879
OPEN_IF_EXISTS = 0x0001
1882
typedef [flag(NDR_NOALIGN)] struct {
1884
FOLDER_TYPE ulFolderType;
1885
FOLDER_STRING ulType;
1886
FOLDER_FLAGS ulFlags;
1887
[switch_is(ulType)] LPTSTR FolderName;
1888
[switch_is(ulType)] LPTSTR FolderComment;
1891
typedef [flag(NDR_NOALIGN)] struct {
1894
[switch_is(IsGhosted)] IsGhosted Ghost;
1895
} CreateFolder_GhostInfo;
1897
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
1899
[case(0x1)] CreateFolder_GhostInfo GhostInfo;
1900
} CreateFolder_GhostUnion;
1902
typedef [flag(NDR_NOALIGN)] struct {
1904
boolean8 IsExistingFolder;
1905
[switch_is(IsExistingFolder)] CreateFolder_GhostUnion GhostUnion;
1906
} CreateFolder_repl;
1908
/**************************/
1909
/* EcDoRpc Function 0x1d */
1910
typedef [bitmap8bit] bitmap {
1913
DELETE_HARD_DELETE = 0x10
1914
} DeleteFolderFlags;
1916
typedef [flag(NDR_NOALIGN)] struct {
1917
DeleteFolderFlags DeleteFolderFlags;
1921
typedef [flag(NDR_NOALIGN)] struct {
1922
boolean8 PartialCompletion;
1923
} DeleteFolder_repl;
1925
/**************************/
1926
/* EcDoRpc Function 0x1e */
1927
typedef [flag(NDR_NOALIGN)] struct {
1928
boolean8 WantAsynchronous;
1929
boolean8 NotifyNonRead;
1931
hyper message_ids[cn_ids];
1932
} DeleteMessages_req;
1934
typedef [flag(NDR_NOALIGN)] struct {
1935
boolean8 PartialCompletion;
1936
} DeleteMessages_repl;
1938
/**************************/
1939
/* EcDoRpc Function 0x1f */
1940
typedef [flag(NDR_NOALIGN)] struct {
1942
} GetMessageStatus_req;
1944
/**************************/
1945
/* EcDoRpc Function 0x20 */
1946
typedef [bitmap32bit] bitmap {
1947
MSGSTATUS_HIGHLIGHTED = 0x1,
1948
MSGSTATUS_TAGGED = 0x2,
1949
MSGSTATUS_HIDDEN = 0x4,
1950
MSGSTATUS_DELMARKED = 0x8,
1951
MSGSTATUS_REMOTE_DOWNLOAD = 0x1000,
1952
MSGSTATUS_REMOTE_DELETE = 0x2000
1956
typedef [flag(NDR_NOALIGN)] struct {
1959
ulMessageStatus ulNewStatusMask;
1960
} SetMessageStatus_req;
1962
typedef [flag(NDR_NOALIGN)] struct {
1963
ulMessageStatus ulOldStatus;
1964
} SetMessageStatus_repl;
1966
/**************************/
1967
/* EcDoRpc Function 0x21 */
1968
typedef [flag(NDR_NOALIGN)] struct {
1970
TableFlags TableFlags;
1971
} GetAttachmentTable_req;
1973
typedef [flag(NDR_NOALIGN)] struct {
1974
} GetAttachmentTable_repl;
1976
/*************************/
1977
/* EcDoRpc Function 0x22 */
1978
typedef [enum8bit] enum {
1979
OpenAttachmentFlags_ReadOnly = 0x0,
1980
OpenAttachmentFlags_ReadWrite = 0x1,
1981
OpenAttachmentFlags_BestAccess = 0x3
1982
} OpenAttachmentFlags;
1984
typedef [flag(NDR_NOALIGN)] struct {
1986
OpenAttachmentFlags OpenAttachmentFlags;
1987
uint32 AttachmentID;
1990
typedef [flag(NDR_NOALIGN)] struct {
1993
/*************************/
1994
/* EcDoRpc Function 0x23 */
1995
typedef [flag(NDR_NOALIGN)] struct {
1999
typedef [flag(NDR_NOALIGN)] struct {
2000
uint32 AttachmentID;
2001
} CreateAttach_repl;
2003
/*************************/
2004
/* EcDoRpc Function 0x24 */
2005
typedef [flag(NDR_NOALIGN)] struct {
2006
uint32 AttachmentID;
2010
typedef [flag(NDR_NOALIGN)] struct {
2011
} DeleteAttach_repl;
2013
/*************************/
2014
/* EcDoRpc Function 0x25 */
2015
typedef [flag(NDR_NOALIGN)] struct {
2017
SaveFlags SaveFlags;
2018
} SaveChangesAttachment_req;
2020
typedef [flag(NDR_NOALIGN)] struct {
2021
} SaveChangesAttachment_repl;
2023
/*************************/
2024
/* EcDoRpc Function 0x26 */
2025
typedef [flag(NDR_NOALIGN)] struct {
2027
raw8string lpszMessageClass;
2028
} SetReceiveFolder_req;
2030
typedef [flag(NDR_NOALIGN)] struct {
2031
} SetReceiveFolder_repl;
2033
/*************************/
2034
/* EcDoRpc Function 0x27 */
2035
typedef [flag(NDR_NOALIGN)] struct {
2036
astring MessageClass;
2037
} GetReceiveFolder_req;
2039
typedef [flag(NDR_NOALIGN)] struct {
2041
astring MessageClass;
2042
} GetReceiveFolder_repl;
2044
/*************************/
2045
/* EcDoRpc Function 0x29 */
2046
typedef [bitmap16bit] bitmap {
2047
fnevCriticalError = 0x0001,
2048
fnevNewMail = 0x0002,
2049
fnevObjectCreated = 0x0004,
2050
fnevObjectDeleted = 0x0008,
2051
fnevObjectModified = 0x0010,
2052
fnevObjectMoved = 0x0020,
2053
fnevObjectCopied = 0x0040,
2054
fnevSearchComplete = 0x0080,
2055
fnevTableModified = 0x0100,
2056
fnevStatusObjectModified = 0x0200,
2057
fnevReserved = 0x0400,
2062
} NotificationFlags;
2064
typedef [nodiscriminant,flag(NDR_NOALIGN)] union {
2065
[case(0x0)] hyper ID;
2069
typedef [flag(NDR_NOALIGN)] struct {
2071
NotificationFlags NotificationFlags;
2072
boolean8 WantWholeStore;
2073
[switch_is(WantWholeStore)] hyperbool FolderId;
2074
[switch_is(WantWholeStore)] hyperbool MessageId;
2075
} RegisterNotification_req;
2077
typedef [flag(NDR_NOALIGN)] struct {
2078
} RegisterNotification_repl;
2080
/*************************/
2081
/* EcDoRpc Function 0x2a */
2082
typedef [bitmap32bit] bitmap {
2084
MSGFLAG_UNMODIFIED = 0x2,
2085
MSGFLAG_SUBMIT = 0x4,
2086
MSGFLAG_UNSENT = 0x8,
2087
MSGFLAG_HASATTACH = 0x10,
2088
MSGFLAG_FROMME = 0x20,
2089
MSGFLAG_ASSOCIATED = 0x40,
2090
MSGFLAG_RESEND = 0x80,
2091
MSGFLAG_RN_PENDING = 0x100,
2092
MSGFLAG_NRN_PENDING = 0x200
2095
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
2096
[case(0x0)] raw8string lpszA;
2097
[case(0x1)][flag(STR_NULLTERM)] string lpszW;
2100
typedef [public,nodiscriminant, flag(NDR_NOALIGN)] union {
2101
[case(0x1)] uint8 bytes[6];
2102
[default] dlong value;
2105
typedef [public,flag(NDR_NOALIGN)] struct {
2107
[switch_is(1)] GLOBCNT GLOBCNT;
2110
typedef [public,flag(NDR_NOALIGN)] struct {
2112
[switch_is(1)] GLOBCNT GLOBCNT;
2113
} ShortTermID; /* MID, FID, CN */
2115
typedef [public,flag(NDR_NOALIGN)] struct {
2121
typedef [enum16bit] enum {
2122
TABLE_CHANGED = 0x1,
2123
TABLE_ROW_ADDED = 0x3,
2124
TABLE_ROW_DELETED = 0x4,
2125
TABLE_ROW_MODIFIED = 0x5,
2126
TABLE_RESTRICT_DONE = 0x7
2127
} RichTableNotificationType;
2129
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
2132
[default] MAPITAGS Tags[level];
2135
/* NewMailNotification: case 0x2 and 0x8002 */
2136
typedef [flag(NDR_NOALIGN)] struct {
2139
MsgFlags MessageFlags;
2140
boolean8 UnicodeFlag;
2141
[switch_is(UnicodeFlag)] MessageClass MessageClass;
2142
} NewMailNotification;
2144
/* FolderCreatedNotification: case 0x4 */
2145
typedef [flag(NDR_NOALIGN)] struct {
2149
[switch_is(TagCount)] NotificationTags NotificationTags;
2150
} FolderCreatedNotification;
2152
/* FolderDeletedNotification: case 0x8 */
2153
typedef [flag(NDR_NOALIGN)] struct {
2156
} FolderDeletedNotification;
2158
/* FolderModifiedNotification: case 0x10 */
2159
typedef [flag(NDR_NOALIGN)] struct {
2162
[switch_is(TagCount)] NotificationTags NotificationTags;
2163
} FolderModifiedNotification_10;
2165
/* FolderMoveCopyNotification: case 0x20 and 0x40 */
2166
typedef [flag(NDR_NOALIGN)] struct {
2171
} FolderMoveCopyNotification;
2173
/* SearchCompleteNotification: case 0x80 */
2174
typedef [flag(NDR_NOALIGN)] struct {
2176
} SearchCompleteNotification;
2178
/* HierarchyTable: case 0x100 */
2179
typedef [flag(NDR_NOALIGN)] struct {
2181
hyper InsertAfterFID;
2182
[subcontext(2)] DATA_BLOB Columns;
2183
} HierarchyRowAddedNotification;
2185
typedef [flag(NDR_NOALIGN)] struct {
2187
} HierarchyRowDeletedNotification;
2189
typedef [flag(NDR_NOALIGN)] struct {
2191
hyper InsertAfterFID;
2192
[subcontext(2)] DATA_BLOB Columns;
2193
} HierarchyRowModifiedNotification;
2195
typedef [nodiscriminant] union {
2196
[case(TABLE_ROW_ADDED)] HierarchyRowAddedNotification HierarchyRowAddedNotification;
2197
[case(TABLE_ROW_DELETED)] HierarchyRowDeletedNotification HierarchyRowDeletedNotification;
2198
[case(TABLE_ROW_MODIFIED)] HierarchyRowModifiedNotification HierarchyRowModifiedNotification;
2200
} HierarchyTableChangeUnion;
2202
typedef [flag(NDR_NOALIGN)] struct {
2203
RichTableNotificationType TableEvent;
2204
[switch_is(TableEvent)] HierarchyTableChangeUnion HierarchyTableChangeUnion;
2205
} HierarchyTableChange;
2207
/* IcsNotification: case 0x200 */
2208
typedef [flag(NDR_NOALIGN)] struct {
2209
boolean8 HierChanged;
2214
/* FolderModifiedNotification: case 0x1010 */
2215
typedef [flag(NDR_NOALIGN)] struct {
2218
[switch_is(TagCount)] NotificationTags NotificationTags;
2219
uint32 TotalMessageCount;
2220
} FolderModifiedNotification_1010;
2222
/* FolderModifiedNotification: case 0x2010 */
2223
typedef [flag(NDR_NOALIGN)] struct {
2226
[switch_is(TagCount)] NotificationTags NotificationTags;
2227
uint32 UnreadMessageCount;
2228
} FolderModifiedNotification_2010;
2230
/* FolderModifiedNotification: case 0x3010 */
2231
typedef [flag(NDR_NOALIGN)] struct {
2234
[switch_is(TagCount)] NotificationTags NotificationTags;
2235
uint32 TotalMessageCount;
2236
uint32 UnreadMessageCount;
2237
} FolderModifiedNotification_3010;
2239
/* MessageCreatedNotification: case 0x8004 */
2240
typedef [flag(NDR_NOALIGN)] struct {
2244
[switch_is(TagCount)] NotificationTags NotificationTags;
2245
} MessageCreatedNotification;
2247
/* MessageDeletedNotification: case 0x8008 */
2248
typedef [flag(NDR_NOALIGN)] struct {
2251
} MessageDeletedNotification;
2253
/* MessageModifiedNotification: case 0x8010 */
2254
typedef [flag(NDR_NOALIGN)] struct {
2258
[switch_is(TagCount)] NotificationTags NotificationTags;
2259
} MessageModifiedNotification;
2261
/* MessageMoveCopyNotification: case 0x8020 and 0x8040 */
2262
typedef [flag(NDR_NOALIGN)] struct {
2267
} MessageMoveCopyNotification;
2269
/* ContentsTableChange: case 0x8100 and 0xc100 */
2270
typedef [flag(NDR_NOALIGN)] struct {
2274
hyper InsertAfterFID;
2275
hyper InsertAfterMID;
2276
uint32 InsertAfterInstance;
2277
[subcontext(2)] DATA_BLOB Columns;
2278
} ContentsRowAddedNotification;
2280
typedef [flag(NDR_NOALIGN)] struct {
2284
} ContentsRowDeletedNotification;
2286
typedef [flag(NDR_NOALIGN)] struct {
2290
hyper InsertAfterFID;
2291
hyper InsertAfterMID;
2292
uint32 InsertAfterInstance;
2293
[subcontext(2)] DATA_BLOB Columns;
2294
} ContentsRowModifiedNotification;
2296
typedef [nodiscriminant] union {
2297
[case(TABLE_ROW_ADDED)] ContentsRowAddedNotification ContentsRowAddedNotification;
2298
[case(TABLE_ROW_DELETED)] ContentsRowDeletedNotification ContentsRowDeletedNotification;
2299
[case(TABLE_ROW_MODIFIED)] ContentsRowModifiedNotification ContentsRowModifiedNotification;
2301
} ContentsTableChangeUnion;
2303
typedef [flag(NDR_NOALIGN)] struct {
2304
RichTableNotificationType TableEvent;
2305
[switch_is(TableEvent)] ContentsTableChangeUnion ContentsTableChangeUnion;
2306
} ContentsTableChange;
2308
/* SearchMessageCreatedNotification: case 0xc004 */
2309
typedef [flag(NDR_NOALIGN)] struct {
2314
[switch_is(TagCount)] NotificationTags NotificationTags;
2315
} SearchMessageCreatedNotification;
2317
/* SearchMessageRemovedNotification: case 0xc008 */
2318
typedef [flag(NDR_NOALIGN)] struct {
2322
} SearchMessageRemovedNotification;
2324
/* SearchMessageModifiedNotification: 0xc010 */
2325
typedef [flag(NDR_NOALIGN)] struct {
2329
[switch_is(TagCount)] NotificationTags NotificationTags;
2330
} SearchMessageModifiedNotification;
2332
typedef [nodiscriminant] union {
2333
[case(0x0002)] NewMailNotification NewMailNotification;
2334
[case(0x0004)] FolderCreatedNotification FolderCreatedNotification;
2335
[case(0x0008)] FolderDeletedNotification FolderDeletedNotification;
2336
[case(0x0010)] FolderModifiedNotification_10 FolderModifiedNotification_10;
2337
[case(0x0020)] FolderMoveCopyNotification FolderMoveNotification;
2338
[case(0x0040)] FolderMoveCopyNotification FolderCopyNotification;
2339
[case(0x0080)] SearchCompleteNotification SearchCompleteNotification;
2340
[case(0x0100)] HierarchyTableChange HierarchyTableChange;
2341
[case(0x0200)] IcsNotification IcsNotification;
2342
[case(0x1010)] FolderModifiedNotification_1010 FolderModifiedNotification_1010;
2343
[case(0x2010)] FolderModifiedNotification_2010 FolderModifiedNotification_2010;
2344
[case(0x3010)] FolderModifiedNotification_3010 FolderModifiedNotification_3010;
2345
[case(0x8002)] NewMailNotification NewMessageNotification;
2346
[case(0x8004)] MessageCreatedNotification MessageCreatedNotification;
2347
[case(0x8008)] MessageDeletedNotification MessageDeletedNotification;
2348
[case(0x8010)] MessageModifiedNotification MessageModifiedNotification;
2349
[case(0x8020)] MessageMoveCopyNotification MessageMoveNotification;
2350
[case(0x8040)] MessageMoveCopyNotification MessageCopyNotification;
2351
[case(0x8100)] ContentsTableChange ContentsTableChange;
2352
[case(0xc004)] SearchMessageCreatedNotification SearchMessageCreatedNotification;
2353
[case(0xc008)] SearchMessageRemovedNotification SearchMessageRemovedNotification;
2354
[case(0xc010)] SearchMessageModifiedNotification SearchMessageModifiedNotification;
2355
[case(0xc100)] ContentsTableChange SearchTableChange;
2358
typedef [flag(NDR_NOALIGN)] struct {
2359
uint32 NotificationHandle;
2361
NotificationFlags NotificationType;
2362
[switch_is(NotificationType)] NotificationData NotificationData;
2365
/*************************/
2366
/* EcDoRpc Function 0x2b */
2367
typedef [enum8bit] enum {
2368
OpenStream_ReadOnly = 0x0,
2369
OpenStream_ReadWrite = 0x1,
2370
OpenStream_Create = 0x2,
2371
OpenStream_BestAccess = 0x3
2372
} OpenStream_OpenModeFlags;
2374
typedef [flag(NDR_NOALIGN)] struct {
2376
MAPITAGS PropertyTag;
2377
OpenStream_OpenModeFlags OpenModeFlags;
2380
typedef [flag(NDR_NOALIGN)] struct {
2384
/*************************/
2385
/* EcDoRpc Function 0x2c */
2386
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
2387
[case(0xBABE)] uint32 value;
2391
typedef [flag(NDR_NOALIGN)] struct {
2393
[switch_is(ByteCount)] MaximumByteCount MaximumByteCount;
2396
typedef [flag(NDR_NOALIGN)] struct {
2397
[subcontext(2), flag(NDR_REMAINING)] DATA_BLOB data;
2400
/*************************/
2401
/* EcDoRpc Function 0x2d */
2402
typedef [flag(NDR_NOALIGN)] struct {
2403
[subcontext(2), flag(NDR_REMAINING)] DATA_BLOB data;
2407
typedef [flag(NDR_NOALIGN)] struct {
2411
/*************************/
2412
/* EcDoRpc Function 0x2e */
2413
typedef [flag(NDR_NOALIGN)] struct {
2418
typedef [flag(NDR_NOALIGN)] struct {
2422
/*************************/
2423
/* EcDoRpc Function 0x2f */
2424
typedef [flag(NDR_NOALIGN)] struct {
2426
} SetStreamSize_req;
2428
typedef [flag(NDR_NOALIGN)] struct {
2429
} SetStreamSize_repl;
2431
/*************************/
2432
/* EcDoRpc Function 0x30 */
2433
typedef [public, bitmap32bit, flag(NDR_PAHEX)] bitmap {
2434
STOP_SEARCH = 0x00000001,
2435
RESTART_SEARCH = 0x00000002,
2436
RECURSIVE_SEARCH = 0x00000004,
2437
SHALLOW_SEARCH = 0x00000008,
2438
FOREGROUND_SEARCH = 0x00000010,
2439
BACKGROUND_SEARCH = 0x00000020,
2440
CONTENT_INDEXED_SEARCH = 0x00010000,
2441
NON_CONTENT_INDEXED_SEARCH = 0x00020000,
2442
STATIC_SEARCH = 0x00040000
2445
typedef [flag(NDR_NOALIGN)] struct {
2446
[subcontext(2)] mapi_SRestriction res;
2447
uint16 FolderIdCount;
2448
hyper FolderIds[FolderIdCount];
2449
SearchFlags SearchFlags;
2450
} SetSearchCriteria_req;
2452
typedef [flag(NDR_NOALIGN)] struct {
2453
} SetSearchCriteria_repl;
2455
/*************************/
2456
/* EcDoRpc Function 0x31 */
2457
typedef [flag(NDR_NOALIGN)] struct {
2458
boolean8 UseUnicode;
2459
boolean8 IncludeRestriction;
2460
boolean8 IncludeFolders;
2461
} GetSearchCriteria_req;
2463
typedef [nopush,nopull,noprint,flag(NDR_NOALIGN)] struct {
2464
uint16 RestrictionDataSize;
2465
[subcontext(0),subcontext_size(RestrictionDataSize)] mapi_SRestriction RestrictionData;
2467
uint16 FolderIdCount;
2468
hyper FolderIds[FolderIdCount];
2469
SearchFlags SearchFlags;
2470
} GetSearchCriteria_repl;
2472
/*************************/
2473
/* EcDoRpc Function 0x32 */
2474
typedef [enum8bit] enum {
2475
None = 0x0, /* None */
2476
PreProcess = 0x1, /* Needs to be preprocessed by the server */
2477
NeedsSpooler = 0x2 /* Is to be processed by a client spooler */
2480
typedef [flag(NDR_NOALIGN)] struct {
2481
SubmitFlags SubmitFlags;
2482
} SubmitMessage_req;
2484
typedef [flag(NDR_NOALIGN)] struct {
2485
} SubmitMessage_repl;
2487
/*************************/
2488
/* EcDoRpc Function 0x33 */
2489
typedef [flag(NDR_NOALIGN)] struct {
2492
hyper message_id[count];
2493
boolean8 WantAsynchronous;
2495
} MoveCopyMessages_req;
2497
typedef [flag(NDR_NOALIGN)] struct {
2498
boolean8 PartialCompletion;
2499
} MoveCopyMessages_repl;
2501
/*************************/
2502
/* EcDoRpc Function 0x34 */
2503
typedef [flag(NDR_NOALIGN)] struct {
2508
typedef [flag(NDR_NOALIGN)] struct {
2511
/*************************/
2512
/* EcDoRpc Function 0x35 */
2513
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
2514
[case(0x0)] raw8string lpszA;
2515
[case(0x1)][flag(STR_NULLTERM)] string lpszW;
2518
typedef [flag(NDR_NOALIGN)] struct {
2520
boolean8 WantAsynchronous;
2521
boolean8 UseUnicode;
2523
[switch_is(UseUnicode)] Folder_name NewFolderName;
2526
typedef [flag(NDR_NOALIGN)] struct {
2527
boolean8 PartialCompletion;
2530
/*************************/
2531
/* EcDoRpc Function 0x36 */
2532
typedef [flag(NDR_NOALIGN)] struct {
2534
boolean8 WantAsynchronous;
2535
boolean8 WantRecursive;
2536
boolean8 UseUnicode;
2538
[switch_is(UseUnicode)] Folder_name NewFolderName;
2541
typedef [flag(NDR_NOALIGN)] struct {
2542
boolean8 PartialCompletion;
2545
/*************************/
2546
/* EcDoRpc Function 0x37 */
2547
typedef [flag(NDR_NOALIGN)] struct {
2548
} QueryColumnsAll_req;
2550
typedef [flag(NDR_NOALIGN)] struct {
2551
uint16 PropertyTagCount;
2552
MAPITAGS PropertyTags[PropertyTagCount];
2553
} QueryColumnsAll_repl;
2555
/*************************/
2556
/* EcDoRpc Function 0x38 */
2557
typedef [flag(NDR_NOALIGN)] struct {
2560
typedef [flag(NDR_NOALIGN)] struct {
2561
TableStatus TableStatus;
2564
/*************************/
2565
/* EcDoRpc Function 0x39 */
2566
typedef [bitmap8bit] bitmap {
2567
CopyFlagsMove = 0x1, /* Move properties */
2568
CopyFlagsNoOverwrite = 0x2 /* Do not overwrite existing properties */
2571
typedef [flag(NDR_NOALIGN)] struct {
2573
boolean8 WantAsynchronous;
2574
boolean8 WantSubObjects;
2575
CopyFlags CopyFlags;
2576
mapi_SPropTagArray ExcludedTags;
2579
typedef [flag(NDR_NOALIGN)] struct {
2580
uint16 PropertyProblemCount;
2581
PropertyProblem PropertyProblem[PropertyProblemCount];
2584
/*************************/
2585
/* EcDoRpc Function 0x3a */
2586
typedef [flag(NDR_NOALIGN)] struct {
2591
typedef [flag(NDR_NOALIGN)] struct {
2592
hyper ReadByteCount;
2593
hyper WrittenByteCount;
2594
} CopyToStream_repl;
2596
/*************************/
2597
/* EcDoRpc Function 0x3b */
2598
typedef [flag(NDR_NOALIGN)] struct {
2602
typedef [flag(NDR_NOALIGN)] struct {
2605
/*************************/
2606
/* EcDoRpc Function 0x3e */
2607
typedef [bitmap8bit] bitmap {
2608
IncludeFreeBusy = 0x02
2609
} PermissionsTableFlags;
2611
typedef [flag(NDR_NOALIGN)] struct {
2613
PermissionsTableFlags TableFlags;
2614
} GetPermissionsTable_req;
2616
typedef [flag(NDR_NOALIGN)] struct {
2617
} GetPermissionsTable_repl;
2619
/*************************/
2620
/* EcDoRpc Function 0x3f */
2621
typedef [bitmap8bit] bitmap {
2622
RulesTableFlags_Unicode = 0x40
2625
typedef [flag(NDR_NOALIGN)] struct {
2627
RulesTableFlags TableFlags;
2628
} GetRulesTable_req;
2630
typedef [flag(NDR_NOALIGN)] struct {
2631
} GetRulesTable_repl;
2633
/*************************/
2634
/* EcDoRpc Function 0x40 */
2635
typedef [bitmap8bit] bitmap {
2636
ModifyPerms_IncludeFreeBusy = 0x02,
2637
ModifyPerms_ReplaceRows = 0x01
2638
} ModifyPermissionsFlags;
2640
typedef [flag(NDR_NOALIGN)] struct {
2641
ulRowFlags PermissionDataFlags;
2642
mapi_SPropValue_array lpProps;
2645
typedef [flag(NDR_NOALIGN)] struct {
2646
ModifyPermissionsFlags ModifyFlags;
2648
PermissionData PermissionsData[ModifyCount];
2649
} mapi_PermissionsData;
2651
typedef [flag(NDR_NOALIGN)] struct {
2652
mapi_PermissionsData rowList;
2653
} ModifyPermissions_req;
2655
typedef [flag(NDR_NOALIGN)] struct {
2656
} ModifyPermissions_repl;
2658
/*************************/
2659
/* EcDoRpc Function 0x41 */
2660
typedef [flag(NDR_NOALIGN)] struct {
2661
ulRowFlags RuleDataFlags;
2662
mapi_SPropValue_array PropertyValues;
2665
typedef [bitmap8bit] bitmap {
2666
ModifyRulesFlag_Replace = 0x01
2669
typedef [flag(NDR_NOALIGN)] struct {
2670
ModifyRulesFlag ModifyRulesFlags;
2672
RuleData RulesData[RulesCount];
2675
typedef [flag(NDR_NOALIGN)] struct {
2678
/*************************/
2679
/* EcDoRpc Function 0x42 */
2680
typedef [flag(NDR_NOALIGN)] struct {
2682
} GetOwningServers_req;
2684
typedef [flag(NDR_NOALIGN)] struct {
2685
uint16 OwningServersCount;
2686
uint16 CheapServersCount;
2687
astring OwningServers[OwningServersCount];
2688
} GetOwningServers_repl;
2690
/*************************/
2691
/* EcDoRpc Function 0x43 */
2692
typedef [flag(NDR_NOALIGN)] struct {
2694
} LongTermIdFromId_req;
2696
typedef [flag(NDR_NOALIGN)] struct {
2698
uint8 GlobalCounter[6];
2702
typedef [flag(NDR_NOALIGN)] struct {
2703
LongTermId LongTermId;
2704
} LongTermIdFromId_repl;
2706
/*************************/
2707
/* EcDoRpc Function 0x44 */
2708
typedef [flag(NDR_NOALIGN)] struct {
2709
LongTermId LongTermId;
2710
} IdFromLongTermId_req;
2712
typedef [flag(NDR_NOALIGN)] struct {
2714
} IdFromLongTermId_repl;
2716
/*************************/
2717
/* EcDoRpc Function 0x45 */
2718
typedef [flag(NDR_NOALIGN)] struct {
2720
} PublicFolderIsGhosted_req;
2722
typedef [flag(NDR_NOALIGN)] struct {
2724
[switch_is(IsGhosted)] IsGhosted Ghost;
2725
} PublicFolderIsGhosted_repl;
2727
/*************************/
2728
/* EcDoRpc Function 0x46 */
2729
typedef [enum8bit, flag(NDR_PAHEX)] enum {
2730
MAPI_READONLY = 0x0,
2731
MAPI_READWRITE = 0x1,
2733
} OpenEmbeddedMessage_OpenModeFlags;
2735
typedef [flag(NDR_NOALIGN)] struct {
2738
OpenEmbeddedMessage_OpenModeFlags OpenModeFlags;
2739
} OpenEmbeddedMessage_req;
2741
typedef [flag(NDR_NOALIGN)] struct {
2744
boolean8 HasNamedProperties;
2745
TypedString SubjectPrefix;
2746
TypedString NormalizedSubject;
2747
uint16 RecipientCount;
2748
mapi_SPropTagArray RecipientColumns;
2750
OpenRecipientRow RecipientRows[RowCount];
2751
} OpenEmbeddedMessage_repl;
2753
/*************************/
2754
/* EcDoRpc Function 0x47 */
2755
typedef [flag(NDR_NOALIGN)] struct {
2758
typedef [flag(NDR_NOALIGN)] struct {
2761
/*************************/
2762
/* EcDoRpc Function 0x48 */
2763
typedef [enum8bit] enum {
2764
LockState_1stLock = 0x0,
2765
LockState_1stUnlock = 0x1,
2766
LockState_1stFinished = 0x2
2769
typedef [flag(NDR_NOALIGN)] struct {
2771
LockState LockState;
2772
} SpoolerLockMessage_req;
2774
typedef [flag(NDR_NOALIGN)] struct {
2775
} SpoolerLockMessage_repl;
2777
/*************************/
2778
/* EcDoRpc Function 0x49 */
2779
typedef [flag(NDR_NOALIGN)] struct {
2782
typedef [flag(NDR_NOALIGN)] struct {
2785
mapi_LPSTR transport[cValues];
2786
} AddressTypes_repl;
2788
/**************************/
2789
/* EcDoRpc Function 0x4a */
2790
typedef [flag(NDR_NOALIGN)] struct {
2791
} TransportSend_req;
2793
typedef [nodiscriminant] union {
2794
[case(0x0)] mapi_SPropValue_array lpProps;
2796
} TransportSend_lpProps;
2798
typedef [flag(NDR_NOALIGN)] struct {
2799
boolean8 NoPropertiesReturned;
2800
[switch_is(NoPropertiesReturned)] TransportSend_lpProps properties;
2801
} TransportSend_repl;
2803
/**************************/
2804
/* EcDoRpc Function 0x4b */
2805
typedef [bitmap8bit] bitmap {
2806
FastTransferCopyMessage_Move = 0x01,
2807
FastTransferCopyMessage_Unknown1 = 0x02,
2808
FastTransferCopyMessage_Unknown2 = 0x04,
2809
FastTransferCopyMessage_Unknown3 = 0x08,
2810
FastTransferCopyMessage_BestBody = 0x10,
2811
FastTransferCopyMessage_SendEntryId = 0x20
2812
} FastCopyMessagesCopyFlags;
2814
/* this one is used in a few ROPs */
2815
typedef [bitmap8bit] bitmap {
2816
FastTransfer_Unicode = 0x01,
2817
FastTransfer_UseCpid = 0x02,
2818
FastTransfer_ForUpload = FastTransfer_Unicode | FastTransfer_UseCpid,
2819
FastTransfer_RecoverMode = 0x04,
2820
FastTransfer_ForceUnicode = 0x08,
2821
FastTransfer_PartialItem = 0x10
2822
} FastCopySendOptions;
2824
typedef [flag(NDR_NOALIGN)] struct {
2826
uint16 MessageIdCount;
2827
hyper MessageIds[MessageIdCount];
2828
FastCopyMessagesCopyFlags CopyFlags;
2829
FastCopySendOptions SendOptions;
2830
} FastTransferSourceCopyMessages_req;
2832
typedef [flag(NDR_NOALIGN)] struct {
2833
} FastTransferSourceCopyMessages_repl;
2835
/**************************/
2836
/* EcDoRpc Function 0x4c */
2837
typedef [bitmap8bit] bitmap {
2838
FastTransferCopyFolder_Move = 0x01,
2839
FastTransferCopyFolder_Unused1 = 0x02,
2840
FastTransferCopyFolder_Unused2 = 0x04,
2841
FastTransferCopyFolder_Unused3 = 0x08,
2842
FastTransferCopyFolder_CopySubfolders = 0x10,
2843
FastTransferCopyFolder_NoGhostedContent = 0x20
2844
} FastCopyFolderCopyFlags;
2846
typedef [flag(NDR_NOALIGN)] struct {
2848
FastCopyFolderCopyFlags CopyFlags;
2849
FastCopySendOptions SendOptions;
2850
} FastTransferSourceCopyFolder_req;
2852
typedef [flag(NDR_NOALIGN)] struct {
2853
} FastTransferSourceCopyFolder_repl;
2855
/**************************/
2856
/* EcDoRpc Function 0x4d */
2857
typedef [bitmap32bit] bitmap {
2858
FastTransferCopyTo_Move = 0x00000001,
2859
FastTransferCopyToUnused1 = 0x00000002,
2860
FastTransferCopyToUnused2 = 0x00000004,
2861
FastTransferCopyToUnused3 = 0x00000008,
2862
FastTransferCopyToUnused4 = 0x00000200,
2863
FastTransferCopyToUnused5 = 0x00000400,
2864
FastTransferCopyTo_BestBody = 0x00002000
2865
} FastCopyToCopyFlags;
2867
typedef [flag(NDR_NOALIGN)] struct {
2870
FastCopyToCopyFlags CopyFlags;
2871
FastCopySendOptions SendOptions;
2872
mapi_SPropTagArray PropertyTags;
2873
} FastTransferSourceCopyTo_req;
2875
typedef [flag(NDR_NOALIGN)] struct {
2876
} FastTransferSourceCopyTo_repl;
2878
/**************************/
2879
/* EcDoRpc Function 0x4e */
2880
typedef [nodiscriminant] union {
2881
[case(0xBABE)] uint16 MaximumBufferSize;
2883
} FastTransferSourceGetBuffer_MaxBufferSize;
2885
typedef [flag(NDR_NOALIGN)] struct {
2887
[switch_is(BufferSize)] FastTransferSourceGetBuffer_MaxBufferSize MaximumBufferSize;
2888
} FastTransferSourceGetBuffer_req;
2890
typedef [enum16bit] enum {
2891
TransferStatus_Error = 0x0000,
2892
TransferStatus_Partial = 0x0001,
2893
TransferStatus_NoRoom = 0x0002,
2894
TransferStatus_Done = 0x0003
2897
typedef [flag(NDR_NOALIGN)] struct {
2898
TransferStatus TransferStatus;
2899
uint16 InProgressCount;
2900
uint16 TotalStepCount;
2902
uint16 TransferBufferSize;
2903
[subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING)] DATA_BLOB TransferBuffer;
2904
} FastTransferSourceGetBuffer_repl;
2906
/**************************/
2907
/* EcDoRpc Function 0x4f */
2908
typedef [enum8bit] enum {
2913
typedef [flag(NDR_NOALIGN)] struct {
2914
FindRow_ulFlags ulFlags;
2915
[subcontext(2)] mapi_SRestriction res;
2917
SBinary_short bookmark;
2920
typedef [flag(NDR_NOALIGN)] struct {
2921
uint8 RowNoLongerVisible;
2923
[flag(NDR_NOALIGN)] DATA_BLOB row;
2926
/**************************/
2927
/* EcDoRpc Function 0x50 */
2928
typedef [flag(NDR_NOALIGN)] struct {
2929
boolean8 WantCancel;
2932
typedef [flag(NDR_NOALIGN)] struct {
2933
uint32 CompletedTaskCount;
2934
uint32 TotalTaskCount;
2937
/**************************/
2938
/* EcDoRpc Function 0x51 */
2939
typedef [flag(NDR_NOALIGN)] struct {
2942
astring MessageClass;
2943
uint32 MessageFlags;
2944
} TransportNewMail_req;
2946
typedef [flag(NDR_NOALIGN)] struct {
2947
} TransportNewMail_repl;
2949
/**************************/
2950
/* EcDoRpc Function 0x52 */
2951
typedef [flag(NDR_NOALIGN)] struct {
2952
} GetValidAttachments_req;
2954
typedef [flag(NDR_NOALIGN)] struct {
2955
uint16 AttachmentIdCount;
2956
uint32 AttachmentIdArray[AttachmentIdCount];
2957
} GetValidAttachments_repl;
2959
/**************************/
2960
/* EcDoRpc Function 0x53 */
2961
typedef [enum8bit] enum {
2962
FastTransferDest_CopyTo = 0x1,
2963
FastTransferDest_CopyProperties = 0x2,
2964
FastTransferDest_CopyMessages = 0x3,
2965
FastTransferDest_CopyFolder = 0x4
2966
} FastTransferDestConfig_SourceOperation;
2968
typedef [bitmap8bit] bitmap {
2969
FastTransferDest_Move = 0x01
2970
} FastTransferDestConfig_CopyFlags;
2972
typedef [flag(NDR_NOALIGN)] struct {
2974
FastTransferDestConfig_SourceOperation SourceOperation;
2975
FastTransferDestConfig_CopyFlags CopyFlags;
2976
} FastTransferDestinationConfigure_req;
2978
typedef [flag(NDR_NOALIGN)] struct {
2979
} FastTransferDestinationConfigure_repl;
2981
/**************************/
2982
/* EcDoRpc Function 0x54 */
2983
typedef [flag(NDR_NOALIGN)] struct {
2984
uint16 TransferBufferSize;
2985
[subcontext(0),subcontext_size(TransferBufferSize),flag(NDR_REMAINING)] DATA_BLOB TransferBuffer;
2986
} FastTransferDestinationPutBuffer_req;
2988
typedef [flag(NDR_NOALIGN)] struct {
2989
TransferStatus TransferStatus;
2990
uint16 InProgressCount;
2991
uint16 TotalStepCount;
2993
uint16 BufferUsedCount;
2994
} FastTransferDestinationPutBuffer_repl;
2996
/*************************/
2997
/* EcDoRpc Function 0x55 */
2998
typedef [enum8bit] enum {
3003
typedef [flag(NDR_NOALIGN)] struct {
3005
[flag(STR_NULLTERM)] string Name;
3008
typedef [nodiscriminant] union {
3009
[case(MNID_ID)] uint32 lid;
3010
[case(MNID_STRING)] mapi_name lpwstr;
3013
typedef [flag(NDR_NOALIGN)] struct {
3016
[switch_is(ulKind)] Kind kind;
3019
typedef [flag(NDR_NOALIGN)] struct {
3020
uint16 PropertyIdCount;
3021
uint16 PropertyIds[PropertyIdCount];
3022
} GetNamesFromIDs_req;
3024
typedef [flag(NDR_NOALIGN)] struct {
3026
MAPINAMEID nameid[count];
3027
} GetNamesFromIDs_repl;
3029
/*************************/
3030
/* EcDoRpc Function 0x56 */
3031
typedef [enum8bit, flag(NDR_PAHEX)] enum {
3032
GetIDsFromNames_GetOnly = 0x00,
3033
GetIDsFromNames_GetOrCreate = 0x02
3034
} GetIDsFromNamesFlags;
3036
typedef [flag(NDR_NOALIGN)] struct {
3037
GetIDsFromNamesFlags ulFlags;
3039
MAPINAMEID nameid[count];
3040
} GetIDsFromNames_req;
3042
typedef [flag(NDR_NOALIGN)] struct {
3044
uint16 propID[count];
3045
} GetIDsFromNames_repl;
3047
/*************************/
3048
/* EcDoRpc Function 0x57 */
3049
typedef [flag(NDR_NOALIGN)] struct {
3050
SBinary_short ServerEntryId;
3051
SBinary_short ClientEntryId;
3052
} UpdateDeferredActionMessages_req;
3054
typedef [flag(NDR_NOALIGN)] struct {
3055
} UpdateDeferredActionMessages_repl;
3057
/*************************/
3058
/* EcDoRpc Function 0x58 */
3059
typedef [flag(NDR_NOALIGN)] struct {
3060
boolean8 WantAsynchronous;
3061
boolean8 WantDeleteAssociated;
3064
typedef [flag(NDR_NOALIGN)] struct {
3065
boolean8 PartialCompletion;
3068
/*************************/
3069
/* EcDoRpc Function 0x59 */
3070
typedef [flag(NDR_NOALIGN)] struct {
3075
typedef [flag(NDR_NOALIGN)] struct {
3076
uint32 ExpandedRowCount;
3078
[flag(NDR_REMAINING)]DATA_BLOB RowData;
3081
/*************************/
3082
/* EcDoRpc Function 0x5a */
3083
typedef [flag(NDR_NOALIGN)] struct {
3087
typedef [flag(NDR_NOALIGN)] struct {
3088
uint32 CollapsedRowCount;
3091
/*************************/
3092
/* EcDoRpc Function 0x5b */
3093
typedef [flag(NDR_NOALIGN)] struct {
3097
} LockRegionStream_req;
3099
typedef [flag(NDR_NOALIGN)] struct {
3100
} LockRegionStream_repl;
3102
/*************************/
3103
/* EcDoRpc Function 0x5c */
3104
typedef [flag(NDR_NOALIGN)] struct {
3108
} UnlockRegionStream_req;
3110
typedef [flag(NDR_NOALIGN)] struct {
3111
} UnlockRegionStream_repl;
3113
/*************************/
3114
/* EcDoRpc Function 0x5d */
3115
typedef [flag(NDR_NOALIGN)] struct {
3118
typedef [flag(NDR_NOALIGN)] struct {
3119
} CommitStream_repl;
3121
/*************************/
3122
/* EcDoRpc Function 0x5e */
3123
typedef [flag(NDR_NOALIGN)] struct {
3124
} GetStreamSize_req;
3126
typedef [flag(NDR_NOALIGN)] struct {
3128
} GetStreamSize_repl;
3130
/*************************/
3131
/* EcDoRpc Function 0x5f */
3132
typedef [bitmap8bit] bitmap {
3137
typedef [nodiscriminant] union {
3139
[case(0x1)] GUID guid;
3140
} QueryNamedProperties_guid;
3142
typedef [flag(NDR_NOALIGN)] struct {
3143
QueryFlags QueryFlags;
3145
[switch_is(HasGuid)] QueryNamedProperties_guid PropertyGuid;
3146
} QueryNamedProperties_req;
3148
typedef [flag(NDR_NOALIGN)] struct {
3150
uint16 PropertyIds[IdCount];
3151
MAPINAMEID PropertyNames[IdCount];
3152
} QueryNamedProperties_repl;
3154
/*************************/
3155
/* EcDoRpc Function 0x60 */
3156
typedef [flag(NDR_NOALIGN)] struct {
3158
} GetPerUserLongTermIds_req;
3160
typedef [flag(NDR_NOALIGN)] struct {
3161
uint16 LongTermIdCount;
3162
LongTermId LongTermIds[LongTermIdCount];
3163
} GetPerUserLongTermIds_repl;
3165
/*************************/
3166
/* EcDoRpc Function 0x61 */
3167
typedef [flag(NDR_NOALIGN)] struct {
3168
LongTermId LongTermId;
3169
} GetPerUserGuid_req;
3171
typedef [flag(NDR_NOALIGN)] struct {
3173
} GetPerUserGuid_repl;
3175
/*************************/
3176
/* EcDoRpc Function 0x63 */
3177
typedef [flag(NDR_NOALIGN)] struct {
3179
boolean8 WhatIfChanged;
3182
} ReadPerUserInformation_req;
3184
typedef [flag(NDR_NOALIGN)] struct {
3185
boolean8 HasFinished;
3187
[subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING)] DATA_BLOB Data;
3188
} ReadPerUserInformation_repl;
3190
/*************************/
3191
/* EcDoRpc Function 0x64 */
3192
typedef [flag(NDR_NOALIGN)] struct {
3193
LongTermId FolderId;
3194
boolean8 HasFinished;
3197
[subcontext(0), subcontext_size(DataSize), flag(NDR_REMAINING)] DATA_BLOB Data;
3198
GUID ReplGuid; /* Note: ReplGuid gets only included under specific circumstances */
3199
} WritePerUserInformation_req;
3201
typedef [flag(NDR_NOALIGN)] struct {
3202
} WritePerUserInformation_repl;
3204
/*************************/
3205
/* EcDoRpc Function 0x66 */
3206
typedef [flag(NDR_NOALIGN)] struct {
3207
boolean8 WantAsynchronous;
3208
MSGFLAG_READ ReadFlags;
3209
uint16 MessageIdCount;
3210
hyper MessageIds[MessageIdCount];
3213
typedef [flag(NDR_NOALIGN)] struct {
3214
boolean8 PartialCompletion;
3215
} SetReadFlags_repl;
3217
/*************************/
3218
/* EcDoRpc Function 0x67 */
3219
typedef [flag(NDR_NOALIGN)] struct {
3221
boolean8 WantAsynchronous;
3222
CopyFlags CopyFlags;
3223
mapi_SPropTagArray PropertyTags;
3224
} CopyProperties_req;
3226
typedef [flag(NDR_NOALIGN)] struct {
3227
uint16 PropertyProblemCount;
3228
PropertyProblem PropertyProblem[PropertyProblemCount];
3229
} CopyProperties_repl;
3231
/*************************/
3232
/* EcDoRpc Function 0x68 */
3233
typedef [flag(NDR_NOALIGN)] struct {
3236
astring lpszMessageClass;
3240
typedef [flag(NDR_NOALIGN)] struct {
3241
} GetReceiveFolderTable_req;
3243
typedef [flag(NDR_NOALIGN)] struct {
3245
ReceiveFolder entries[cValues];
3246
} GetReceiveFolderTable_repl;
3248
/**************************/
3249
/* EcDoRpc Function 0x69 */
3250
typedef [bitmap8bit] bitmap {
3251
FastTransferCopyProperties_Move = 0x01,
3252
FastTransferCopyProperties_Unused1 = 0x02,
3253
FastTransferCopyProperties_Unused2 = 0x04,
3254
FastTransferCopyProperties_Unused3 = 0x08
3255
} FastCopyPropertiesCopyFlags;
3257
typedef [flag(NDR_NOALIGN)] struct {
3260
FastCopyPropertiesCopyFlags CopyFlags;
3261
FastCopySendOptions SendOptions;
3262
mapi_SPropTagArray PropertyTags;
3263
} FastTransferSourceCopyProperties_req;
3265
typedef [flag(NDR_NOALIGN)] struct {
3266
} FastTransferSourceCopyProperties_repl;
3268
/*************************/
3269
/* EcDoRpc Function 0x6b */
3270
typedef [flag(NDR_NOALIGN)] struct {
3272
uint32 RowInstanceNumber;
3273
} GetCollapseState_req;
3275
typedef [flag(NDR_NOALIGN)] struct {
3276
SBinary_short CollapseState;
3277
} GetCollapseState_repl;
3279
/*************************/
3280
/* EcDoRpc Function 0x6c */
3281
typedef [flag(NDR_NOALIGN)] struct {
3282
SBinary_short CollapseState;
3283
} SetCollapseState_req;
3285
typedef [flag(NDR_NOALIGN)] struct {
3286
SBinary_short bookmark;
3287
} SetCollapseState_repl;
3289
/*************************/
3290
/* EcDoRpc Function 0x6d */
3291
typedef [flag(NDR_NOALIGN)] struct {
3292
} GetTransportFolder_req;
3294
typedef [flag(NDR_NOALIGN)] struct {
3296
} GetTransportFolder_repl;
3298
/*************************/
3299
/* EcDoRpc Function 0x6e */
3300
typedef [flag(NDR_NOALIGN)] struct {
3301
uint16 SessionIndex;
3304
/*************************/
3305
/* EcDoRpc Function 0x6f */
3306
typedef [flag(NDR_NOALIGN)] struct {
3307
astring AddressType;
3311
typedef [nodiscriminant, flag(NDR_NOALIGN)] union {
3313
[default] raw8string HelpFileName;
3314
} OptionsData_HelpFileName;
3316
typedef [flag(NDR_NOALIGN)] struct {
3318
SBinary_short OptionsInfo;
3319
uint16 HelpFileSize;
3320
uint8 HelpFile[HelpFileSize];
3321
[switch_is(HelpFileSize)] OptionsData_HelpFileName HelpFileName;
3324
/*************************/
3325
/* EcDoRpc Function 0x70 */
3326
typedef [enum8bit] enum {
3329
} SynchronizationType;
3331
typedef [bitmap8bit] bitmap {
3332
SendOptions_Unicode = 0x1,
3333
SendOptions_ForUpload = 0x3,
3334
SendOptions_RecoverMode = 0x4,
3335
SendOptions_ForceUnicode = 0x8,
3336
SendOptions_Partial = 0x10
3339
typedef [bitmap16bit] bitmap {
3340
SynchronizationFlag_Unicode = 0x1,
3341
SynchronizationFlag_NoDeletions = 0x2,
3342
SynchronizationFlag_NoSoftDeletions = 0x4,
3343
SynchronizationFlag_ReadState = 0x8,
3344
SynchronizationFlag_FAI = 0x10,
3345
SynchronizationFlag_Normal = 0x20,
3346
SynchronizationFlag_OnlySpecifiedProperties = 0x80,
3347
SynchronizationFlag_NoForeignIdentifiers = 0x100,
3348
SynchronizationFlag_Reserved = 0x1000,
3349
SynchronizationFlag_BestBody = 0x2000,
3350
SynchronizationFlag_IgnoreSpecifiedOnFAI = 0x4000,
3351
SynchronizationFlag_Progress = 0x8000
3352
} SynchronizationFlag;
3354
typedef [bitmap32bit] bitmap {
3356
MessageSize = 0x00000002,
3358
OrderByDeliveryTime = 0x00000008
3359
} SynchronizationExtraFlags;
3361
typedef [flag(NDR_NOALIGN)] struct {
3363
SynchronizationType SynchronizationType;
3364
SendOptions SendOptions;
3365
SynchronizationFlag SynchronizationFlag;
3366
uint16 RestrictionSize;
3367
[subcontext(0),subcontext_size(RestrictionSize),flag(NDR_REMAINING)] DATA_BLOB RestrictionData;
3368
SynchronizationExtraFlags SynchronizationExtraFlags;
3369
mapi_SPropTagArray PropertyTags;
3370
} SyncConfigure_req;
3372
typedef [flag(NDR_NOALIGN)] struct {
3373
} SyncConfigure_repl;
3375
/*************************/
3376
/* EcDoRpc Function 0x72 */
3377
typedef [bitmap8bit] bitmap {
3378
ImportFlag_Associated = 0x10,
3379
ImportFlag_FailOnConflict = 0x40
3382
typedef [flag(NDR_NOALIGN)] struct {
3384
ImportFlag ImportFlag;
3385
mapi_SPropValue_array PropertyValues;
3386
} SyncImportMessageChange_req;
3388
typedef [flag(NDR_NOALIGN)] struct {
3390
} SyncImportMessageChange_repl;
3392
/*************************/
3393
/* EcDoRpc Function 0x73 */
3394
typedef [flag(NDR_NOALIGN)] struct {
3395
mapi_SPropValue_array HierarchyValues;
3396
mapi_SPropValue_array PropertyValues;
3397
} SyncImportHierarchyChange_req;
3399
typedef [flag(NDR_NOALIGN)] struct {
3401
} SyncImportHierarchyChange_repl;
3403
/*************************/
3404
/* EcDoRpc Function 0x74 */
3405
typedef [bitmap8bit] bitmap {
3406
SyncImportDeletes_Hierarchy = 0x01,
3407
SyncImportDeletes_HardDelete = 0x02
3408
} SyncImportDeletesFlags;
3410
typedef [flag(NDR_NOALIGN)] struct {
3411
SyncImportDeletesFlags Flags;
3412
mapi_SPropValue_array PropertyValues;
3413
} SyncImportDeletes_req;
3415
typedef [flag(NDR_NOALIGN)] struct {
3416
} SyncImportDeletes_repl;
3418
/*************************/
3419
/* EcDoRpc Function 0x75 */
3420
typedef [v1_enum,flag(NDR_PAHEX)] enum {
3421
SP_PidTagIdsetGiven = 0x40170003,
3422
SP_PidTagCnsetSeen = 0x67960102,
3423
SP_PidTagCnsetSeenFAI = 0x67da0102,
3424
SP_PidTagCnsetRead = 0x67d20102
3427
typedef [v1_enum,flag(NDR_PAHEX)] enum {
3428
DP_PidTagIdsetDeleted = 0x67e50102,
3429
DP_PidTagIdsetNoLongerInScope = 0x40210102,
3430
DP_PidTagIdsetExpired = 0x67930102,
3431
DP_PidTagIdsetRead = 0x402d0102,
3432
DP_PidTagIdsetUnread = 0x402e0102
3435
typedef [flag(NDR_NOALIGN)] struct {
3436
StateProperty StateProperty;
3437
uint32 TransferBufferSize;
3438
} SyncUploadStateStreamBegin_req;
3440
typedef [flag(NDR_NOALIGN)] struct {
3441
} SyncUploadStateStreamBegin_repl;
3443
/*************************/
3444
/* EcDoRpc Function 0x76 */
3445
typedef [flag(NDR_NOALIGN)] struct {
3446
uint32 StreamDataSize;
3447
uint8 StreamData[StreamDataSize];
3448
} SyncUploadStateStreamContinue_req;
3450
typedef [flag(NDR_NOALIGN)] struct {
3451
} SyncUploadStateStreamContinue_repl;
3453
/*************************/
3454
/* EcDoRpc Function 0x77 */
3455
typedef [flag(NDR_NOALIGN)] struct {
3456
} SyncUploadStateStreamEnd_req;
3458
typedef [flag(NDR_NOALIGN)] struct {
3459
} SyncUploadStateStreamEnd_repl;
3461
/*************************/
3462
/* EcDoRpc Function 0x78 */
3463
typedef [flag(NDR_NOALIGN)] struct {
3464
uint32 SourceFolderIdSize;
3465
uint8 SourceFolderId[SourceFolderIdSize];
3466
uint32 SourceMessageIdSize;
3467
uint8 SourceMessageId[SourceMessageIdSize];
3468
uint32 PredecessorChangeListSize;
3469
uint8 PredecessorChangeList[PredecessorChangeListSize];
3470
uint32 DestinationMessageIdSize;
3471
uint8 DestinationMessageId[DestinationMessageIdSize];
3472
uint32 ChangeNumberSize;
3473
uint8 ChangeNumber[ChangeNumberSize];
3474
} SyncImportMessageMove_req;
3476
typedef [flag(NDR_NOALIGN)] struct {
3478
} SyncImportMessageMove_repl;
3480
/*************************/
3481
/* EcDoRpc Function 0x79 */
3482
typedef [flag(NDR_NOALIGN)] struct {
3483
[subcontext(2)] mapi_SPropValue_array values;
3484
} SetPropertiesNoReplicate_req;
3486
typedef [flag(NDR_NOALIGN)] struct {
3487
uint16 PropertyProblemCount;
3488
PropertyProblem PropertyProblem[PropertyProblemCount];
3489
} SetPropertiesNoReplicate_repl;
3491
/*************************/
3492
/* EcDoRpc Function 0x7a */
3493
typedef [flag(NDR_NOALIGN)] struct {
3494
mapi_SPropTagArray PropertyTags;
3495
} DeletePropertiesNoReplicate_req;
3497
typedef [flag(NDR_NOALIGN)] struct {
3498
uint16 PropertyProblemCount;
3499
PropertyProblem PropertyProblem[PropertyProblemCount];
3500
} DeletePropertiesNoReplicate_repl;
3502
/*************************/
3503
/* EcDoRpc Function 0x7b */
3504
typedef [public,bitmap32bit] bitmap {
3505
STORE_HAS_SEARCHES = 0x010000000
3508
typedef [flag(NDR_NOALIGN)] struct {
3509
} GetStoreState_req;
3511
typedef [flag(NDR_NOALIGN)] struct {
3512
StoreState StoreState;
3513
} GetStoreState_repl;
3515
/*************************/
3516
/* EcDoRpc Function 0x7e */
3517
typedef [flag(NDR_NOALIGN)] struct {
3519
boolean8 IsContentsCollector;
3520
} SyncOpenCollector_req;
3522
typedef [flag(NDR_NOALIGN)] struct {
3523
} SyncOpenCollector_repl;
3525
/*************************/
3526
/* EcDoRpc Function 0x7f */
3527
typedef [flag(NDR_NOALIGN)] struct {
3529
} GetLocalReplicaIds_req;
3531
typedef [flag(NDR_NOALIGN)] struct {
3533
uint8 GlobalCount[6];
3534
} GetLocalReplicaIds_repl;
3536
/*************************/
3537
/* EcDoRpc Function 0x80 */
3538
typedef [public,flag(NDR_NOALIGN)] struct {
3539
uint16 MessageIdSize;
3540
uint8 MessageId[MessageIdSize];
3541
boolean8 MarkAsRead;
3544
typedef [flag(NDR_NOALIGN)] struct {
3545
[subcontext(2),flag(NDR_REMAINING)] DATA_BLOB MessageReadStates;
3546
} SyncImportReadStateChanges_req;
3548
typedef [flag(NDR_NOALIGN)] struct {
3549
} SyncImportReadStateChanges_repl;
3551
/*************************/
3552
/* EcDoRpc Function 0x81 */
3553
typedef [flag(NDR_NOALIGN)] struct {
3556
typedef [flag(NDR_NOALIGN)] struct {
3559
/*************************/
3560
/* EcDoRpc Function 0x82 */
3561
typedef [flag(NDR_NOALIGN)] struct {
3563
} SyncGetTransferState_req;
3565
typedef [flag(NDR_NOALIGN)] struct {
3566
} SyncGetTransferState_repl;
3568
/*************************/
3569
/* EcDoRpc Function 0x83 */
3570
typedef [flag(NDR_NOALIGN)] struct {
3572
} SyncOpenAdvisor_req;
3574
typedef [flag(NDR_NOALIGN)] struct {
3575
} SyncOpenAdvisor_repl;
3577
/*************************/
3578
/* EcDoRpc Function 0x86 */
3579
typedef [flag(NDR_NOALIGN)] struct {
3583
typedef [flag(NDR_NOALIGN)] struct {
3586
/*************************/
3587
/* EcDoRpc Function 0x87 */
3588
typedef [flag(NDR_NOALIGN)] struct {
3591
} OpenPublicFolderByName_req;
3593
typedef [flag(NDR_NOALIGN)] struct {
3596
[switch_is(IsGhosted)] IsGhosted Ghost;
3597
} OpenPublicFolderByName_repl;
3599
/*************************/
3600
/* EcDoRpc Function 0x88 */
3601
typedef [flag(NDR_NOALIGN)] struct {
3602
GUID NotificationGuid;
3603
} SetSyncNotificationGuid_req;
3605
typedef [flag(NDR_NOALIGN)] struct {
3606
} SetSyncNotificationGuid_repl;
3608
/*************************/
3609
/* EcDoRpc Function 0x89 */
3610
typedef [flag(NDR_NOALIGN)] struct {
3611
SBinary_short bookmark;
3614
typedef [flag(NDR_NOALIGN)] struct {
3615
} FreeBookmark_repl;
3617
/*************************/
3618
/* EcDoRpc Function 0x90 */
3619
typedef [flag(NDR_NOALIGN)] struct {
3620
[subcontext(2), flag(NDR_REMAINING)] DATA_BLOB data;
3621
} WriteAndCommitStream_req;
3624
typedef [flag(NDR_NOALIGN)] struct {
3626
} WriteAndCommitStream_repl;
3628
/**************************/
3629
/* EcDoRpc Function 0x91 */
3630
typedef [flag(NDR_NOALIGN)] struct {
3631
boolean8 WantAsynchronous;
3632
boolean8 NotifyNonRead;
3633
uint16 MessageIdCount;
3634
hyper MessageIds[MessageIdCount];
3635
} HardDeleteMessages_req;
3637
typedef [flag(NDR_NOALIGN)] struct {
3638
boolean8 PartialCompletion;
3639
} HardDeleteMessages_repl;
3641
/*************************/
3642
/* EcDoRpc Function 0x92 */
3643
typedef [flag(NDR_NOALIGN)] struct {
3644
boolean8 WantAsynchronous;
3645
boolean8 WantDeleteAssociated;
3646
} HardDeleteMessagesAndSubfolders_req;
3648
typedef [flag(NDR_NOALIGN)] struct {
3649
boolean8 PartialCompletion;
3650
} HardDeleteMessagesAndSubfolders_repl;
3652
/*************************/
3653
/* EcDoRpc Function 0x93 */
3654
typedef [public,flag(NDR_NOALIGN)] struct {
3655
LongTermId MinLongTermId;
3656
LongTermId MaxLongTermId;
3659
typedef [flag(NDR_NOALIGN)] struct {
3661
uint32 LongTermIdRangeCount;
3662
LongTermIdRange LongTermIdRanges[LongTermIdRangeCount];
3663
} SetLocalReplicaMidsetDeleted_req;
3665
typedef [flag(NDR_NOALIGN)] struct {
3666
} SetLocalReplicaMidsetDeleted_repl;
3668
/**************************/
3669
/* EcDoRpc Function 0xF9 */
3670
typedef [nopush,nopull,flag(NDR_NOALIGN)] struct {
3673
typedef [nopush,nopull,flag(NDR_NOALIGN)] struct {
3676
/*************************/
3677
/* EcDoRpc Function 0xFE */
3678
typedef [public,bitmap8bit] bitmap {
3685
typedef [public,bitmap32bit] bitmap {
3688
TAKE_OWNERSHIP = 0x8,
3689
ALTERNATE_SERVER = 0x100,
3690
IGNORE_HOME_MDB = 0x200,
3692
USE_PER_MDB_REPLID_MAPPING = 0x010000000
3695
typedef [enum8bit] enum {
3696
DayOfWeek_Sunday = 0x0,
3697
DayOfWeek_Monday = 0x1,
3698
DayOfWeek_Tuesday = 0x2,
3699
DayOfWeek_Wednesday = 0x3,
3700
DayOfWeek_Thursday = 0x4,
3701
DayOfWeek_Friday = 0x5,
3702
DayOfWeek_Saturday = 0x6
3705
typedef [flag(NDR_NOALIGN)] struct {
3709
DayOfWeek DayOfWeek;
3715
typedef [bitmap8bit] bitmap {
3716
ResponseFlags_Reserved = 0x1,
3717
ResponseFlags_OwnerRight = 0x2,
3718
ResponseFlags_SendAsRight = 0x4,
3719
ResponseFlags_OOF = 0x10
3722
typedef [flag(NDR_NOALIGN)] struct {
3726
hyper NonIPMSubTree;
3727
hyper EFormsRegistry;
3730
hyper LocalizedEFormsRegistry;
3731
hyper LocalFreeBusy;
3741
typedef [flag(NDR_NOALIGN)] struct {
3744
hyper DeferredAction;
3757
ResponseFlags ResponseFlags;
3761
LogonTime LogonTime;
3763
StoreState StoreState;
3766
typedef [nodiscriminant] union {
3767
[case(0x0)] store_pf store_pf;
3768
[case(0x3)] store_mailbox store_mailbox;
3769
[case(0x9)] store_mailbox store_mailbox;
3770
[case(0x19)] store_mailbox store_mailbox;
3771
[case(LogonPrivate)] store_mailbox store_mailbox;
3774
typedef [nopush,flag(NDR_NOALIGN)] struct {
3775
LogonFlags LogonFlags;
3776
OpenFlags OpenFlags;
3777
StoreState StoreState;
3781
typedef [flag(NDR_NOALIGN)] struct {
3782
LogonFlags LogonFlags;
3783
[switch_is(LogonFlags)] LogonType LogonType;
3786
/* Logon redirect response buffer (error_code == ecWrongServer) */
3787
typedef [public,flag(NDR_NOALIGN)] struct {
3788
LogonFlags LogonFlags;
3789
uint8 ServerNameSize;
3793
/**************************/
3794
/* EcDoRpc Function 0xFF */
3795
typedef [nopush,nopull,flag(NDR_NOALIGN)] struct {
3796
} BufferTooSmall_req;
3798
typedef [nopush,nopull,flag(NDR_NOALIGN)] struct {
3799
} BufferTooSmall_repl;
3801
/*************************/
3802
/* EcDoRpc Function 0xA5 */
3803
typedef [flag(NDR_NOALIGN)] struct {
3807
typedef [flag(NDR_NOALIGN)] struct {
3811
typedef [public, nodiscriminant] union {
3812
[case(op_MAPI_Release)] Release_req mapi_Release;
3813
[case(op_MAPI_OpenFolder)] OpenFolder_req mapi_OpenFolder;
3814
[case(op_MAPI_OpenMessage)] OpenMessage_req mapi_OpenMessage;
3815
[case(op_MAPI_GetHierarchyTable)] GetHierarchyTable_req mapi_GetHierarchyTable;
3816
[case(op_MAPI_GetContentsTable)] GetContentsTable_req mapi_GetContentsTable;
3817
[case(op_MAPI_CreateMessage)] CreateMessage_req mapi_CreateMessage;
3818
[case(op_MAPI_GetProps)] GetProps_req mapi_GetProps;
3819
[case(op_MAPI_GetPropsAll)] GetPropsAll_req mapi_GetPropsAll;
3820
[case(op_MAPI_GetPropList)] GetPropList_req mapi_GetPropList;
3821
[case(op_MAPI_SetProps)] SetProps_req mapi_SetProps;
3822
[case(op_MAPI_DeleteProps)] DeleteProps_req mapi_DeleteProps;
3823
[case(op_MAPI_SaveChangesMessage)] SaveChangesMessage_req mapi_SaveChangesMessage;
3824
[case(op_MAPI_SetMessageReadFlag)] SetMessageReadFlag_req mapi_SetMessageReadFlag;
3825
[case(op_MAPI_ReloadCachedInformation)] ReloadCachedInformation_req mapi_ReloadCachedInformation;
3826
[case(op_MAPI_SetColumns)] SetColumns_req mapi_SetColumns;
3827
[case(op_MAPI_SortTable)] SortTable_req mapi_SortTable;
3828
[case(op_MAPI_Restrict)] Restrict_req mapi_Restrict;
3829
[case(op_MAPI_RemoveAllRecipients)] RemoveAllRecipients_req mapi_RemoveAllRecipients;
3830
[case(op_MAPI_ModifyRecipients)] ModifyRecipients_req mapi_ModifyRecipients;
3831
[case(op_MAPI_ReadRecipients)] ReadRecipients_req mapi_ReadRecipients;
3832
[case(op_MAPI_QueryRows)] QueryRows_req mapi_QueryRows;
3833
[case(op_MAPI_GetStatus)] GetStatus_req mapi_GetStatus;
3834
[case(op_MAPI_QueryPosition)] QueryPosition_req mapi_QueryPosition;
3835
[case(op_MAPI_SeekRow)] SeekRow_req mapi_SeekRow;
3836
[case(op_MAPI_SeekRowBookmark)] SeekRowBookmark_req mapi_SeekRowBookmark;
3837
[case(op_MAPI_SeekRowApprox)] SeekRowApprox_req mapi_SeekRowApprox;
3838
[case(op_MAPI_CreateBookmark)] CreateBookmark_req mapi_CreateBookmark;
3839
[case(op_MAPI_CreateFolder)] CreateFolder_req mapi_CreateFolder;
3840
[case(op_MAPI_DeleteFolder)] DeleteFolder_req mapi_DeleteFolder;
3841
[case(op_MAPI_DeleteMessages)] DeleteMessages_req mapi_DeleteMessages;
3842
[case(op_MAPI_GetMessageStatus)] GetMessageStatus_req mapi_GetMessageStatus;
3843
[case(op_MAPI_SetMessageStatus)] SetMessageStatus_req mapi_SetMessageStatus;
3844
[case(op_MAPI_GetAttachmentTable)] GetAttachmentTable_req mapi_GetAttachmentTable;
3845
[case(op_MAPI_OpenAttach)] OpenAttach_req mapi_OpenAttach;
3846
[case(op_MAPI_CreateAttach)] CreateAttach_req mapi_CreateAttach;
3847
[case(op_MAPI_DeleteAttach)] DeleteAttach_req mapi_DeleteAttach;
3848
[case(op_MAPI_SaveChangesAttachment)] SaveChangesAttachment_req mapi_SaveChangesAttachment;
3849
[case(op_MAPI_SetReceiveFolder)] SetReceiveFolder_req mapi_SetReceiveFolder;
3850
[case(op_MAPI_GetReceiveFolder)] GetReceiveFolder_req mapi_GetReceiveFolder;
3851
[case(op_MAPI_RegisterNotification)] RegisterNotification_req mapi_RegisterNotification;
3852
[case(op_MAPI_OpenStream)] OpenStream_req mapi_OpenStream;
3853
[case(op_MAPI_ReadStream)] ReadStream_req mapi_ReadStream;
3854
[case(op_MAPI_WriteStream)] WriteStream_req mapi_WriteStream;
3855
[case(op_MAPI_SeekStream)] SeekStream_req mapi_SeekStream;
3856
[case(op_MAPI_SetStreamSize)] SetStreamSize_req mapi_SetStreamSize;
3857
[case(op_MAPI_SetSearchCriteria)] SetSearchCriteria_req mapi_SetSearchCriteria;
3858
[case(op_MAPI_GetSearchCriteria)] GetSearchCriteria_req mapi_GetSearchCriteria;
3859
[case(op_MAPI_SubmitMessage)] SubmitMessage_req mapi_SubmitMessage;
3860
[case(op_MAPI_MoveCopyMessages)] MoveCopyMessages_req mapi_MoveCopyMessages;
3861
[case(op_MAPI_AbortSubmit)] AbortSubmit_req mapi_AbortSubmit;
3862
[case(op_MAPI_MoveFolder)] MoveFolder_req mapi_MoveFolder;
3863
[case(op_MAPI_CopyFolder)] CopyFolder_req mapi_CopyFolder;
3864
[case(op_MAPI_QueryColumnsAll)] QueryColumnsAll_req mapi_QueryColumnsAll;
3865
[case(op_MAPI_Abort)] Abort_req mapi_Abort;
3866
[case(op_MAPI_CopyTo)] CopyTo_req mapi_CopyTo;
3867
[case(op_MAPI_CopyToStream)] CopyToStream_req mapi_CopyToStream;
3868
[case(op_MAPI_CloneStream)] CloneStream_req mapi_CloneStream;
3869
[case(op_MAPI_GetPermissionsTable)] GetPermissionsTable_req mapi_GetPermissionsTable;
3870
[case(op_MAPI_GetRulesTable)] GetRulesTable_req mapi_GetRulesTable;
3871
[case(op_MAPI_ModifyPermissions)] ModifyPermissions_req mapi_ModifyPermissions;
3872
[case(op_MAPI_ModifyRules)] ModifyRules_req mapi_ModifyRules;
3873
[case(op_MAPI_GetOwningServers)] GetOwningServers_req mapi_GetOwningServers;
3874
[case(op_MAPI_LongTermIdFromId)] LongTermIdFromId_req mapi_LongTermIdFromId;
3875
[case(op_MAPI_IdFromLongTermId)] IdFromLongTermId_req mapi_IdFromLongTermId;
3876
[case(op_MAPI_PublicFolderIsGhosted)] PublicFolderIsGhosted_req mapi_PublicFolderIsGhosted;
3877
[case(op_MAPI_OpenEmbeddedMessage)] OpenEmbeddedMessage_req mapi_OpenEmbeddedMessage;
3878
[case(op_MAPI_SetSpooler)] SetSpooler_req mapi_SetSpooler;
3879
[case(op_MAPI_SpoolerLockMessage)] SpoolerLockMessage_req mapi_SpoolerLockMessage;
3880
[case(op_MAPI_AddressTypes)] AddressTypes_req mapi_AddressTypes;
3881
[case(op_MAPI_TransportSend)] TransportSend_req mapi_TransportSend;
3882
[case(op_MAPI_FastTransferSourceCopyMessages)] FastTransferSourceCopyMessages_req mapi_FastTransferSourceCopyMessages;
3883
[case(op_MAPI_FastTransferSourceCopyFolder)] FastTransferSourceCopyFolder_req mapi_FastTransferSourceCopyFolder;
3884
[case(op_MAPI_FastTransferSourceCopyTo)] FastTransferSourceCopyTo_req mapi_FastTransferSourceCopyTo;
3885
[case(op_MAPI_FastTransferSourceGetBuffer)] FastTransferSourceGetBuffer_req mapi_FastTransferSourceGetBuffer;
3886
[case(op_MAPI_FindRow)] FindRow_req mapi_FindRow;
3887
[case(op_MAPI_Progress)] Progress_req mapi_Progress;
3888
[case(op_MAPI_TransportNewMail)] TransportNewMail_req mapi_TransportNewMail;
3889
[case(op_MAPI_GetValidAttachments)] GetValidAttachments_req mapi_GetValidAttachments;
3890
[case(op_MAPI_FastTransferDestConfigure)] FastTransferDestinationConfigure_req mapi_FastTransferDestinationConfigure;
3891
[case(op_MAPI_FastTransferDestPutBuffer)] FastTransferDestinationPutBuffer_req mapi_FastTransferDestinationPutBuffer;
3892
[case(op_MAPI_GetNamesFromIDs)] GetNamesFromIDs_req mapi_GetNamesFromIDs;
3893
[case(op_MAPI_GetIDsFromNames)] GetIDsFromNames_req mapi_GetIDsFromNames;
3894
[case(op_MAPI_UpdateDeferredActionMessages)] UpdateDeferredActionMessages_req mapi_UpdateDeferredActionMessages;
3895
[case(op_MAPI_EmptyFolder)] EmptyFolder_req mapi_EmptyFolder;
3896
[case(op_MAPI_ExpandRow)] ExpandRow_req mapi_ExpandRow;
3897
[case(op_MAPI_CollapseRow)] CollapseRow_req mapi_CollapseRow;
3898
[case(op_MAPI_LockRegionStream)] LockRegionStream_req mapi_LockRegionStream;
3899
[case(op_MAPI_UnlockRegionStream)] UnlockRegionStream_req mapi_UnlockRegionStream;
3900
[case(op_MAPI_CommitStream)] CommitStream_req mapi_CommitStream;
3901
[case(op_MAPI_GetStreamSize)] GetStreamSize_req mapi_GetStreamSize;
3902
[case(op_MAPI_QueryNamedProperties)] QueryNamedProperties_req mapi_QueryNamedProperties;
3903
[case(op_MAPI_GetPerUserLongTermIds)] GetPerUserLongTermIds_req mapi_GetPerUserLongTermIds;
3904
[case(op_MAPI_GetPerUserGuid)] GetPerUserGuid_req mapi_GetPerUserGuid;
3905
[case(op_MAPI_ReadPerUserInformation)] ReadPerUserInformation_req mapi_ReadPerUserInformation;
3906
[case(op_MAPI_WritePerUserInformation)] WritePerUserInformation_req mapi_WritePerUserInformation;
3907
[case(op_MAPI_SetReadFlags)] SetReadFlags_req mapi_SetReadFlags;
3908
[case(op_MAPI_CopyProperties)] CopyProperties_req mapi_CopyProperties;
3909
[case(op_MAPI_GetReceiveFolderTable)] GetReceiveFolderTable_req mapi_GetReceiveFolderTable;
3910
[case(op_MAPI_FastTransferSourceCopyProps)] FastTransferSourceCopyProperties_req mapi_FastTransferSourceCopyProperties;
3911
[case(op_MAPI_GetCollapseState)] GetCollapseState_req mapi_GetCollapseState;
3912
[case(op_MAPI_SetCollapseState)] SetCollapseState_req mapi_SetCollapseState;
3913
[case(op_MAPI_GetTransportFolder)] GetTransportFolder_req mapi_GetTransportFolder;
3914
[case(op_MAPI_OptionsData)] OptionsData_req mapi_OptionsData;
3915
[case(op_MAPI_SyncConfigure)] SyncConfigure_req mapi_SyncConfigure;
3916
[case(op_MAPI_SyncImportMessageChange)] SyncImportMessageChange_req mapi_SyncImportMessageChange;
3917
[case(op_MAPI_SyncImportHierarchyChange)] SyncImportHierarchyChange_req mapi_SyncImportHierarchyChange;
3918
[case(op_MAPI_SyncImportDeletes)] SyncImportDeletes_req mapi_SyncImportDeletes;
3919
[case(op_MAPI_SyncUploadStateStreamBegin)] SyncUploadStateStreamBegin_req mapi_SyncUploadStateStreamBegin;
3920
[case(op_MAPI_SyncUploadStateStreamContinue)] SyncUploadStateStreamContinue_req mapi_SyncUploadStateStreamContinue;
3921
[case(op_MAPI_SyncUploadStateStreamEnd)] SyncUploadStateStreamEnd_req mapi_SyncUploadStateStreamEnd;
3922
[case(op_MAPI_SyncImportMessageMove)] SyncImportMessageMove_req mapi_SyncImportMessageMove;
3923
[case(op_MAPI_SetPropertiesNoReplicate)] SetPropertiesNoReplicate_req mapi_SetPropertiesNoReplicate;
3924
[case(op_MAPI_DeletePropertiesNoReplicate)] DeletePropertiesNoReplicate_req mapi_DeletePropertiesNoReplicate;
3925
[case(op_MAPI_GetStoreState)] GetStoreState_req mapi_GetStoreState;
3926
[case(op_MAPI_SyncOpenCollector)] SyncOpenCollector_req mapi_SyncOpenCollector;
3927
[case(op_MAPI_GetLocalReplicaIds)] GetLocalReplicaIds_req mapi_GetLocalReplicaIds;
3928
[case(op_MAPI_SyncImportReadStateChanges)] SyncImportReadStateChanges_req mapi_SyncImportReadStateChanges;
3929
[case(op_MAPI_ResetTable)] ResetTable_req mapi_ResetTable;
3930
[case(op_MAPI_SyncGetTransferState)] SyncGetTransferState_req mapi_SyncGetTransferState;
3931
[case(op_MAPI_SyncOpenAdvisor)] SyncOpenAdvisor_req mapi_SyncOpenAdvisor;
3932
[case(op_MAPI_TellVersion)] TellVersion_req mapi_TellVersion;
3933
[case(op_MAPI_OpenPublicFolderByName)] OpenPublicFolderByName_req mapi_OpenPublicFolderByName;
3934
[case(op_MAPI_SetSyncNotificationGuid)] SetSyncNotificationGuid_req mapi_SetSyncNotificationGuid;
3935
[case(op_MAPI_FreeBookmark)] FreeBookmark_req mapi_FreeBookmark;
3936
[case(op_MAPI_WriteAndCommitStream)] WriteAndCommitStream_req mapi_WriteAndCommitStream;
3937
[case(op_MAPI_HardDeleteMessages)] HardDeleteMessages_req mapi_HardDeleteMessages;
3938
[case(op_MAPI_HardDeleteMessagesAndSubfolders)] HardDeleteMessagesAndSubfolders_req mapi_HardDeleteMessagesAndSubfolders;
3939
[case(op_MAPI_SetLocalReplicaMidsetDeleted)] SetLocalReplicaMidsetDeleted_req mapi_SetLocalReplicaMidsetDeleted;
3940
[case(op_MAPI_Backoff)] Backoff_req mapi_Backoff;
3941
[case(op_MAPI_Logon)] Logon_req mapi_Logon;
3942
[case(op_MAPI_BufferTooSmall)] BufferTooSmall_req mapi_BufferTooSmall;
3943
[case(op_MAPI_proxypack)] proxypack_req mapi_proxypack;
3944
} EcDoRpc_MAPI_REQ_UNION;
3946
typedef [public, nodiscriminant] union {
3947
[case(op_MAPI_Release)] Release_repl mapi_Release;
3948
[case(op_MAPI_OpenFolder)] OpenFolder_repl mapi_OpenFolder;
3949
[case(op_MAPI_OpenMessage)] OpenMessage_repl mapi_OpenMessage;
3950
[case(op_MAPI_GetHierarchyTable)] GetHierarchyTable_repl mapi_GetHierarchyTable;
3951
[case(op_MAPI_GetContentsTable)] GetContentsTable_repl mapi_GetContentsTable;
3952
[case(op_MAPI_CreateMessage)] CreateMessage_repl mapi_CreateMessage;
3953
[case(op_MAPI_GetProps)] GetProps_repl mapi_GetProps;
3954
[case(op_MAPI_GetPropsAll)] GetPropsAll_repl mapi_GetPropsAll;
3955
[case(op_MAPI_GetPropList)] GetPropList_repl mapi_GetPropList;
3956
[case(op_MAPI_SetProps)] SetProps_repl mapi_SetProps;
3957
[case(op_MAPI_DeleteProps)] DeleteProps_repl mapi_DeleteProps;
3958
[case(op_MAPI_SaveChangesMessage)] SaveChangesMessage_repl mapi_SaveChangesMessage;
3959
[case(op_MAPI_RemoveAllRecipients)] RemoveAllRecipients_repl mapi_RemoveAllRecipients;
3960
[case(op_MAPI_ModifyRecipients)] ModifyRecipients_repl mapi_ModifyRecipients;
3961
[case(op_MAPI_ReadRecipients)] ReadRecipients_repl mapi_ReadRecipients;
3962
[case(op_MAPI_SetMessageReadFlag)] SetMessageReadFlag_repl mapi_SetMessageReadFlag;
3963
[case(op_MAPI_ReloadCachedInformation)] ReloadCachedInformation_repl mapi_ReloadCachedInformation;
3964
[case(op_MAPI_SetColumns)] SetColumns_repl mapi_SetColumns;
3965
[case(op_MAPI_SortTable)] SortTable_repl mapi_SortTable;
3966
[case(op_MAPI_Restrict)] Restrict_repl mapi_Restrict;
3967
[case(op_MAPI_QueryRows)] QueryRows_repl mapi_QueryRows;
3968
[case(op_MAPI_GetStatus)] GetStatus_repl mapi_GetStatus;
3969
[case(op_MAPI_QueryPosition)] QueryPosition_repl mapi_QueryPosition;
3970
[case(op_MAPI_SeekRow)] SeekRow_repl mapi_SeekRow;
3971
[case(op_MAPI_SeekRowBookmark)] SeekRowBookmark_repl mapi_SeekRowBookmark;
3972
[case(op_MAPI_SeekRowApprox)] SeekRowApprox_repl mapi_SeekRowApprox;
3973
[case(op_MAPI_CreateBookmark)] CreateBookmark_repl mapi_CreateBookmark;
3974
[case(op_MAPI_CreateFolder)] CreateFolder_repl mapi_CreateFolder;
3975
[case(op_MAPI_DeleteFolder)] DeleteFolder_repl mapi_DeleteFolder;
3976
[case(op_MAPI_DeleteMessages)] DeleteMessages_repl mapi_DeleteMessages;
3977
[case(op_MAPI_SetMessageStatus)] SetMessageStatus_repl mapi_SetMessageStatus;
3978
[case(op_MAPI_GetAttachmentTable)] GetAttachmentTable_repl mapi_GetAttachmentTable;
3979
[case(op_MAPI_OpenAttach)] OpenAttach_repl mapi_OpenAttach;
3980
[case(op_MAPI_CreateAttach)] CreateAttach_repl mapi_CreateAttach;
3981
[case(op_MAPI_DeleteAttach)] DeleteAttach_repl mapi_DeleteAttach;
3982
[case(op_MAPI_SaveChangesAttachment)] SaveChangesAttachment_repl mapi_SaveChangesAttachment;
3983
[case(op_MAPI_SetReceiveFolder)] SetReceiveFolder_repl mapi_SetReceiveFolder;
3984
[case(op_MAPI_GetReceiveFolder)] GetReceiveFolder_repl mapi_GetReceiveFolder;
3985
[case(op_MAPI_RegisterNotification)] RegisterNotification_repl mapi_RegisterNotification;
3986
[case(op_MAPI_Notify)] Notify_repl mapi_Notify;
3987
[case(op_MAPI_OpenStream)] OpenStream_repl mapi_OpenStream;
3988
[case(op_MAPI_ReadStream)] ReadStream_repl mapi_ReadStream;
3989
[case(op_MAPI_WriteStream)] WriteStream_repl mapi_WriteStream;
3990
[case(op_MAPI_SeekStream)] SeekStream_repl mapi_SeekStream;
3991
[case(op_MAPI_SetStreamSize)] SetStreamSize_repl mapi_SetStreamSize;
3992
[case(op_MAPI_SetSearchCriteria)] SetSearchCriteria_repl mapi_SetSearchCriteria;
3993
[case(op_MAPI_GetSearchCriteria)] GetSearchCriteria_repl mapi_GetSearchCriteria;
3994
[case(op_MAPI_SubmitMessage)] SubmitMessage_repl mapi_SubmitMessage;
3995
[case(op_MAPI_MoveCopyMessages)] MoveCopyMessages_repl mapi_MoveCopyMessages;
3996
[case(op_MAPI_AbortSubmit)] AbortSubmit_repl mapi_AbortSubmit;
3997
[case(op_MAPI_MoveFolder)] MoveFolder_repl mapi_MoveFolder;
3998
[case(op_MAPI_CopyFolder)] CopyFolder_repl mapi_CopyFolder;
3999
[case(op_MAPI_QueryColumnsAll)] QueryColumnsAll_repl mapi_QueryColumnsAll;
4000
[case(op_MAPI_Abort)] Abort_repl mapi_Abort;
4001
[case(op_MAPI_CopyTo)] CopyTo_repl mapi_CopyTo;
4002
[case(op_MAPI_CopyToStream)] CopyToStream_repl mapi_CopyToStream;
4003
[case(op_MAPI_CloneStream)] CloneStream_repl mapi_CloneStream;
4004
[case(op_MAPI_GetPermissionsTable)] GetPermissionsTable_repl mapi_GetPermissionsTable;
4005
[case(op_MAPI_GetRulesTable)] GetRulesTable_repl mapi_GetRulesTable;
4006
[case(op_MAPI_ModifyPermissions)] ModifyPermissions_repl mapi_ModifyPermissions;
4007
[case(op_MAPI_ModifyRules)] ModifyRules_repl mapi_ModifyRules;
4008
[case(op_MAPI_GetOwningServers)] GetOwningServers_repl mapi_GetOwningServers;
4009
[case(op_MAPI_LongTermIdFromId)] LongTermIdFromId_repl mapi_LongTermIdFromId;
4010
[case(op_MAPI_IdFromLongTermId)] IdFromLongTermId_repl mapi_IdFromLongTermId;
4011
[case(op_MAPI_PublicFolderIsGhosted)] PublicFolderIsGhosted_repl mapi_PublicFolderIsGhosted;
4012
[case(op_MAPI_OpenEmbeddedMessage)] OpenEmbeddedMessage_repl mapi_OpenEmbeddedMessage;
4013
[case(op_MAPI_SetSpooler)] SetSpooler_repl mapi_SetSpooler;
4014
[case(op_MAPI_SpoolerLockMessage)] SpoolerLockMessage_repl mapi_SpoolerLockMessage;
4015
[case(op_MAPI_AddressTypes)] AddressTypes_repl mapi_AddressTypes;
4016
[case(op_MAPI_TransportSend)] TransportSend_repl mapi_TransportSend;
4017
[case(op_MAPI_FastTransferSourceCopyMessages)] FastTransferSourceCopyMessages_repl mapi_FastTransferSourceCopyMessages;
4018
[case(op_MAPI_FastTransferSourceCopyFolder)] FastTransferSourceCopyFolder_repl mapi_FastTransferSourceCopyFolder;
4019
[case(op_MAPI_FastTransferSourceCopyTo)] FastTransferSourceCopyTo_repl mapi_FastTransferSourceCopyTo;
4020
[case(op_MAPI_FastTransferSourceGetBuffer)] FastTransferSourceGetBuffer_repl mapi_FastTransferSourceGetBuffer;
4021
[case(op_MAPI_FindRow)] FindRow_repl mapi_FindRow;
4022
[case(op_MAPI_Progress)] Progress_repl mapi_Progress;
4023
[case(op_MAPI_TransportNewMail)] TransportNewMail_repl mapi_TransportNewMail;
4024
[case(op_MAPI_GetValidAttachments)] GetValidAttachments_repl mapi_GetValidAttachments;
4025
[case(op_MAPI_FastTransferDestConfigure)] FastTransferDestinationConfigure_repl mapi_FastTransferDestinationConfigure;
4026
[case(op_MAPI_FastTransferDestPutBuffer)] FastTransferDestinationPutBuffer_repl mapi_FastTransferDestinationPutBuffer;
4027
[case(op_MAPI_GetNamesFromIDs)] GetNamesFromIDs_repl mapi_GetNamesFromIDs;
4028
[case(op_MAPI_GetIDsFromNames)] GetIDsFromNames_repl mapi_GetIDsFromNames;
4029
[case(op_MAPI_UpdateDeferredActionMessages)] UpdateDeferredActionMessages_repl mapi_UpdateDeferredActionMessages;
4030
[case(op_MAPI_EmptyFolder)] EmptyFolder_repl mapi_EmptyFolder;
4031
[case(op_MAPI_ExpandRow)] ExpandRow_repl mapi_ExpandRow;
4032
[case(op_MAPI_CollapseRow)] CollapseRow_repl mapi_CollapseRow;
4033
[case(op_MAPI_LockRegionStream)] LockRegionStream_repl mapi_LockRegionStream;
4034
[case(op_MAPI_UnlockRegionStream)] UnlockRegionStream_repl mapi_UnlockRegionStream;
4035
[case(op_MAPI_CommitStream)] CommitStream_repl mapi_CommitStream;
4036
[case(op_MAPI_GetStreamSize)] GetStreamSize_repl mapi_GetStreamSize;
4037
[case(op_MAPI_QueryNamedProperties)] QueryNamedProperties_repl mapi_QueryNamedProperties;
4038
[case(op_MAPI_GetPerUserLongTermIds)] GetPerUserLongTermIds_repl mapi_GetPerUserLongTermIds;
4039
[case(op_MAPI_GetPerUserGuid)] GetPerUserGuid_repl mapi_GetPerUserGuid;
4040
[case(op_MAPI_ReadPerUserInformation)] ReadPerUserInformation_repl mapi_ReadPerUserInformation;
4041
[case(op_MAPI_WritePerUserInformation)] WritePerUserInformation_repl mapi_WritePerUserInformation;
4042
[case(op_MAPI_SetReadFlags)] SetReadFlags_repl mapi_SetReadFlags;
4043
[case(op_MAPI_CopyProperties)] CopyProperties_repl mapi_CopyProperties;
4044
[case(op_MAPI_GetReceiveFolderTable)] GetReceiveFolderTable_repl mapi_GetReceiveFolderTable;
4045
[case(op_MAPI_Pending)] Pending_repl mapi_Pending;
4046
[case(op_MAPI_FastTransferSourceCopyProps)] FastTransferSourceCopyProperties_repl mapi_FastTransferSourceCopyProperties;
4047
[case(op_MAPI_GetCollapseState)] GetCollapseState_repl mapi_GetCollapseState;
4048
[case(op_MAPI_SetCollapseState)] SetCollapseState_repl mapi_SetCollapseState;
4049
[case(op_MAPI_GetTransportFolder)] GetTransportFolder_repl mapi_GetTransportFolder;
4050
[case(op_MAPI_OptionsData)] OptionsData_repl mapi_OptionsData;
4051
[case(op_MAPI_SyncConfigure)] SyncConfigure_repl mapi_SyncConfigure;
4052
[case(op_MAPI_SyncImportMessageChange)] SyncImportMessageChange_repl mapi_SyncImportMessageChange;
4053
[case(op_MAPI_SyncImportHierarchyChange)] SyncImportHierarchyChange_repl mapi_SyncImportHierarchyChange;
4054
[case(op_MAPI_SyncImportDeletes)] SyncImportDeletes_repl mapi_SyncImportDeletes;
4055
[case(op_MAPI_SyncUploadStateStreamBegin)] SyncUploadStateStreamBegin_repl mapi_SyncUploadStateStreamBegin;
4056
[case(op_MAPI_SyncUploadStateStreamContinue)] SyncUploadStateStreamContinue_repl mapi_SyncUploadStateStreamContinue;
4057
[case(op_MAPI_SyncUploadStateStreamEnd)] SyncUploadStateStreamEnd_repl mapi_SyncUploadStateStreamEnd;
4058
[case(op_MAPI_SyncImportMessageMove)] SyncImportMessageMove_repl mapi_SyncImportMessageMove;
4059
[case(op_MAPI_SetPropertiesNoReplicate)] SetPropertiesNoReplicate_repl mapi_SetPropertiesNoReplicate;
4060
[case(op_MAPI_DeletePropertiesNoReplicate)] DeletePropertiesNoReplicate_repl mapi_DeletePropertiesNoReplicate;
4061
[case(op_MAPI_GetStoreState)] GetStoreState_repl mapi_GetStoreState;
4062
[case(op_MAPI_SyncOpenCollector)] SyncOpenCollector_repl mapi_SyncOpenCollector;
4063
[case(op_MAPI_GetLocalReplicaIds)] GetLocalReplicaIds_repl mapi_GetLocalReplicaIds;
4064
[case(op_MAPI_SyncImportReadStateChanges)] SyncImportReadStateChanges_repl mapi_SyncImportReadStateChanges;
4065
[case(op_MAPI_ResetTable)] ResetTable_repl mapi_ResetTable;
4066
[case(op_MAPI_SyncGetTransferState)] SyncGetTransferState_repl mapi_SyncGetTransferState;
4067
[case(op_MAPI_SyncOpenAdvisor)] SyncOpenAdvisor_repl mapi_SyncOpenAdvisor;
4068
[case(op_MAPI_TellVersion)] TellVersion_repl mapi_TellVersion;
4069
[case(op_MAPI_OpenPublicFolderByName)] OpenPublicFolderByName_repl mapi_OpenPublicFolderByName;
4070
[case(op_MAPI_SetSyncNotificationGuid)] SetSyncNotificationGuid_repl mapi_SetSyncNotificationGuid;
4071
[case(op_MAPI_FreeBookmark)] FreeBookmark_repl mapi_FreeBookmark;
4072
[case(op_MAPI_WriteAndCommitStream)] WriteAndCommitStream_repl mapi_WriteAndCommitStream;
4073
[case(op_MAPI_HardDeleteMessages)] HardDeleteMessages_repl mapi_HardDeleteMessages;
4074
[case(op_MAPI_HardDeleteMessagesAndSubfolders)] HardDeleteMessagesAndSubfolders_repl mapi_HardDeleteMessagesAndSubfolders;
4075
[case(op_MAPI_SetLocalReplicaMidsetDeleted)] SetLocalReplicaMidsetDeleted_repl mapi_SetLocalReplicaMidsetDeleted;
4076
[case(op_MAPI_Backoff)] Backoff_repl mapi_Backoff;
4077
[case(op_MAPI_Logon)] Logon_repl mapi_Logon;
4078
[case(op_MAPI_BufferTooSmall)] BufferTooSmall_repl mapi_BufferTooSmall;
4079
[case(op_MAPI_proxypack)] proxypack_repl mapi_proxypack;
4081
} EcDoRpc_MAPI_REPL_UNION;
4083
typedef [public, nodiscriminant] union {
4084
[case(op_MAPI_Logon)] Logon_redirect mapi_Logon;
4086
} EcDoRpc_MAPI_REPL_UNION_SPECIAL;
4088
typedef [public,flag(NDR_NOALIGN)] struct {
4092
[switch_is(opnum)] EcDoRpc_MAPI_REQ_UNION u;
4095
typedef [public,nopush,nopull,noprint,flag(NDR_NOALIGN)] struct {
4098
MAPISTATUS error_code;
4099
[switch_is(opnum)] EcDoRpc_MAPI_REPL_UNION u;
4100
[switch_is(opnum)] EcDoRpc_MAPI_REPL_UNION_SPECIAL us;
4101
} EcDoRpc_MAPI_REPL;
4105
Abstract way to represent MAPI content
4108
typedef [public,nopull,nopush,noprint] struct {
4109
uint32 mapi_len; /* whole mapi_data length */
4110
uint16 length; /* content length */
4111
EcDoRpc_MAPI_REQ *mapi_req;
4112
uint32 *handles; /* handles id array */
4115
typedef [public,nopull,nopush,noprint] struct {
4118
EcDoRpc_MAPI_REPL *mapi_repl;
4123
[public,nopull,nopush] MAPISTATUS EcDoRpc(
4124
[in,out] policy_handle *handle,
4125
[in,out] uint32 size,
4126
[in,out] uint32 offset,
4127
[in] [subcontext(4),flag(NDR_REMAINING|NDR_NOALIGN)] mapi_request *mapi_request,
4128
[out][subcontext(4),flag(NDR_REMAINING|NDR_NOALIGN)] mapi_response *mapi_response,
4129
[in,out] uint16 *length,
4130
[in] uint16 max_data
4135
void EcGetMoreRpc();
4141
we could directly use a NOTIFKEY structure rather than
4142
a uint8 array, but this makes the IDL more robust
4144
sockaddr array is made of:
4145
- family (unsigned short in) sa_family_t
4146
- address data sa_data[14];
4154
MAPISTATUS EcRRegisterPushNotification(
4155
[in,out] policy_handle *handle,
4157
[in,size_is(cbContext)] uint8 rgbContext[*],
4158
[in] uint16 cbContext,
4159
[in] uint32 grbitAdviseBits,
4160
[in,size_is(cbCallbackAddress)] uint8 rgbCallbackAddress[*],
4161
[in] uint16 cbCallbackAddress,
4162
[out,ref] uint32 *hNotification
4167
MAPISTATUS EcRUnregisterPushNotification(
4168
[in,out] policy_handle *handle,
4169
[in] uint32 unknown[2]
4178
void EcRGetDCName();
4182
void EcRNetGetDCName();
4186
[public,noprint] MAPISTATUS EcDoRpcExt (
4187
[in,out] policy_handle *handle,
4188
[in,out] uint32 *pulFlags,
4189
[in, size_is(cbIn)] uint8 rgbIn[],
4191
[out, length_is(*pcbOut), size_is(*pcbOut)] uint8 rgbOut[],
4192
[in,out][range(0x0,0x40000)] uint32 *pcbOut,
4193
[in,out,length_is(*Reserved1),size_is(*Reserved1)] uint8 Reserved0[],
4194
[in,out] uint32 *Reserved1,
4195
[out] uint32 *pulTransTime
4200
typedef [public,bitmap16bit] bitmap {
4201
RHEF_Compressed = 0x0001,
4202
RHEF_XorMagic = 0x0002,
4204
} RPC_HEADER_EXT_Flags;
4206
typedef [public] struct {
4208
RPC_HEADER_EXT_Flags Flags;
4213
typedef [enum8bit,flag(NDR_PAHEX)] enum {
4214
AUX_TYPE_PERF_REQUESTID = 0x01,
4215
AUX_TYPE_PERF_CLIENTDINFO = 0x02,
4216
AUX_TYPE_PERF_SERVERINFO = 0x03,
4217
AUX_TYPE_PERF_SESSIONINFO = 0x04,
4218
AUX_TYPE_PERF_DEFMDB_SUCCESS = 0x05,
4219
AUX_TYPE_PERF_DEFGC_SUCCESS = 0x06,
4220
AUX_TYPE_PERF_MDB_SUCCESS = 0x07,
4221
AUX_TYPE_PERF_GC_SUCCESS = 0x08,
4222
AUX_TYPE_PERF_FAILURE = 0x09,
4223
AUX_TYPE_CLIENT_CONTROL = 0x0A,
4224
AUX_TYPE_PERF_PROCESSINFO = 0x0B,
4225
AUX_TYPE_PERF_BG_DEFMDB_SUCCESS = 0x0C,
4226
AUX_TYPE_PERF_BG_DEFGC_SUCCESS = 0x0D,
4227
AUX_TYPE_PERF_BG_MDB_SUCCESS = 0x0E,
4228
AUX_TYPE_PERF_BG_GC_SUCCESS = 0x0F,
4229
AUX_TYPE_PERF_BG_FAILURE = 0x10,
4230
AUX_TYPE_PERF_FG_DEFMDB_SUCCESS = 0x11,
4231
AUX_TYPE_PERF_FG_DEFGC_SUCCESS = 0x12,
4232
AUX_TYPE_PERF_FG_MDB_SUCCESS = 0x13,
4233
AUX_TYPE_PERF_FG_GC_SUCCESS = 0x14,
4234
AUX_TYPE_PERF_FG_FAILURE = 0x15,
4235
AUX_TYPE_OSVERSIONINFO = 0x16,
4236
AUX_TYPE_EXORGINFO = 0x17
4237
} AUX_HEADER_TYPE_1;
4239
typedef [enum8bit,flag(NDR_PAHEX)] enum {
4240
AUX_TYPE_PERF_SESSIONINFO_2 = 0x04,
4241
AUX_TYPE_PERF_MDB_SUCCESS_2 = 0x07,
4242
AUX_TYPE_PERF_GC_SUCCESS_2 = 0x08,
4243
AUX_TYPE_PERF_FAILURE_2 = 0x09
4244
} AUX_HEADER_TYPE_2;
4246
typedef [public,enum8bit,flag(NDR_PAHEX)] enum {
4247
AUX_VERSION_1 = 0x1,
4251
typedef [public,switch_type(uint8)] union {
4252
[case(AUX_VERSION_1)] AUX_HEADER_TYPE_1 Type;
4253
[case(AUX_VERSION_2)] AUX_HEADER_TYPE_2 Type_2;
4255
} AUX_HEADER_TYPE_ENUM;
4257
/*************************/
4258
/* AUX_HEADER case (0x1) */
4259
typedef [flag(NDR_NOALIGN)] struct {
4262
} AUX_PERF_REQUESTID;
4264
/*************************/
4265
/* AUX_HEADER case (0x2) */
4266
typedef [public,enum16bit, flag(NDR_PAHEX)] enum {
4267
CLIENTMODE_UNKNOWN = 0x0,
4268
CLIENTMODE_CLASSIC = 0x1,
4269
CLIENTMODE_CACHED = 0x2
4272
typedef [public,flag(NDR_NOALIGN)] struct {
4273
uint32 AdapterSpeed;
4275
uint16 MachineNameOffset;
4276
uint16 UserNameOffset;
4277
uint16 ClientIPSize;
4278
uint16 ClientIPOffset;
4279
uint16 ClientIPMaskSize;
4280
uint16 ClientIPMaskOffset;
4281
uint16 AdapterNameOffset;
4282
uint16 MacAddressSize;
4283
uint16 MacAddressOffset;
4284
ClientMode ClientMode;
4286
uint8 MacAddress[MacAddressSize];
4287
uint8 ClientIP[ClientIPSize];
4288
uint8 ClientIPMask[ClientIPMaskSize];
4289
nstring MachineName;
4291
nstring AdapterName;
4292
} AUX_PERF_CLIENTINFO;
4294
/*************************/
4295
/* AUX_HEADER case (0x3) */
4296
typedef [enum16bit,flag(NDR_PAHEX)] enum {
4297
SERVERTYPE_UNKNOWN = 0x0,
4298
SERVERTYPE_PRIVATE = 0x1,
4299
SERVERTYPE_PUBLIC = 0x2,
4300
SERVERTYPE_DIRECTORY = 0x3,
4301
SERVERTYPE_REFERRAL = 0x4
4302
} SERVERINFO_ServerType;
4304
typedef [flag(NDR_NOALIGN)] struct {
4306
SERVERINFO_ServerType ServerType;
4307
uint16 ServerDNOffset;
4308
uint16 ServerNameOffset;
4311
} AUX_PERF_SERVERINFO;
4313
/*************************/
4314
/* AUX_HEADER case (0x4) */
4315
typedef [flag(NDR_NOALIGN)] struct {
4319
} AUX_PERF_SESSIONINFO;
4321
typedef [flag(NDR_NOALIGN)] struct {
4325
uint32 ConnectionID;
4326
} AUX_PERF_SESSIONINFO_V2;
4328
/**************************/
4329
/* AUX_HEADER case (0x5) */
4330
/* AUX_HEADER case (0xC) */
4331
/* AUX_HEADER case (0x11) */
4332
typedef [flag(NDR_NOALIGN)] struct {
4333
uint32 TimeSinceRequest;
4334
uint32 TimeToCompleteRequest;
4337
} AUX_PERF_DEFMDB_SUCCESS;
4339
/**************************/
4340
/* AUX_HEADER case (0x6) */
4341
/* AUX_HEADER case (0xD) */
4342
typedef [flag(NDR_NOALIGN)] struct {
4345
uint32 TimeSinceRequest;
4346
uint32 TimeToCompleteRequest;
4347
uint8 RequestOperation;
4349
} AUX_PERF_DEFGC_SUCCESS;
4351
/**************************/
4352
/* AUX_HEADER case (0x7) */
4353
/* AUX_HEADER case (0xE) */
4354
/* AUX_HEADER case (0x13) */
4355
typedef [flag(NDR_NOALIGN)] struct {
4360
uint32 TimeSinceRequest;
4361
uint32 TimeToCompleteRequest;
4362
} AUX_PERF_MDB_SUCCESS;
4364
typedef [flag(NDR_NOALIGN)] struct {
4371
uint32 TimeSinceRequest;
4372
uint32 TimeToCompleteRequest;
4373
} AUX_PERF_MDB_SUCCESS_V2;
4375
/**************************/
4376
/* AUX_HEADER case (0x8) */
4377
typedef [flag(NDR_NOALIGN)] struct {
4382
uint32 TimeSinceRequest;
4383
uint32 TimeToCompleteRequest;
4384
uint8 RequestOperation;
4385
uint8 Reserved_2[3];
4386
} AUX_PERF_GC_SUCCESS;
4388
typedef [flag(NDR_NOALIGN)] struct {
4393
uint32 TimeSinceRequest;
4394
uint32 TimeToCompleteRequest;
4395
uint8 RequestOperation;
4397
} AUX_PERF_GC_SUCCESS_V2;
4399
/**************************/
4400
/* AUX_HEADER case (0x9) */
4401
typedef [flag(NDR_NOALIGN)] struct {
4406
uint32 TimeSinceRequest;
4407
uint32 TimeToFailRequest;
4408
MAPISTATUS ResultCode;
4409
uint8 RequestOperation;
4413
typedef [flag(NDR_NOALIGN)] struct {
4420
uint32 TimeSinceRequest;
4421
uint32 TimeToFailRequest;
4422
MAPISTATUS ResultCode;
4423
uint8 RequestOperation;
4424
uint8 Reserved_2[3];
4425
} AUX_PERF_FAILURE_V2;
4427
/**************************/
4428
/* AUX_HEADER case (0xA) */
4429
typedef [bitmap32bit] bitmap {
4430
ENABLE_PERF_SENDTOSERVER = 0x00000001,
4431
ENABLE_PERF_SENDTOMAILBOX = 0x00000002,
4432
ENABLE_COMPRESSION = 0x00000004,
4433
ENABLE_HTTP_TUNNELING = 0x00000008,
4434
ENABLE_PERF_SENDGCDATA = 0x00000010
4435
} CLIENT_CONTROL_EnableFlags;
4437
typedef [flag(NDR_NOALIGN)] struct {
4438
CLIENT_CONTROL_EnableFlags EnableFlags;
4440
} AUX_CLIENT_CONTROL;
4442
/*************************/
4443
/* AUX_HEADER case (0xB) */
4444
typedef [nodiscriminant] union {
4446
[default] nstring ProcessName;
4447
} ProcessNameString;
4449
typedef [flag(NDR_NOALIGN)] struct {
4453
uint16 ProcessNameOffset;
4455
[switch_is(ProcessNameOffset)] ProcessNameString ProcessName;
4456
} AUX_PERF_PROCESSINFO;
4458
/**************************/
4459
/* AUX_HEADER case (0x16) */
4460
typedef [flag(NDR_NOALIGN)] struct {
4461
uint32 OSVersionInfoSize;
4462
uint32 MajorVersion;
4463
uint32 MinorVersion;
4465
[subcontext(0), subcontext_size(132), flag(NDR_NOALIGN|NDR_REMAINING)] DATA_BLOB Reserved_1;
4466
uint16 ServicePackMajor;
4467
uint16 ServicePackMinor;
4469
} AUX_OSVERSIONINFO;
4471
/**************************/
4472
/* AUX_HEADER case (0x17) */
4473
typedef [bitmap32bit] bitmap {
4474
PUBLIC_FOLDERS_ENABLED = 0x00000001
4475
} EXORGINFO_OrgFlags;
4477
typedef [flag(NDR_NOALIGN)] struct {
4478
EXORGINFO_OrgFlags OrgFlags;
4481
typedef [public,nodiscriminant,flag(NDR_NOALIGN)] union {
4482
[case(AUX_TYPE_PERF_REQUESTID)] AUX_PERF_REQUESTID AUX_PERF_REQUESTID;
4483
// [case(AUX_TYPE_PERF_CLIENTDINFO)] AUX_PERF_CLIENTINFO AUX_PERF_CLIENTINFO;
4484
[case(AUX_TYPE_PERF_SERVERINFO)] AUX_PERF_SERVERINFO AUX_PERF_SERVERINFO;
4485
[case(AUX_TYPE_PERF_SESSIONINFO)] AUX_PERF_SESSIONINFO AUX_PERF_SESSIONINFO;
4486
[case(AUX_TYPE_PERF_DEFMDB_SUCCESS)] AUX_PERF_DEFMDB_SUCCESS AUX_PERF_DEFMDB_SUCCESS;
4487
[case(AUX_TYPE_PERF_DEFGC_SUCCESS)] AUX_PERF_DEFGC_SUCCESS AUX_PERF_DEFGC_SUCCESS;
4488
[case(AUX_TYPE_PERF_MDB_SUCCESS)] AUX_PERF_MDB_SUCCESS AUX_PERF_MDB_SUCCESS;
4489
[case(AUX_TYPE_PERF_GC_SUCCESS)] AUX_PERF_GC_SUCCESS AUX_PERF_GC_SUCCESS;
4490
[case(AUX_TYPE_PERF_FAILURE)] AUX_PERF_FAILURE AUX_PERF_FAILURE;
4491
[case(AUX_TYPE_CLIENT_CONTROL)] AUX_CLIENT_CONTROL AUX_CLIENT_CONTROL;
4492
[case(AUX_TYPE_PERF_PROCESSINFO)] AUX_PERF_PROCESSINFO AUX_PERF_PROCESSINFO;
4493
[case(AUX_TYPE_PERF_BG_DEFMDB_SUCCESS)] AUX_PERF_DEFMDB_SUCCESS AUX_PERF_DEFMDB_SUCCESS;
4494
[case(AUX_TYPE_PERF_BG_DEFGC_SUCCESS)] AUX_PERF_DEFGC_SUCCESS AUX_PERF_DEFGC_SUCCESS;
4495
[case(AUX_TYPE_PERF_BG_MDB_SUCCESS)] AUX_PERF_MDB_SUCCESS AUX_PERF_MDB_SUCCESS;
4496
[case(AUX_TYPE_PERF_BG_GC_SUCCESS)] AUX_PERF_GC_SUCCESS AUX_PERF_GC_SUCCESS;
4497
[case(AUX_TYPE_PERF_BG_FAILURE)] AUX_PERF_FAILURE AUX_PERF_FAILURE;
4498
[case(AUX_TYPE_PERF_FG_DEFMDB_SUCCESS)] AUX_PERF_DEFMDB_SUCCESS AUX_PERF_DEFMDB_SUCCESS;
4499
[case(AUX_TYPE_PERF_FG_DEFGC_SUCCESS)] AUX_PERF_DEFGC_SUCCESS AUX_PERF_DEFGC_SUCCESS;
4500
[case(AUX_TYPE_PERF_FG_MDB_SUCCESS)] AUX_PERF_MDB_SUCCESS AUX_PERF_MDB_SUCCESS;
4501
[case(AUX_TYPE_PERF_FG_GC_SUCCESS)] AUX_PERF_GC_SUCCESS AUX_PERG_GC_SUCCESS;
4502
[case(AUX_TYPE_PERF_FG_FAILURE)] AUX_PERF_FAILURE AUX_PERF_FAILURE;
4503
[case(AUX_TYPE_OSVERSIONINFO)] AUX_OSVERSIONINFO AUX_OSVERSIONINFO;
4504
[case(AUX_TYPE_EXORGINFO)] AUX_EXORGINFO AUX_EXORGINFO;
4505
[default][flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB Payload;
4506
} AUX_HEADER_TYPE_UNION_1;
4508
typedef [public,nodiscriminant,flag(NDR_NOALIGN)] union {
4509
[case(AUX_TYPE_PERF_REQUESTID)] AUX_PERF_REQUESTID AUX_PERF_REQUESTID;
4510
// [case(AUX_TYPE_PERF_CLIENTDINFO)] AUX_PERF_CLIENTINFO AUX_PERF_CLIENTINFO;
4511
[case(AUX_TYPE_PERF_SERVERINFO)] AUX_PERF_SERVERINFO AUX_PERF_SERVERINFO;
4512
[case(AUX_TYPE_PERF_SESSIONINFO_2)] AUX_PERF_SESSIONINFO_V2 AUX_PERF_SESSIONINFO_V2; /* V2 specific */
4513
[case(AUX_TYPE_PERF_DEFMDB_SUCCESS)] AUX_PERF_DEFMDB_SUCCESS AUX_PERF_DEFMDB_SUCCESS;
4514
[case(AUX_TYPE_PERF_DEFGC_SUCCESS)] AUX_PERF_DEFGC_SUCCESS AUX_PERF_DEFGC_SUCCESS;
4515
[case(AUX_TYPE_PERF_MDB_SUCCESS_2)] AUX_PERF_MDB_SUCCESS_V2 AUX_PERF_MDB_SUCCESS_V2; /* V2 specific */
4516
[case(AUX_TYPE_PERF_GC_SUCCESS_2)] AUX_PERF_GC_SUCCESS_V2 AUX_PERF_GC_SUCCESS_V2; /* V2 specific */
4517
[case(AUX_TYPE_PERF_FAILURE_2)] AUX_PERF_FAILURE_V2 AUX_PERF_FAILURE_V2; /* V2 specific*/
4518
[case(AUX_TYPE_CLIENT_CONTROL)] AUX_CLIENT_CONTROL AUX_CLIENT_CONTROL;
4519
[case(AUX_TYPE_PERF_PROCESSINFO)] AUX_PERF_PROCESSINFO AUX_PERF_PROCESSINFO;
4520
[case(AUX_TYPE_PERF_BG_DEFMDB_SUCCESS)] AUX_PERF_DEFMDB_SUCCESS AUX_PERF_DEFMDB_SUCCESS;
4521
[case(AUX_TYPE_PERF_BG_DEFGC_SUCCESS)] AUX_PERF_DEFGC_SUCCESS AUX_PERF_DEFGC_SUCCESS;
4522
[case(AUX_TYPE_PERF_BG_MDB_SUCCESS)] AUX_PERF_MDB_SUCCESS AUX_PERF_MDB_SUCCESS;
4523
[case(AUX_TYPE_PERF_BG_GC_SUCCESS)] AUX_PERF_GC_SUCCESS AUX_PERF_GC_SUCCESS;
4524
[case(AUX_TYPE_PERF_BG_FAILURE)] AUX_PERF_FAILURE AUX_PERF_FAILURE;
4525
[case(AUX_TYPE_PERF_FG_DEFMDB_SUCCESS)] AUX_PERF_DEFMDB_SUCCESS AUX_PERF_DEFMDB_SUCCESS;
4526
[case(AUX_TYPE_PERF_FG_DEFGC_SUCCESS)] AUX_PERF_DEFGC_SUCCESS AUX_PERF_DEFGC_SUCCESS;
4527
[case(AUX_TYPE_PERF_FG_MDB_SUCCESS)] AUX_PERF_MDB_SUCCESS AUX_PERF_MDB_SUCCESS;
4528
[case(AUX_TYPE_PERF_FG_GC_SUCCESS)] AUX_PERF_GC_SUCCESS AUX_PERG_GC_SUCCESS;
4529
[case(AUX_TYPE_PERF_FG_FAILURE)] AUX_PERF_FAILURE AUX_PERF_FAILURE;
4530
[case(AUX_TYPE_OSVERSIONINFO)] AUX_OSVERSIONINFO AUX_OSVERSIONINFO;
4531
[case(AUX_TYPE_EXORGINFO)] AUX_EXORGINFO AUX_EXORGINFO;
4532
[default][flag(NDR_REMAINING|NDR_NOALIGN)] DATA_BLOB Payload;
4533
} AUX_HEADER_TYPE_UNION_2;
4535
typedef [public,nopull,noprint,flag(NDR_NOALIGN)] struct {
4537
AUX_VERSION Version;
4539
[switch_is(Type)] AUX_HEADER_TYPE_UNION_1 Payload_1;
4540
[switch_is(Type)] AUX_HEADER_TYPE_UNION_2 Payload_2;
4543
typedef [public,nopull,noprint] struct {
4544
RPC_HEADER_EXT RPC_HEADER_EXT;
4545
[subcontext(0), subcontext_size(RPC_HEADER_EXT.Size)] AUX_HEADER *AUX_HEADER;
4549
[public,nopull,nopush,noprint] MAPISTATUS EcDoConnectEx(
4550
[out] policy_handle *handle,
4551
[in,string,charset(DOS)] uint8 szUserDN[],
4552
[in] uint32 ulFlags,
4553
[in] uint32 ulConMod,
4554
[in] uint32 cbLimit,
4556
[in] uint32 ulLcidString,
4557
[in] uint32 ulLcidSort,
4558
[in] uint32 ulIcxrLink,
4559
[in] uint16 usFCanConvertCodePages,
4560
[out] uint32 *pcmsPollsMax,
4561
[out] uint32 *pcRetry,
4562
[out] uint32 *pcmsRetryDelay,
4563
[out] uint32 *picxr,
4564
[out,ref,string,charset(DOS)]uint8 **szDNPrefix,
4565
[out,ref,string,charset(DOS)]uint8 **szDisplayName,
4566
[in] uint16 rgwClientVersion[3],
4567
[out] uint16 rgwServerVersion[3],
4568
[out] uint16 rgwBestVersion[3],
4569
[in,out] uint32 *pulTimeStamp,
4570
[in,subcontext(4),flag(NDR_NOALIGN|NDR_REMAINING)] mapi2k7_AuxInfo *rgbAuxIn,
4571
[in] uint32 cbAuxIn,
4572
[out, length_is(*pcbAuxOut), size_is(*pcbAuxOut)] mapi2k7_AuxInfo *rgbAuxOut,
4573
[in,out][range(0,0x1008)] uint32 *pcbAuxOut
4578
typedef [public,bitmap32bit] bitmap {
4579
pulFlags_NoCompression = 0x00000001,
4580
pulFlags_NoXorMagic = 0x00000002,
4581
pulFlags_Chain = 0x00000004
4584
typedef [public,nopull] struct {
4585
RPC_HEADER_EXT header;
4586
[subcontext(0),flag(NDR_REMAINING|NDR_NOALIGN)] mapi_request *mapi_request;
4589
typedef [public,nopull] struct {
4590
RPC_HEADER_EXT header;
4591
[subcontext(0),flag(NDR_NOALIGN|NDR_REMAINING)] mapi_response *mapi_response;
4594
[public,noprint] MAPISTATUS EcDoRpcExt2(
4595
[in,out] policy_handle *handle,
4596
[in,out] uint32 *pulFlags,
4597
[in, size_is(cbIn)] uint8 rgbIn[],
4599
[out, length_is(*pcbOut), size_is(*pcbOut)] uint8 rgbOut[],
4600
[in,out][range(0x0,0x40000)] uint32 *pcbOut,
4601
[in, size_is(cbAuxIn)] uint8 rgbAuxIn[],
4602
[in] uint32 cbAuxIn,
4603
[out, length_is(*pcbAuxOut), size_is(*pcbAuxOut)] uint32 rgbAuxOut[],
4604
[in,out][range(0x0,0x1008)] uint32 *pcbAuxOut,
4605
[out] uint32 *pulTransTime
4610
void EcUnknown0xC();
4614
void EcUnknown0xD();
4618
[public] MAPISTATUS EcDoAsyncConnectEx(
4619
[in] policy_handle *handle,
4620
[out] policy_handle *async_handle
4626
uuid("5261574a-4572-206e-b268-6b199213b4e4"),
4627
pointer_default(unique),
4628
endpoint("ncacn_ip_tcp:"),
4630
] interface exchange_async_emsmdb
4632
[public] MAPISTATUS EcDoAsyncWaitEx(
4633
[in] policy_handle *async_handle,
4634
[in] uint32 ulFlagsIn,
4635
[out] uint32 *pulFlagsOut
4640
uuid("c840a7dc-42c0-1a10-b4b9-08002b2fe182"),
4641
pointer_default(unique),
4642
helpstring("Unknown")
4643
] interface exchange_unknown
4645
void unknown_dummy();