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 pointer_default(unique),
46 helpstring("Exchange 2003 Directory Request For Response")
47 ] interface exchange_ds_rfr
50 #include
"mapitags_enum.h"
51 #include
"mapicodes_enum.h"
55 MAPISTATUS RfrGetNewDSA
(
57 [in,string,charset
(DOS
)] uint8
*pUserDN
,
58 [in,out,unique,string,charset
(DOS
)] uint8
**ppszUnused
,
59 [in,out,unique,string,charset
(DOS
)] uint8
**ppszServer
64 MAPISTATUS RfrGetFQDNFromLegacyDN
(
66 [in,range(10,1024)] uint32 cbMailboxServerDN
,
67 [in,string,charset
(DOS
),size_is(cbMailboxServerDN
)] uint8
*szMailboxServerDN
,
68 [out,ref,string,charset
(DOS
)] uint8
**ppszServerFQDN
73 uuid("f930c514-1215-11d3-99a5-00a0c9b61b04"),
74 helpstring("System Attendant Cluster Interface"),
75 pointer_default(unique),
77 ] interface exchange_sysatt_cluster
79 void sysatt_cluster_dummy
();
83 [83d72bf0-0d89-11ce-b13f-00aa003bac6c] MS Exchange
84 System Attendant Private Interface
88 uuid("469d6ec0-0d87-11ce-b13f-00aa003bac6c"),
89 pointer_default(unique),
90 helpstring("Exchange 5.5 System Attendant Request for Response")
91 ] interface exchange_system_attendant
97 uuid("9e8ee830-4559-11ce-979b-00aa005ffebe"),
98 pointer_default(unique),
100 helpstring("Exchange 5.5 MTA")
101 ] interface exchange_mta
113 uuid("f5cc59b4-4264-101a-8c59-08002b2f8426"),
114 pointer_default(unique),
116 helpstring("Exchange 5.5 DRS")
117 ] interface exchange_drs
130 void ds_modify_entry
();
131 void ds_modify_rdn
();
133 void ds_receive_result
();
134 void ds_remove_entry
();
138 void dra_replica_add
();
139 void dra_replica_delete
();
140 void dra_replica_synchronize
();
141 void dra_reference_update
();
142 void dra_authorize_replica
();
143 void dra_unauthorize_replica
();
145 void dra_set_status
();
146 void dra_modify_entry
();
147 void dra_delete_subref
();
151 uuid("f5cc5a7c-4264-101a-8c59-08002b2f8426"),
153 pointer_default(unique),
154 helpstring("Exchange 5.5 XDS")
155 ] interface exchange_xds
161 uuid("38a94e72-a9bc-11d2-8faf-00c04fa378ff"),
162 pointer_default(unique),
164 ] interface exchange_mta_qadmin
166 void exchange_mta_qadmin
();
171 uuid("0e4a0156-dd5d-11d2-8c2f-00c04fb6bcde"),
172 pointer_default(unique),
174 ] interface exchange_store_information
176 void exchange_store_information_dummy
();
180 uuid("f5cc5a18-4264-101a-8c59-08002b2f8426"),
181 endpoint("ncacn_np:[\\pipe\\lsass]","ncacn_np:[\\pipe\\protected_storage]","ncacn_ip_tcp:[]"),
182 pointer_default(unique),
184 helpstring("Exchange 5.5 Name Service Provider")
185 ] interface exchange_nsp
188 #define PT_UNSPECIFIED
0x0000
189 #define PT_NULL
0x0001
191 #define PT_LONG
0x0003
193 #define PT_DOUBLE
0x0005
194 #define PT_CURRENCY
0x0006
195 #define PT_APPTIME
0x0007
196 #define PT_ERROR
0x000a /* means the given attr contains no value */
197 #define PT_BOOLEAN
0x000b
198 #define PT_OBJECT
0x000d
200 #define PT_STRING8
0x001e
201 #define PT_UNICODE
0x001f
202 #define PT_SYSTIME
0x0040
203 #define PT_CLSID
0x0048
204 #define PT_SVREID
0x00fb
205 #define PT_SRESTRICT
0x00fd
206 #define PT_ACTIONS
0x00fe
207 #define PT_BINARY
0x0102
208 /* Multi-valued properties */
209 #define PT_MV_I2
0x1002
210 #define PT_MV_LONG
0x1003
211 #define PT_MV_R4
0x1004
212 #define PT_MV_DOUBLE
0x1005
213 #define PT_MV_CURRENCY
0x1006
214 #define PT_MV_APPTIME
0x1007
215 #define PT_MV_I8
0x1014
216 #define PT_MV_STRING8
0x101e
217 #define PT_MV_TSTRING
0x101e
218 #define PT_MV_UNICODE
0x101f
219 #define PT_MV_SYSTIME
0x1040
220 #define PT_MV_CLSID
0x1048
221 #define PT_MV_BINARY
0x1102
223 typedef [v1_enum] enum {
224 SortTypeDisplayName
= 0x00000000,
225 SortTypePhoneticDisplayName
= 0x00000003,
226 SortTypeDisplayName_RO
= 0x000003E8,
227 SortTypeDisplayName_W
= 0x000003E9
230 typedef [flag
(NDR_NOALIGN
)] struct {
231 TableSortOrders SortType
;
238 uint32 TemplateLocale
;
253 [range(0,100000)] uint32 cNames
;
254 [size_is(cNames
)] PropertyName_r aNames
[];
258 [range(0,100000)] uint32 cValues
;
259 [string,size_is(cValues
),charset
(DOS
)] uint8
**lppszA
;
263 [range(0,100000)] uint32 Count
;
264 [string,size_is(Count
),charset
(DOS
)] uint8
*Strings
[];
268 [range(0,100000)] uint32 cValues
;
269 [string,size_is(cValues
),charset
(UTF16
)] uint16
**lppszW
;
273 [range(0,100000)] uint32 Count
;
274 [string,size_is(Count
),charset
(UTF16
)] uint16
*Strings
[];
278 [range(0,100001)] uint32 cValues
;
279 [size_is(cValues
+1),length_is(cValues
)] MAPITAGS aulPropTag
[];
282 typedef [public] struct {
283 [range(0,2097152)] uint32 cb
;
284 [size_is(cb
)] uint8
*lpb
;
287 typedef [public] struct {
288 uint32 dwLowDateTime
;
289 uint32 dwHighDateTime
;
293 [range(0,100000)] uint32 cValues
;
294 [size_is(cValues
)] uint16
*lpi
;
298 [range(0,100000)] uint32 cValues
;
299 [size_is(cValues
)] uint32
*lpl
;
303 [range(0,100000)] uint32 cValues
;
304 [size_is(cValues
)] Binary_r
*lpbin
;
307 typedef [flag
(NDR_NOALIGN
)] struct {
308 [range(0,100000)]uint32 cValues
;
309 [size_is(cValues
)] FlatUID_r
**lpguid
;
313 [range(0,100000)] uint32 cValues
;
314 [size_is(cValues
)] FILETIME
*lpft
;
317 typedef [switch_type(uint32
)] union {
318 [case(PT_I2
)] uint16 i
;
319 [case(PT_LONG
)] uint32 l
;
320 [case(PT_DOUBLE
)] dlong dbl
;
321 [case(PT_BOOLEAN
)] uint8 b
;
322 [case(PT_I8
)] dlong d
;
323 [case(PT_STRING8
)][unique][string,charset
(DOS
)] uint8
*lpszA
;
324 [case(PT_BINARY
)] Binary_r bin
;
325 [case(PT_UNICODE
)][string,charset
(UTF16
)] uint16
*lpszW
;
326 [case(PT_CLSID
)] FlatUID_r
*lpguid
;
327 [case(PT_SYSTIME
)] FILETIME ft
;
328 [case(PT_ERROR
)] MAPISTATUS err
;
329 [case(PT_MV_I2
)] ShortArray_r MVi
;
330 [case(PT_MV_LONG
)] LongArray_r MVl
;
331 [case(PT_MV_STRING8
)] StringArray_r MVszA
;
332 [case(PT_MV_BINARY
)] BinaryArray_r MVbin
;
333 [case(PT_MV_CLSID
)] FlatUIDArray_r MVguid
;
334 [case(PT_MV_UNICODE
)] WStringArray_r MVszW
;
335 [case(PT_MV_SYSTIME
)] DateTimeArray_r MVft
;
336 [case(PT_NULL
)] uint32 null
;
337 [case(PT_OBJECT
)] uint32
object;
340 typedef [public]struct {
343 [switch_is(ulPropTag
& 0xFFFF)] SPropValue_CTR value
;
347 uint32 ulAdrEntryPad
;
348 [range(0,100000)] uint32 cValues
;
349 [size_is(cValues
)]SPropValue
*lpProps
;
353 typedef [public] struct {
354 [range(0,100000)] uint32 cRows
;
355 [size_is(cRows
)] SRow aRow
[];
359 [range(0,100000)] uint32 cRes
;
360 [size_is(cRes
)] Restriction_r
*lpRes
;
364 [range(0,100000)] uint32 cRes
;
365 [size_is(cRes
)] Restriction_r
*lpRes
;
369 Restriction_r
*lpRes
;
376 } ContentRestriction_r
;
382 } PropertyRestriction_r
;
388 } ComparePropsRestriction_r
;
394 } BitMaskRestriction_r
;
406 } ExistRestriction_r
;
410 Restriction_r
*lpRes
;
413 typedef [v1_enum] enum {
419 RES_COMPAREPROPS
= 0x5,
423 RES_SUBRESTRICTION
= 0x9,
427 typedef [switch_type(uint32
)] union {
428 [case(RES_AND
)] AndRestriction_r resAnd
;
429 [case(RES_OR
)] OrRestriction_r resOr
;
430 [case(RES_NOT
)] NotRestriction_r resNot
;
431 [case(RES_CONTENT
)] ContentRestriction_r resContent
;
432 [case(RES_PROPERTY
)] PropertyRestriction_r resProperty
;
433 [case(RES_COMPAREPROPS
)] ComparePropsRestriction_r resCompareProps
;
434 [case(RES_BITMASK
)] BitMaskRestriction_r resBitMask
;
435 [case(RES_SIZE
)] SizeRestriction_r resSize
;
436 [case(RES_EXIST
)] ExistRestriction_r resExist
;
437 [case(RES_SUBRESTRICTION
)] SubRestriction_r resSub
;
438 } RestrictionUnion_r
;
440 typedef [public] struct _Restriction_r
{
441 RestrictionType_r rt
;
442 [switch_is(rt
)] RestrictionUnion_r res
;
447 typedef [bitmap32bit
] bitmap
{
448 fAnonymousLogin
= 0x00000020
452 [in] NspiBind_dwFlags dwFlags
,
454 [in,out,unique] GUID
*mapiuid
,
455 [out] policy_handle
*handle
460 MAPISTATUS NspiUnbind
(
461 [in, out] policy_handle
*handle,
467 MAPISTATUS NspiUpdateStat
(
468 [in] policy_handle
*handle,
469 [in] uint32 Reserved
,
470 [in,out] STAT
*pStat
,
471 [in,out,unique] uint32
*plDelta
476 typedef [bitmap32bit
] bitmap
{
477 fSkipObjects
= 0x00000001,
479 } NspiQueryRows_dwFlags
;
481 MAPISTATUS NspiQueryRows
(
482 [in] policy_handle
*handle,
483 [in] NspiQueryRows_dwFlags dwFlags
,
484 [in,out] STAT
*pStat
,
485 [in,range(0,100000)] uint32 dwETableCount
,
486 [in,unique,size_is(dwETableCount
)] uint32
*lpETable
,
488 [in,unique] SPropTagArray
*pPropTags
,
489 [out] SRowSet
**ppRows
494 MAPISTATUS NspiSeekEntries
(
495 [in] policy_handle
*handle,
496 [in] uint32 Reserved
,
497 [in,out] STAT
*pStat
,
498 [in] SPropValue
*pTarget
,
499 [in,unique] SPropTagArray
*lpETable
,
500 [in,unique] SPropTagArray
*pPropTags
,
501 [out] SRowSet
**pRows
506 MAPISTATUS NspiGetMatches
(
507 [in] policy_handle
*handle,
508 [in] uint32 Reserved
,
509 [in,out] STAT
*pStat
,
510 [in][unique] SPropTagArray
*pReserved
,
511 [in] uint32 Reserved2
,
512 [in][unique] Restriction_r
*Filter
,
513 [in][unique] PropertyName_r
*lpPropName
,
514 [in] uint32 ulRequested
,
515 [out] SPropTagArray
**ppOutMIds
,
516 [in][unique] SPropTagArray
*pPropTags
,
517 [out] SRowSet
**ppRows
522 MAPISTATUS NspiResortRestriction
(
523 [in] policy_handle
*handle,
524 [in] uint32 Reserved
,
525 [in,out] STAT
*pStat
,
526 [in] SPropTagArray
*pInMIds
,
527 [in,out] SPropTagArray
**ppMIds
532 MAPISTATUS NspiDNToMId
(
533 [in] policy_handle
*handle,
534 [in] uint32 Reserved
,
535 [in] StringsArray_r
*pNames
,
536 [out] SPropTagArray
**ppMIds
541 MAPISTATUS NspiGetPropList
(
542 [in] policy_handle
*handle,
545 [in] uint32 CodePage
,
546 [out] SPropTagArray
**ppPropTags
551 MAPISTATUS NspiGetProps
(
552 [in] policy_handle
*handle,
555 [in,unique] SPropTagArray
*pPropTags
,
561 MAPISTATUS NspiCompareMIds
(
562 [in] policy_handle
*handle,
563 [in] uint32 Reserved
,
567 [out] uint32
*plResult
572 MAPISTATUS NspiModProps
(
573 [in] policy_handle
*handle,
574 [in] uint32 Reserved
,
576 [in,unique] SPropTagArray
*pPropTags
,
582 typedef [bitmap32bit
] bitmap
{
583 NspiAddressCreationTemplates
= 0x00000002,
584 NspiUnicodeStrings
= 0x00000004
585 } NspiGetSpecialTable_dwFlags
;
587 MAPISTATUS NspiGetSpecialTable
(
588 [in] policy_handle
*handle,
589 [in] NspiGetSpecialTable_dwFlags dwFlags
,
591 [in,out] uint32
*lpVersion
,
592 [out] SRowSet
**ppRows
595 /*******************/
597 typedef [bitmap32bit
] bitmap
{
598 TI_TEMPLATE
= 0x00000001,
599 TI_SCRIPT
= 0x00000004,
601 TI_HELPFILE_NAME
= 0x00000020,
602 TI_HELPFILE_CONTENTS
= 0x00000040
605 MAPISTATUS NspiGetTemplateInfo
(
606 [in] policy_handle
*handle,
607 [in] TI_dwFlags dwFlags
,
609 [in,unique,string,charset
(DOS
)] uint8
*pDN
,
610 [in] uint32 dwCodePage
,
611 [in] uint32 dwLocaleID
,
615 /*******************/
617 MAPISTATUS NspiModLinkAtt
(
618 [in] policy_handle
*handle,
620 [in] uint32 ulPropTag
,
622 [in] BinaryArray_r
*lpEntryIds
625 /*************************************/
626 /* Function 0x0f: Not used on wire */
627 MAPISTATUS NspiDeleteEntries
(
628 [in] policy_handle
*Reserved1
,
629 [in] uint32 Reserved2
,
630 [in] uint32 Reserved3
,
631 [in] BinaryArray_r
*Reserved4
634 /*******************/
636 typedef [bitmap32bit
] bitmap
{
637 NspiUnicodeProptypes
= 0x80000000
638 } NspiQueryColumns_dwFlags
;
640 MAPISTATUS NspiQueryColumns
(
641 [in] policy_handle
*handle,
642 [in] uint32 Reserved
,
643 [in] NspiQueryColumns_dwFlags dwFlags
,
644 [out] SPropTagArray
**ppColumns
647 /*******************/
649 MAPISTATUS NspiGetNamesFromIDs
(
650 [in] policy_handle
*handle,
651 [in] uint32 Reserved
,
652 [in,unique] FlatUID_r
*lpGuid
,
653 [in,unique] SPropTagArray
*pPropTags
,
654 [out] SPropTagArray
**ppReturnedPropTags
,
655 [out] PropertyNameSet_r
**ppNames
658 /*******************/
660 MAPISTATUS NspiGetIDsFromNames
(
661 [in] policy_handle
*handle,
662 [in] uint32 Reserved
,
664 [in,range(0,100000)] uint32 cPropNames
,
665 [in,size_is(cPropNames
)] PropertyName_r
**ppNames
,
666 [out] SPropTagArray
**ppPropTags
671 MAPISTATUS NspiResolveNames
(
672 [in] policy_handle
*handle,
673 [in] uint32 Reserved
,
675 [in,unique] SPropTagArray
*pPropTags
,
676 [in] StringsArray_r
*paStr
,
677 [out] SPropTagArray
**ppMIds
,
678 [out] SRowSet
**ppRows
683 MAPISTATUS NspiResolveNamesW
(
684 [in] policy_handle
*handle,
685 [in] uint32 Reserved
,
687 [in,unique] SPropTagArray
*pPropTags
,
688 [in] WStringsArray_r
*paWStr
,
689 [out] SPropTagArray
**ppMIds
,
690 [out] SRowSet
**ppRows
695 uuid("a4f1db00-ca47-1067-b31f-00dd010662da"),
696 pointer_default(unique),
697 endpoint("ncacn_np:[\\pipe\\lsass]","ncacn_np:[\\pipe\\protected_storage]","ncacn_ip_tcp:"),
700 helpstring("Exchange 5.5 EMSMDB")
701 ] interface exchange_emsmdb
706 MAPISTATUS EcDoConnect
(
707 [out] policy_handle
*handle,
708 [in,string,charset
(DOS
)] uint8 szUserDN
[],
710 [in] uint32 ulConMod
,
713 [in] uint32 ulLcidString
,
714 [in] uint32 ulLcidSort
,
715 [in] uint32 ulIcxrLink
,
716 [in] uint16 usFCanConvertCodePages
,
717 [out] uint32
*pcmsPollsMax
,
718 [out] uint32
*pcRetry
,
719 [out] uint32
*pcmsRetryDelay
,
721 [out,unique,string,charset
(DOS
)]uint8
*szDNPrefix
,
722 [out,unique,string,charset
(DOS
)]uint8
*szDisplayName
,
723 [out] uint16 rgwServerVersion
[3],
724 [in,out] uint16 rgwClientVersion
[3],
725 [in,out] uint32
*pullTimeStamp
730 MAPISTATUS EcDoDisconnect
(
731 [in,out] policy_handle
*handle
741 typedef [public, enum8bit
, flag
(NDR_PAHEX
)] enum
748 MAPI_MAILUSER
= 0x6, /* Individual Recipient */
757 typedef [public, v1_enum, flag
(NDR_PAHEX
)] enum
759 RightsNone
= 0x00000000,
760 RightsReadItems
= 0x00000001,
761 RightsCreateItems
= 0x00000002,
762 RightsEditOwn
= 0x00000008,
763 RightsDeleteOwn
= 0x00000010,
764 RightsEditAll
= 0x00000020,
765 RightsDeleteAll
= 0x00000040,
766 RightsCreateSubfolders
= 0x00000080,
767 RightsFolderOwner
= 0x00000100,
768 RightsFolderContact
= 0x00000200,
769 RoleNone
= 0x00000400,
770 RoleReviewer
= 0x00000401,
771 RoleContributor
= 0x00000402,
772 RoleNoneditingAuthor
= 0x00000413,
773 RoleAuthor
= 0x0000041B,
774 RoleEditor
= 0x0000047B,
775 RolePublishAuthor
= 0x0000049B,
776 RolePublishEditor
= 0x000004FB,
777 RightsAll
= 0x000005FB,
778 RoleOwner
= 0x000007FB
781 typedef [public, enum8bit
, flag
(NDR_PAHEX
)] enum
783 op_MAPI_Release
= 0x1,
784 op_MAPI_OpenFolder
= 0x2,
785 op_MAPI_OpenMessage
= 0x3,
786 op_MAPI_GetHierarchyTable
= 0x4,
787 op_MAPI_GetContentsTable
= 0x5,
788 op_MAPI_CreateMessage
= 0x6,
789 op_MAPI_GetProps
= 0x7,
790 op_MAPI_GetPropsAll
= 0x8,
791 op_MAPI_GetPropList
= 0x9,
792 op_MAPI_SetProps
= 0xa,
793 op_MAPI_DeleteProps
= 0xb,
794 op_MAPI_SaveChangesMessage
= 0xc,
795 op_MAPI_RemoveAllRecipients
= 0xd,
796 op_MAPI_ModifyRecipients
= 0xe,
797 op_MAPI_ReadRecipients
= 0xf,
798 op_MAPI_ReloadCachedInformation
= 0x10,
799 op_MAPI_SetMessageReadFlag
= 0x11,
800 op_MAPI_SetColumns
= 0x12,
801 op_MAPI_SortTable
= 0x13,
802 op_MAPI_Restrict
= 0x14,
803 op_MAPI_QueryRows
= 0x15,
804 op_MAPI_GetStatus
= 0x16,
805 op_MAPI_QueryPosition
= 0x17,
806 op_MAPI_SeekRow
= 0x18,
807 op_MAPI_SeekRowBookmark
= 0x19,
808 op_MAPI_SeekRowApprox
= 0x1a,
809 op_MAPI_CreateBookmark
= 0x1b,
810 op_MAPI_CreateFolder
= 0x1c,
811 op_MAPI_DeleteFolder
= 0x1d,
812 op_MAPI_DeleteMessages
= 0x1e,
813 op_MAPI_GetMessageStatus
= 0x1f,
814 op_MAPI_SetMessageStatus
= 0x20,
815 op_MAPI_GetAttachmentTable
= 0x21,
816 op_MAPI_OpenAttach
= 0x22,
817 op_MAPI_CreateAttach
= 0x23,
818 op_MAPI_DeleteAttach
= 0x24,
819 op_MAPI_SaveChangesAttachment
= 0x25,
820 op_MAPI_SetReceiveFolder
= 0x26,
821 op_MAPI_GetReceiveFolder
= 0x27,
822 op_MAPI_RegisterNotification
= 0x29,
823 op_MAPI_Notify
= 0x2a,
824 op_MAPI_OpenStream
= 0x2b,
825 op_MAPI_ReadStream
= 0x2c,
826 op_MAPI_WriteStream
= 0x2d,
827 op_MAPI_SeekStream
= 0x2e,
828 op_MAPI_SetStreamSize
= 0x2f,
829 op_MAPI_SetSearchCriteria
= 0x30,
830 op_MAPI_GetSearchCriteria
= 0x31,
831 op_MAPI_SubmitMessage
= 0x32,
832 op_MAPI_MoveCopyMessages
= 0x33,
833 op_MAPI_AbortSubmit
= 0x34,
834 op_MAPI_MoveFolder
= 0x35,
835 op_MAPI_CopyFolder
= 0x36,
836 op_MAPI_QueryColumnsAll
= 0x37,
837 op_MAPI_Abort
= 0x38,
838 op_MAPI_CopyTo
= 0x39,
839 op_MAPI_CopyToStream
= 0x3a,
840 op_MAPI_GetTable
= 0x3e,
841 op_MAPI_GetRulesTable
= 0x3f,
842 op_MAPI_ModifyTable
= 0x40,
843 op_MAPI_ModifyRules
= 0x41,
844 op_MAPI_GetOwningServers
= 0x42,
845 op_MAPI_LongTermIdFromId
= 0x43,
846 op_MAPI_IdFromLongTermId
= 0x44,
847 op_MAPI_PublicFolderIsGhosted
= 0x45,
848 op_MAPI_OpenEmbeddedMessage
= 0x46,
849 op_MAPI_SetSpooler
= 0x47,
850 op_MAPI_SpoolerLockMessage
= 0x48,
851 op_MAPI_AddressTypes
= 0x49,
852 op_MAPI_TransportSend
= 0x4a,
853 op_MAPI_FastTransferSourceGetBuffer
= 0x4e,
854 op_MAPI_FindRow
= 0x4f,
855 op_MAPI_Progress
= 0x50,
856 op_MAPI_GetNamesFromIDs
= 0x55,
857 op_MAPI_GetIDsFromNames
= 0x56,
858 op_MAPI_UpdateDeferredActionMessages
= 0x57,
859 op_MAPI_EmptyFolder
= 0x58,
860 op_MAPI_ExpandRow
= 0x59,
861 op_MAPI_CollapseRow
= 0x5a,
862 op_MAPI_LockRegionStream
= 0x5b,
863 op_MAPI_UnlockRegionStream
= 0x5c,
864 op_MAPI_CommitStream
= 0x5d,
865 op_MAPI_GetStreamSize
= 0x5e,
866 op_MAPI_QueryNamedProperties
= 0x5f,
867 op_MAPI_GetPerUserLongTermIds
= 0x60,
868 op_MAPI_GetPerUserGuid
= 0x61,
869 op_MAPI_ReadPerUserInformation
= 0x63,
870 op_MAPI_SetReadFlags
= 0x66,
871 op_MAPI_CopyProperties
= 0x67,
872 op_MAPI_GetReceiveFolderTable
= 0x68,
873 op_MAPI_GetCollapseState
= 0x6b,
874 op_MAPI_SetCollapseState
= 0x6c,
875 op_MAPI_GetTransportFolder
= 0x6d,
876 op_MAPI_Pending
= 0x6e,
877 op_MAPI_RegisterOptions
= 0x6f,
878 op_MAPI_SyncConfigure
= 0x70,
879 op_MAPI_SyncImportMessageChange
= 0x72,
880 op_MAPI_SyncImportHierarchyChange
= 0x73,
881 op_MAPI_SyncImportDeletes
= 0x74,
882 op_MAPI_SyncUploadStateStreamBegin
= 0x75,
883 op_MAPI_SyncUploadStateStreamContinue
= 0x76,
884 op_MAPI_SyncUploadStateStreamEnd
= 0x77,
885 op_MAPI_SyncImportMessageMove
= 0x78,
886 op_MAPI_SetPropertiesNoReplicate
= 0x79,
887 op_MAPI_DeletePropertiesNoReplicate
= 0x7a,
888 op_MAPI_GetStoreState
= 0x7b,
889 op_MAPI_SyncOpenCollector
= 0x7e,
890 op_MAPI_GetLocalReplicaIds
= 0x7f,
891 op_MAPI_SyncImportReadStateChanges
= 0x80,
892 op_MAPI_ResetTable
= 0x81,
893 op_MAPI_SyncGetTransferState
= 0x82,
894 op_MAPI_OpenPublicFolderByName
= 0x87,
895 op_MAPI_SetSyncNotificationGuid
= 0x88,
896 op_MAPI_FreeBookmark
= 0x89,
897 op_MAPI_HardDeleteMessages
= 0x91,
898 op_MAPI_Logon
= 0xfe,
899 /****** custom MAPI opnum for mapiproxy ******/
900 op_MAPI_proxypack
= 0xa5
904 typedef [public,noprint
,flag
(NDR_NOALIGN
)] struct {
906 [flag
(NDR_BUFFERS
)]uint8 lpb
[cb
];
909 typedef [public] struct {
912 } mapi_MV_LONG_STRUCT
;
914 typedef [public] struct {
918 typedef [public] struct {
920 mapi_LPSTR strings
[cValues
];
924 [flag
(STR_NULLTERM
)] string lppszW
;
929 mapi_LPWSTR strings
[cValues
];
932 typedef [public] struct {
934 SBinary_short bin
[cValues
];
939 GUID lpguid
[cValues
];
942 /******* part of the no-pointer deep recursion hack *******/
943 typedef [nopull
,nopush
,noprint
,flag
(NDR_NOALIGN
)] struct {
945 } mapi_SRestriction_wrap
;
947 typedef [nopush
,nopull
,noprint
,flag
(NDR_NOALIGN
)] struct {
949 } mapi_SPropValue_wrap
;
951 typedef [nopush
,nopull
,noprint
,flag
(NDR_NOALIGN
)] struct {
953 } mapi_SPropValue_array_wrap
;
954 /**********************************************************/
956 typedef [enum8bit
] enum {
957 ActionType_OP_MOVE
= 0x1,
958 ActionType_OP_COPY
= 0x2,
959 ActionType_OP_REPLY
= 0x3,
960 ActionType_OP_OOF_REPLY
= 0x4,
961 ActionType_OP_DEFER_ACTION
= 0x5,
962 ActionType_OP_BOUNCE
= 0x6,
963 ActionType_OP_FORWARD
= 0x7,
964 ActionType_OP_DELEGATE
= 0x8,
965 ActionType_OP_TAG
= 0x9,
966 ActionType_OP_DELETE
= 0xA,
967 ActionType_OP_MARK_AS_READ
= 0xB
970 typedef [flag
(NDR_NOALIGN
)] struct {
971 boolean8 FolderInThisStore
;
972 SBinary_short StoreEID
;
973 SBinary_short FolderEID
;
976 typedef [flag
(NDR_NOALIGN
)] struct {
977 hyper ReplyTemplateFID
;
978 hyper ReplyTemplateMID
;
979 GUID ReplyTemplateGUID
;
982 typedef [flag
(NDR_NOALIGN
)] struct {
984 mapi_SPropValue_array_wrap PropertyValue
;
987 typedef [flag
(NDR_NOALIGN
)] enum {
988 BOUNCE_MESSAGE_TOO_LARGE
= 0x0000000d,
989 BOUNCE_MESSAGE_NOT_DISPLAYED
= 0x0000001f,
990 BOUNCE_MESSAGE_DENIED
= 0x00000026
993 typedef [flag
(NDR_NOALIGN
)] struct {
994 uint16 RecipientCount
;
995 RecipientBlock RecipientBlock
[RecipientCount
];
996 } ForwardDelegate_Action
;
998 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
999 [case(ActionType_OP_MOVE
)] MoveCopy_Action MoveAction
;
1000 [case(ActionType_OP_COPY
)] MoveCopy_Action CopyAction
;
1001 [case(ActionType_OP_REPLY
)] ReplyOOF_Action ReplyAction
;
1002 [case(ActionType_OP_OOF_REPLY
)] ReplyOOF_Action ReplyOOFAction
;
1003 [case(ActionType_OP_DEFER_ACTION
)][flag
(NDR_REMAINING
)] DATA_BLOB DeferAction
;
1004 [case(ActionType_OP_BOUNCE
)] BounceCode BounceCode
;
1005 [case(ActionType_OP_TAG
)] mapi_SPropValue_wrap PropValue
;
1006 [case(ActionType_OP_FORWARD
)] ForwardDelegate_Action ForwardAction
;
1007 [case(ActionType_OP_DELEGATE
)] ForwardDelegate_Action DelegateAction
;
1008 [case(ActionType_OP_DELETE
)];
1009 [case(ActionType_OP_MARK_AS_READ
)];
1012 typedef [flag
(NDR_NOALIGN
)] struct {
1013 ActionType ActionType
;
1014 uint32 ActionFlavor
;
1016 [switch_is(ActionType
)] ActionData ActionDataBuffer
;
1019 typedef [flag
(NDR_NOALIGN
)] struct {
1020 uint16 ActionLength
;
1021 [subcontext
(0),subcontext_size
(ActionLength
),flag
(NDR_REMAINING
)] ActionBlockData ActionBlockData
;
1024 typedef [flag
(NDR_NOALIGN
)] struct {
1026 ActionBlock ActionBlock
[count
];
1029 typedef [public,nodiscriminant
,flag
(NDR_NOALIGN
)] union {
1030 [case(PT_I2
)] uint16 i
;
1031 [case(PT_LONG
)] uint32 l
;
1032 [case(PT_DOUBLE
)] dlong dbl
;
1033 [case(PT_ERROR
)] uint32 err
;
1034 [case(PT_BOOLEAN
)] uint8 b
;
1035 [case(PT_I8
)] dlong d
;
1036 [case(PT_STRING8
)] astring lpszA
;
1037 [case(PT_UNICODE
)][flag
(STR_NULLTERM
)] string lpszW
;
1038 [case(PT_SYSTIME
)] FILETIME ft
;
1039 [case(PT_CLSID
)] GUID lpguid
;
1040 [case(PT_SRESTRICT
)] mapi_SRestriction_wrap Restrictions
;
1041 [case(PT_ACTIONS
)] RuleAction RuleAction
;
1042 [case(PT_BINARY
)] SBinary_short bin
;
1043 [case(PT_SVREID
)] SBinary_short bin
;
1044 [case(PT_MV_LONG
)] mapi_MV_LONG_STRUCT MVl
;
1045 [case(PT_MV_STRING8
)] mapi_SLPSTRArray MVszA
;
1046 [case(PT_MV_UNICODE
)] mapi_SPLSTRArrayW MVszW
;
1047 [case(PT_MV_CLSID
)] mapi_SGuidArray MVguid
;
1048 [case(PT_MV_BINARY
)] mapi_SBinaryArray MVbin
;
1049 } mapi_SPropValue_CTR
;
1051 typedef [public,flag
(NDR_NOALIGN
)] struct {
1053 [switch_is(ulPropTag
& 0xFFFF)] mapi_SPropValue_CTR value
;
1056 typedef [public,flag
(NDR_NOALIGN
)] struct {
1058 [flag
(NDR_REMAINING
)]mapi_SPropValue lpProps
[cValues
];
1059 } mapi_SPropValue_array
;
1061 typedef [flag
(NDR_NOALIGN
)] struct {
1063 MAPITAGS aulPropTag
[cValues
];
1064 } mapi_SPropTagArray
;
1066 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
1072 typedef [flag
(NDR_NOALIGN
)] struct {
1073 ulRowFlags ulRowFlags
;
1074 mapi_SPropValue_array lpProps
;
1077 typedef [flag
(NDR_NOALIGN
)] struct {
1080 mapi_SRow aEntries
[cEntries
];
1083 /**************************/
1084 /* EcDoRpc Function 0x1 */
1085 typedef [nopush
,nopull
,flag
(NDR_NOALIGN
)] struct {
1088 typedef [nopush
,nopull
,flag
(NDR_NOALIGN
)] struct {
1091 /**************************/
1092 /* EcDoRpc Function 0x2 */
1093 typedef [enum8bit
] enum {
1094 OpenModeFlags_Folder
= 0x0,
1095 OpenModeFlags_SoftDeleted
= 0x4
1096 } OpenFolder_OpenModeFlags
;
1098 typedef [flag
(NDR_NOALIGN
)] struct {
1101 OpenFolder_OpenModeFlags OpenModeFlags
;
1104 typedef [flag
(NDR_NOALIGN
)] struct {
1106 uint16 CheapServerCount
;
1107 astring Servers
[ServerCount
];
1108 } OpenFolder_Replicas
;
1110 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1112 [case(0x1)] OpenFolder_Replicas Replicas
;
1115 typedef [flag
(NDR_NOALIGN
)] struct {
1118 [switch_is(IsGhosted
)] IsGhosted Ghost
;
1121 /**************************/
1122 /* EcDoRpc Function 0x3 */
1123 typedef [enum8bit
] enum {
1124 StringType_NONE
= 0x0,
1125 StringType_EMPTY
= 0x1,
1126 StringType_STRING8
= 0x2,
1127 StringType_UNICODE_REDUCED
= 0x3,
1128 StringType_UNICODE
= 0x4
1131 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1134 [case(0x2)] astring lpszA
;
1135 [case(0x3)] astring lpszW_reduced
;
1136 [case(0x4)] [flag
(STR_NULLTERM
)] string lpszW
;
1139 typedef [flag
(NDR_NOALIGN
)] struct {
1140 StringType StringType
;
1141 [switch_is(StringType
)] String String;
1144 typedef [bitmap8bit
] bitmap
{
1145 /* 0x0 means Read Only */
1148 } OpenMessage_OpenModeFlags
;
1150 typedef [flag
(NDR_NOALIGN
)] struct {
1154 OpenMessage_OpenModeFlags OpenModeFlags
;
1158 typedef [v1_enum, flag
(NDR_PAHEX
)] enum {
1159 CP_USASCII
= 0x04E4,
1160 CP_UNICODE
= 0x04B0,
1161 CP_JAUTODETECT
= 0xC6F4,
1162 CP_KAUTODETECT
= 0xC705,
1163 CP_ISO2022JPESC
= 0xC42D,
1164 CP_ISO2022JPSIO
= 0xC42E
1167 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
1174 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
1175 SINGLE_RECIPIENT
= 0x0,
1176 DISTRIBUTION_LIST
= 0x1
1179 typedef [flag
(NDR_NOALIGN
)]struct {
1180 uint8 organization_length
;
1181 addr_type addr_type
;
1185 typedef [flag
(NDR_NOALIGN
)] struct {
1188 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1189 [case(0x0)] RecipExchange EXCHANGE
;
1190 [case(0xA)] RecipSMTP SMTP
;
1194 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1196 [case(0x400)] astring lpszA
;
1197 [case(0x600)][flag
(STR_NULLTERM
)] string lpszW
;
1199 } recipient_SimpleDisplayName
;
1201 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1203 [case(0x20)] astring lpszA
;
1204 [case(0x220)][flag
(STR_NULLTERM
)] string lpszW
;
1206 } recipient_TransmittableDisplayName
;
1208 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1210 [case(0x10)] astring lpszA
;
1211 [case(0x210)][flag
(STR_NULLTERM
)] string lpszW
;
1213 } recipient_DisplayName
;
1215 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1217 [case(0x8)] astring lpszA
;
1218 [case(0x208)][flag
(STR_NULLTERM
)] string lpszW
;
1220 } recipient_EmailAddress
;
1222 typedef [flag
(NDR_NOALIGN
)] struct {
1223 uint16 RecipientFlags
;
1224 [switch_is(RecipientFlags
& 0xA)] recipient_type type
;
1225 [switch_is(RecipientFlags
& 0x208)] recipient_EmailAddress EmailAddress
;
1226 [switch_is(RecipientFlags
& 0x210)] recipient_DisplayName DisplayName
;
1227 [switch_is(RecipientFlags
& 0x600)] recipient_SimpleDisplayName SimpleDisplayName
;
1228 [switch_is(RecipientFlags
& 0x220)] recipient_TransmittableDisplayName TransmittableDisplayName
;
1231 [flag
(NDR_REMAINING
)] DATA_BLOB prop_values
;
1234 typedef [flag
(NDR_NOALIGN
)] struct {
1235 ulRecipClass RecipClass
;
1236 CODEPAGEID codepage
;
1237 [subcontext
(2)] RecipientRow RecipientRow
;
1238 } OpenMessage_recipients
;
1240 typedef [flag
(NDR_NOALIGN
)] struct {
1241 boolean8 HasNamedProperties
;
1242 TypedString SubjectPrefix
;
1243 TypedString NormalizedSubject
;
1244 uint16 RecipientCount
;
1245 mapi_SPropTagArray RecipientColumns
;
1247 OpenMessage_recipients recipients
[RowCount
];
1250 /**************************/
1251 /* EcDoRpc Function 0x4 */
1252 typedef [bitmap8bit
] bitmap
{
1253 TableFlags_Depth
= 0x4,
1254 TableFlags_DeferredErrors
= 0x8,
1255 TableFlags_NoNotifications
= 0x10,
1256 TableFlags_SoftDeletes
= 0x20,
1257 TableFlags_UseUnicode
= 0x40,
1258 TableFlags_SuppressNotifications
= 0x80
1261 typedef [flag
(NDR_NOALIGN
)] struct {
1263 TableFlags TableFlags
;
1264 } GetHierarchyTable_req
;
1266 typedef [flag
(NDR_NOALIGN
)] struct {
1268 } GetHierarchyTable_repl
;
1270 /**************************/
1271 /* EcDoRpc Function 0x5 */
1272 typedef [flag
(NDR_NOALIGN
)] struct {
1274 TableFlags TableFlags
;
1275 } GetContentsTable_req
;
1277 typedef [flag
(NDR_NOALIGN
)] struct {
1279 } GetContentsTable_repl
;
1281 /**************************/
1282 /* EcDoRpc Function 0x6 */
1283 typedef [flag
(NDR_NOALIGN
)] struct {
1287 boolean8 AssociatedFlag
;
1288 } CreateMessage_req
;
1290 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1292 [case(0x1)] hyper MessageId
;
1293 } CreateMessage_MessageId
;
1295 typedef [flag
(NDR_NOALIGN
)] struct {
1296 boolean8 HasMessageId
;
1297 [switch_is(HasMessageId
)] CreateMessage_MessageId MessageId
;
1298 } CreateMessage_repl
;
1300 /*************************/
1301 /* EcDoRpc Function 0x7 */
1302 typedef [flag
(NDR_NOALIGN
)] struct {
1303 uint16 PropertySizeLimit
;
1306 MAPITAGS properties
[prop_count
];
1309 typedef [flag
(NDR_NOALIGN
)] struct {
1311 [flag
(NDR_REMAINING
)] DATA_BLOB prop_data
;
1314 /*************************/
1315 /* EcDoRpc Function 0x8 */
1316 typedef [flag
(NDR_NOALIGN
)] struct {
1317 uint16 PropertySizeLimit
;
1321 typedef [flag
(NDR_NOALIGN
)] struct {
1322 mapi_SPropValue_array properties
;
1325 /*************************/
1326 /* EcDoRpc Function 0x9 */
1327 typedef [flag
(NDR_NOALIGN
)] struct {
1330 typedef [flag
(NDR_NOALIGN
)] struct {
1332 MAPITAGS tags
[count
];
1335 /*************************/
1336 /* EcDoRpc Function 0xa */
1337 typedef [flag
(NDR_NOALIGN
)] struct {
1338 uint32 index
; /* index into array of property tags */
1339 MAPITAGS property_tag
; /* property for which there was an error */
1340 MAPISTATUS error_code
; /* the error that occurred for this property */
1343 typedef [flag
(NDR_NOALIGN
)] struct {
1344 [subcontext
(2)] mapi_SPropValue_array values
;
1347 typedef [flag
(NDR_NOALIGN
)] struct {
1348 uint16 PropertyProblemCount
;
1349 PropertyProblem PropertyProblem
[PropertyProblemCount
];
1352 /*************************/
1353 /* EcDoRpc Function 0xb */
1354 typedef [flag
(NDR_NOALIGN
)] struct {
1356 MAPITAGS tags
[count
];
1359 typedef [flag
(NDR_NOALIGN
)] struct {
1360 uint16 PropertyProblemCount
;
1361 PropertyProblem PropertyProblem
[PropertyProblemCount
];
1364 /*************************/
1365 /* EcDoRpc Function 0xc */
1366 typedef [enum8bit
] enum {
1367 KeepOpenReadOnly
= 0x9,
1368 KeepOpenReadWrite
= 0xA,
1372 typedef [flag
(NDR_NOALIGN
)] struct {
1375 } SaveChangesMessage_req
;
1377 typedef [flag
(NDR_NOALIGN
)] struct {
1380 } SaveChangesMessage_repl
;
1382 /*************************/
1383 /* EcDoRpc Function 0xd */
1384 typedef [flag
(NDR_NOALIGN
)] struct {
1386 } RemoveAllRecipients_req
;
1388 typedef [flag
(NDR_NOALIGN
)] struct {
1390 } RemoveAllRecipients_repl
;
1392 /*************************/
1393 /* EcDoRpc Function 0xe */
1396 * MODRECIP_NULL and INVALID are not part of the msdn flags
1397 * but are added for printing support
1399 typedef [enum8bit
,flag
(NDR_PAHEX
)] enum {
1400 MODRECIP_NULL
= 0x0,
1401 MODRECIP_INVALID
= 0x1,
1403 MODRECIP_MODIFY
= 0x4,
1404 MODRECIP_REMOVE
= 0x8
1407 typedef [flag
(NDR_NOALIGN
)]struct {
1409 ulRecipClass RecipClass
;
1410 [subcontext
(2),flag
(NDR_REMAINING
)] RecipientRow RecipientRow
;
1411 } ModifyRecipientRow
;
1413 typedef [flag
(NDR_NOALIGN
)] struct {
1415 MAPITAGS properties
[prop_count
];
1417 ModifyRecipientRow RecipientRow
[cValues
];
1418 } ModifyRecipients_req
;
1420 typedef [flag
(NDR_NOALIGN
)] struct {
1422 } ModifyRecipients_repl
;
1424 /*************************/
1425 /* EcDoRpc Function 0xf */
1426 typedef [flag
(NDR_NOALIGN
)] struct {
1429 } ReadRecipients_req
;
1431 typedef [flag
(NDR_NOALIGN
)] struct {
1433 ulRecipClass RecipientType
;
1436 [subcontext
(2)] RecipientRow RecipientRow
;
1439 typedef [flag
(NDR_NOALIGN
)] struct {
1441 ReadRecipientRow RecipientRows
[RowCount
];
1442 } ReadRecipients_repl
;
1444 /*************************/
1445 /* EcDoRpc Function 0x10 */
1446 typedef [flag
(NDR_NOALIGN
)] struct {
1447 ulRecipClass RecipientType
;
1450 uint16 RecipientRowSize
;
1451 [subcontext
(0),subcontext_size
(RecipientRowSize
),flag
(NDR_REMAINING
)]RecipientRow RecipientRow
;
1454 typedef [flag
(NDR_NOALIGN
)] struct {
1456 } ReloadCachedInformation_req
;
1458 typedef [flag
(NDR_NOALIGN
)] struct {
1459 boolean8 HasNamedProperties
;
1460 TypedString SubjectPrefix
;
1461 TypedString NormalizedSubject
;
1462 uint16 RecipientCount
;
1464 MAPITAGS RecipientColumns
[ColumnCount
];
1466 OpenRecipientRow RecipientRows
[RowCount
];
1467 } ReloadCachedInformation_repl
;
1469 /*************************/
1470 /* EcDoRpc Function 0x11 */
1472 typedef [bitmap8bit
] bitmap
{
1473 SUPPRESS_RECEIPT
= 0x01,
1474 CLEAR_READ_FLAG
= 0x04,
1475 MAPI_DEFERRED_ERRORS
= 0x08,
1476 GENERATE_RECEIPT_ONLY
= 0x10,
1477 CLEAR_RN_PENDING
= 0x20,
1478 CLEAR_NRN_PENDING
= 0x40
1481 /* TODO: there is a variation that can provide "client data" here */
1482 typedef [flag
(NDR_NOALIGN
)] struct {
1485 [flag
(NDR_REMAINING
)] DATA_BLOB clientdata
;
1486 } SetMessageReadFlag_req
;
1488 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1490 [case(0x1)] uint8 LogonId
;
1491 } SetMessageReadFlag_LogonId
;
1493 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1495 [case(0x1)] uint8 ClientData
[24];
1496 } SetMessageReadFlag_ClientData
;
1498 typedef [flag
(NDR_NOALIGN
)] struct {
1499 boolean8 ReadStatusChanged
;
1500 [switch_is(ReadStatusChanged
)] SetMessageReadFlag_LogonId LogonId
;
1501 [switch_is(ReadStatusChanged
)] SetMessageReadFlag_ClientData ClientData
;
1502 } SetMessageReadFlag_repl
;
1504 /*************************/
1505 /* EcDoRpc Function 0x12 */
1506 typedef [enum8bit
] enum {
1507 SetColumns_TBL_SYNC
= 0x0,
1508 SetColumns_TBL_ASYNC
= 0x1
1511 typedef [enum8bit
] enum {
1512 TBLSTAT_COMPLETE
= 0x0,
1513 TBLSTAT_SORTING
= 0x9,
1514 TBLSTAT_SORT_ERROR
= 0xA,
1515 TBLSTAT_SETTING_COLS
= 0xB,
1516 TBLSTAT_SETCOL_ERROR
= 0xD,
1517 TBLSTAT_RESTRICTING
= 0xE,
1518 TBLSTAT_RESTRICT_ERROR
= 0xF
1521 typedef [flag
(NDR_NOALIGN
)] struct {
1522 SetColumnsFlags SetColumnsFlags
;
1524 MAPITAGS properties
[prop_count
];
1527 typedef [flag
(NDR_NOALIGN
)] struct {
1528 TableStatus TableStatus
;
1531 /**************************/
1532 /* EcDoRpc Function 0x13 */
1533 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
1538 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
1539 TABLE_SORT_ASCEND
= 0x0,
1540 TABLE_SORT_COMBINE
= 0x1,
1541 TABLE_SORT_DESCEND
= 0x2
1544 typedef [public, flag
(NDR_NOALIGN
)] struct _SSortOrder
{
1549 typedef [public, flag
(NDR_NOALIGN
)] struct _SSortOrderSet
{
1553 SSortOrder aSort
[cSorts
];
1556 typedef [flag
(NDR_NOALIGN
)] struct {
1557 uint8 SortTableFlags
;
1558 SSortOrderSet lpSortCriteria
;
1561 typedef [flag
(NDR_NOALIGN
)] struct {
1562 TableStatus TableStatus
;
1565 /**************************/
1566 /* EcDoRpc Function 0x14 */
1567 typedef [flag
(NDR_NOALIGN
)] struct {
1569 mapi_SRestriction_and res
[cRes
];
1570 } mapi_SAndRestriction
;
1572 typedef [flag
(NDR_NOALIGN
)] struct {
1574 mapi_SRestriction_or res
[cRes
];
1575 } mapi_SOrRestriction
;
1577 typedef [flag
(NDR_NOALIGN
)] struct {
1578 mapi_SRestriction_wrap res
;
1579 } mapi_SNotRestriction
;
1581 typedef [noprint
, bitmap32bit
] bitmap
{
1582 FL_FULLSTRING
= 0x00000,
1583 FL_SUBSTRING
= 0x00001,
1584 FL_PREFIX
= 0x00002,
1585 FL_IGNORECASE
= 0x10000,
1586 FL_IGNORENONSPACE
= 0x20000,
1590 typedef [flag
(NDR_NOALIGN
)] struct {
1593 mapi_SPropValue lpProp
;
1594 } mapi_SContentRestriction
;
1596 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
1601 typedef [flag
(NDR_NOALIGN
)] struct {
1605 } mapi_SBitmaskRestriction
;
1607 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
1608 RELOP_LT
= 0x0, /* < */
1609 RELOP_LE
= 0x1, /* <= */
1610 RELOP_GT
= 0x2, /* > */
1611 RELOP_GE
= 0x3, /* >= */
1612 RELOP_EQ
= 0x4, /* == */
1613 RELOP_NE
= 0x5, /* != */
1614 RELOP_RE
= 0x6 /* LIKE (Regular expression) */
1617 typedef [flag
(NDR_NOALIGN
)] struct {
1621 } mapi_SSizeRestriction
;
1623 typedef [flag
(NDR_NOALIGN
)] struct {
1626 mapi_SPropValue lpProp
;
1627 } mapi_SPropertyRestriction
;
1629 typedef [flag
(NDR_NOALIGN
)] struct {
1631 MAPITAGS ulPropTag1
;
1632 MAPITAGS ulPropTag2
;
1633 } mapi_SCompareProps
;
1635 typedef [flag
(NDR_NOALIGN
)] struct {
1637 } mapi_SExistRestriction
;
1639 typedef [flag
(NDR_NOALIGN
)] struct {
1640 MAPITAGS ulSubObject
;
1641 mapi_SRestriction_sub res
[ulSubObject
- ulSubObject
+ 1]; /* nasty hack - generates fake pointer */
1642 } mapi_SSubRestriction
;
1644 typedef [nopush
,nopull
,noprint
,nodiscriminant
] union {
1646 [case(0x1)] mapi_SRestriction_comment
*res
;
1647 } RestrictionVariable
;
1649 typedef [flag
(NDR_NOALIGN
)] struct {
1650 uint8 TaggedValuesCount
;
1651 mapi_SPropValue TaggedValues
[TaggedValuesCount
];
1652 boolean8 RestrictionPresent
;
1653 [switch_is(RestrictionPresent
)] RestrictionVariable Restriction
;
1654 } mapi_SCommentRestriction
;
1656 typedef [public,nodiscriminant
] union {
1657 [case(RES_AND
)] mapi_SAndRestriction resAnd
;
1658 [case(RES_OR
)] mapi_SOrRestriction resOr
;
1659 [case(RES_NOT
)] mapi_SNotRestriction resNot
;
1660 [case(RES_CONTENT
)] mapi_SContentRestriction resContent
;
1661 [case(RES_PROPERTY
)] mapi_SPropertyRestriction resProperty
;
1662 [case(RES_COMPAREPROPS
)] mapi_SCompareProps resCompareProps
;
1663 [case(RES_BITMASK
)] mapi_SBitmaskRestriction resBitmask
;
1664 [case(RES_SIZE
)] mapi_SSizeRestriction resSize
;
1665 [case(RES_EXIST
)] mapi_SExistRestriction resExist
;
1666 [case(RES_SUBRESTRICTION
)] mapi_SSubRestriction resSub
;
1667 [case(RES_COMMENT
)] mapi_SCommentRestriction resComment
;
1669 } mapi_SRestriction_CTR
;
1671 typedef [public,flag
(NDR_NOALIGN
)] struct {
1673 [switch_is(rt
)] mapi_SRestriction_CTR res
;
1674 } mapi_SRestriction
;
1676 typedef [public,flag
(NDR_NOALIGN
)] struct _mapi_SRestriction
{
1678 [switch_is(rt
)] mapi_SRestriction_CTR res
;
1679 } mapi_SRestriction_and
;
1681 typedef [public,flag
(NDR_NOALIGN
)] struct _mapi_SRestriction
{
1683 [switch_is(rt
)] mapi_SRestriction_CTR res
;
1684 } mapi_SRestriction_or
;
1686 typedef [public,flag
(NDR_NOALIGN
)] struct _mapi_SRestriction
{
1688 [switch_is(rt
)] mapi_SRestriction_CTR res
;
1689 } mapi_SRestriction_sub
;
1691 typedef [public,flag
(NDR_NOALIGN
)] struct _mapi_SRestriction
{
1693 [switch_is(rt
)] mapi_SRestriction_CTR res
;
1694 } mapi_SRestriction_comment
;
1696 typedef [flag
(NDR_NOALIGN
)] struct {
1698 [subcontext
(2)] mapi_SRestriction restrictions
;
1701 typedef [flag
(NDR_NOALIGN
)] struct {
1702 TableStatus TableStatus
;
1705 /**************************/
1706 /* EcDoRpc Function 0x15 */
1707 typedef [enum8bit
] enum {
1709 TBL_NOADVANCE
= 0x1,
1710 TBL_ENABLEPACKEDBUFFERS
= 0x2
1713 typedef [flag
(NDR_NOALIGN
)] struct {
1714 QueryRowsFlags QueryRowsFlags
;
1719 typedef [nopush
,nopull
,flag
(NDR_NOALIGN
)] struct {
1722 [flag
(NDR_REMAINING
)]DATA_BLOB RowData
;
1725 /**************************/
1726 /* EcDoRpc Function 0x16 */
1727 typedef [flag
(NDR_NOALIGN
)] struct {
1730 typedef [flag
(NDR_NOALIGN
)] struct {
1731 TableStatus TableStatus
;
1734 /**************************/
1735 /* EcDoRpc Function 0x17 */
1736 typedef [flag
(NDR_NOALIGN
)] struct {
1737 } QueryPosition_req
;
1739 typedef [flag
(NDR_NOALIGN
)] struct {
1742 } QueryPosition_repl
;
1744 /**************************/
1745 /* EcDoRpc Function 0x18 */
1746 typedef [enum8bit
] enum {
1747 BOOKMARK_BEGINNING
= 0x0,
1748 BOOKMARK_CURRENT
= 0x1,
1753 typedef [flag
(NDR_NOALIGN
)] struct {
1756 boolean8 WantRowMovedCount
;
1759 typedef [flag
(NDR_NOALIGN
)] struct {
1760 boolean8 HasSoughtLess
;
1764 /**************************/
1765 /* EcDoRpc Function 0x19 */
1766 typedef [flag
(NDR_NOALIGN
)] struct {
1767 SBinary_short Bookmark
;
1769 boolean8 WantRowMovedCount
;
1770 } SeekRowBookmark_req
;
1772 typedef [flag
(NDR_NOALIGN
)] struct {
1773 boolean8 RowNoLongerVisible
;
1774 boolean8 HasSoughtLess
;
1776 } SeekRowBookmark_repl
;
1778 /**************************/
1779 /* EcDoRpc Function 0x1a */
1780 typedef [flag
(NDR_NOALIGN
)] struct {
1782 uint32 ulDenominator
;
1783 } SeekRowApprox_req
;
1785 typedef [flag
(NDR_NOALIGN
)] struct {
1786 } SeekRowApprox_repl
;
1788 /**************************/
1789 /* EcDoRpc Function 0x1b */
1790 typedef [flag
(NDR_NOALIGN
)] struct {
1791 } CreateBookmark_req
;
1793 typedef [flag
(NDR_NOALIGN
)] struct {
1794 SBinary_short bookmark
;
1795 } CreateBookmark_repl
;
1797 /**************************/
1798 /* EcDoRpc Function 0x1c */
1799 typedef [enum8bit
] enum {
1800 FOLDER_GENERIC
= 0x1,
1804 typedef [enum8bit
] enum {
1805 MAPI_FOLDER_ANSI
= 0x0,
1806 MAPI_FOLDER_UNICODE
= 0x1
1809 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1810 [case(MAPI_FOLDER_ANSI
)] astring lpszA
;
1811 [case(MAPI_FOLDER_UNICODE
)][flag
(STR_NULLTERM
)] string lpszW
;
1814 typedef [enum16bit
] enum {
1816 OPEN_IF_EXISTS
= 0x0001
1819 typedef [flag
(NDR_NOALIGN
)] struct {
1821 FOLDER_TYPE ulFolderType
;
1822 FOLDER_STRING ulType
;
1823 FOLDER_FLAGS ulFlags
;
1824 [switch_is(ulType
)] LPTSTR FolderName
;
1825 [switch_is(ulType
)] LPTSTR FolderComment
;
1828 typedef [flag
(NDR_NOALIGN
)] struct {
1831 [switch_is(IsGhosted
)] IsGhosted Ghost
;
1832 } CreateFolder_GhostInfo
;
1834 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1836 [case(0x1)] CreateFolder_GhostInfo GhostInfo
;
1837 } CreateFolder_GhostUnion
;
1839 typedef [flag
(NDR_NOALIGN
)] struct {
1841 boolean8 IsExistingFolder
;
1842 [switch_is(IsExistingFolder
)] CreateFolder_GhostUnion GhostUnion
;
1843 } CreateFolder_repl
;
1845 /**************************/
1846 /* EcDoRpc Function 0x1d */
1847 typedef [bitmap8bit
] bitmap
{
1850 DELETE_HARD_DELETE
= 0x10
1851 } DeleteFolderFlags
;
1853 typedef [flag
(NDR_NOALIGN
)] struct {
1854 DeleteFolderFlags DeleteFolderFlags
;
1858 typedef [flag
(NDR_NOALIGN
)] struct {
1859 boolean8 PartialCompletion
;
1860 } DeleteFolder_repl
;
1862 /**************************/
1863 /* EcDoRpc Function 0x1e */
1864 typedef [flag
(NDR_NOALIGN
)] struct {
1865 boolean8 WantAsynchronous
;
1866 boolean8 NotifyNonRead
;
1868 hyper message_ids
[cn_ids
];
1869 } DeleteMessages_req
;
1871 typedef [flag
(NDR_NOALIGN
)] struct {
1872 boolean8 PartialCompletion
;
1873 } DeleteMessages_repl
;
1875 /**************************/
1876 /* EcDoRpc Function 0x1f */
1877 typedef [flag
(NDR_NOALIGN
)] struct {
1879 } GetMessageStatus_req
;
1881 /**************************/
1882 /* EcDoRpc Function 0x20 */
1883 typedef [bitmap32bit
] bitmap
{
1884 MSGSTATUS_HIGHLIGHTED
= 0x1,
1885 MSGSTATUS_TAGGED
= 0x2,
1886 MSGSTATUS_HIDDEN
= 0x4,
1887 MSGSTATUS_DELMARKED
= 0x8,
1888 MSGSTATUS_REMOTE_DOWNLOAD
= 0x1000,
1889 MSGSTATUS_REMOTE_DELETE
= 0x2000
1893 typedef [flag
(NDR_NOALIGN
)] struct {
1896 ulMessageStatus ulNewStatusMask
;
1897 } SetMessageStatus_req
;
1899 typedef [flag
(NDR_NOALIGN
)] struct {
1900 ulMessageStatus ulOldStatus
;
1901 } SetMessageStatus_repl
;
1903 /**************************/
1904 /* EcDoRpc Function 0x21 */
1905 typedef [flag
(NDR_NOALIGN
)] struct {
1907 TableFlags TableFlags
;
1908 } GetAttachmentTable_req
;
1910 typedef [flag
(NDR_NOALIGN
)] struct {
1911 } GetAttachmentTable_repl
;
1913 /*************************/
1914 /* EcDoRpc Function 0x22 */
1915 typedef [enum8bit
] enum {
1916 OpenAttachmentFlags_ReadOnly
= 0x0,
1917 OpenAttachmentFlags_ReadWrite
= 0x1,
1918 OpenAttachmentFlags_BestAccess
= 0x3
1919 } OpenAttachmentFlags
;
1921 typedef [flag
(NDR_NOALIGN
)] struct {
1923 OpenAttachmentFlags OpenAttachmentFlags
;
1924 uint32 AttachmentID
;
1927 typedef [flag
(NDR_NOALIGN
)] struct {
1930 /*************************/
1931 /* EcDoRpc Function 0x23 */
1932 typedef [flag
(NDR_NOALIGN
)] struct {
1936 typedef [flag
(NDR_NOALIGN
)] struct {
1937 uint32 AttachmentID
;
1938 } CreateAttach_repl
;
1940 /*************************/
1941 /* EcDoRpc Function 0x24 */
1942 typedef [flag
(NDR_NOALIGN
)] struct {
1943 uint32 AttachmentID
;
1947 typedef [flag
(NDR_NOALIGN
)] struct {
1948 } DeleteAttach_repl
;
1950 /*************************/
1951 /* EcDoRpc Function 0x25 */
1952 typedef [flag
(NDR_NOALIGN
)] struct {
1954 SaveFlags SaveFlags
;
1955 } SaveChangesAttachment_req
;
1957 typedef [flag
(NDR_NOALIGN
)] struct {
1958 } SaveChangesAttachment_repl
;
1960 /*************************/
1961 /* EcDoRpc Function 0x26 */
1962 typedef [flag
(NDR_NOALIGN
)] struct {
1964 astring lpszMessageClass
;
1965 } SetReceiveFolder_req
;
1967 typedef [flag
(NDR_NOALIGN
)] struct {
1968 } SetReceiveFolder_repl
;
1970 /*************************/
1971 /* EcDoRpc Function 0x27 */
1972 typedef [flag
(NDR_NOALIGN
)] struct {
1973 astring MessageClass
;
1974 } GetReceiveFolder_req
;
1976 typedef [flag
(NDR_NOALIGN
)] struct {
1978 astring MessageClass
;
1979 } GetReceiveFolder_repl
;
1981 /*************************/
1982 /* EcDoRpc Function 0x29 */
1983 typedef [bitmap16bit
] bitmap
{
1984 fnevCriticalError
= 0x0001,
1985 fnevNewMail
= 0x0002,
1986 fnevObjectCreated
= 0x0004,
1987 fnevObjectDeleted
= 0x0008,
1988 fnevObjectModified
= 0x0010,
1989 fnevObjectMoved
= 0x0020,
1990 fnevObjectCopied
= 0x0040,
1991 fnevSearchComplete
= 0x0080,
1992 fnevTableModified
= 0x0100,
1993 fnevStatusObjectModified
= 0x0200,
1994 fnevReserved
= 0x0400,
1999 } NotificationFlags
;
2001 typedef [nodiscriminant
,flag
(NDR_NOALIGN
)] union {
2002 [case(0x0)] hyper ID;
2006 typedef [flag
(NDR_NOALIGN
)] struct {
2008 NotificationFlags NotificationFlags
;
2009 boolean8 WantWholeStore
;
2010 [switch_is(WantWholeStore
)] hyperbool FolderId
;
2011 [switch_is(WantWholeStore
)] hyperbool MessageId
;
2012 } RegisterNotification_req
;
2014 typedef [flag
(NDR_NOALIGN
)] struct {
2015 } RegisterNotification_repl
;
2017 /*************************/
2018 /* EcDoRpc Function 0x2a */
2019 typedef [bitmap32bit
] bitmap
{
2021 MSGFLAG_UNMODIFIED
= 0x2,
2022 MSGFLAG_SUBMIT
= 0x4,
2023 MSGFLAG_UNSENT
= 0x8,
2024 MSGFLAG_HASATTACH
= 0x10,
2025 MSGFLAG_FROMME
= 0x20,
2026 MSGFLAG_ASSOCIATED
= 0x40,
2027 MSGFLAG_RESEND
= 0x80,
2028 MSGFLAG_RN_PENDING
= 0x100,
2029 MSGFLAG_NRN_PENDING
= 0x200
2032 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
2033 [case(0x0)] astring lpszA
;
2034 [case(0x1)][flag
(STR_NULLTERM
)] string lpszW
;
2037 typedef [flag
(NDR_NOALIGN
)] struct {
2039 uint8 GlobalCounter
[6];
2042 typedef [enum16bit
] enum {
2043 TABLE_CHANGED
= 0x1,
2044 TABLE_ROW_ADDED
= 0x3,
2045 TABLE_ROW_DELETED
= 0x4,
2046 TABLE_ROW_MODIFIED
= 0x5,
2047 TABLE_RESTRICT_DONE
= 0x7
2048 } RichTableNotificationType
;
2050 /* NewMailNotification: case 0x2 and 0x8002 */
2051 typedef [flag
(NDR_NOALIGN
)] struct {
2054 MsgFlags MessageFlags
;
2055 boolean8 UnicodeFlag
;
2056 [switch_is(UnicodeFlag
)] MessageClass MessageClass
;
2057 } NewMailNotification
;
2059 /* FolderCreatedNotification: case 0x4 */
2060 typedef [flag
(NDR_NOALIGN
)] struct {
2064 MAPITAGS Tags
[TagCount
];
2065 } FolderCreatedNotification
;
2067 /* FolderDeletedNotification: case 0x8 */
2068 typedef [flag
(NDR_NOALIGN
)] struct {
2071 } FolderDeletedNotification
;
2073 /* FolderModifiedNotification: case 0x10 */
2074 typedef [flag
(NDR_NOALIGN
)] struct {
2077 MAPITAGS Tags
[TagCount
];
2078 } FolderModifiedNotification_10
;
2080 /* FolderMoveCopyNotification: case 0x20 and 0x40 */
2081 typedef [flag
(NDR_NOALIGN
)] struct {
2086 } FolderMoveCopyNotification
;
2088 /* SearchCompleteNotification: case 0x80 */
2089 typedef [flag
(NDR_NOALIGN
)] struct {
2091 } SearchCompleteNotification
;
2093 /* HierarchyTable: case 0x100 */
2094 typedef [flag
(NDR_NOALIGN
)] struct {
2096 hyper InsertAfterFID
;
2097 [subcontext
(2)] DATA_BLOB Columns
;
2098 } HierarchyRowAddedNotification
;
2100 typedef [flag
(NDR_NOALIGN
)] struct {
2102 } HierarchyRowDeletedNotification
;
2104 typedef [flag
(NDR_NOALIGN
)] struct {
2106 hyper InsertAfterFID
;
2107 [subcontext
(2)] DATA_BLOB Columns
;
2108 } HierarchyRowModifiedNotification
;
2110 typedef [nodiscriminant
] union {
2111 [case(TABLE_ROW_ADDED
)] HierarchyRowAddedNotification HierarchyRowAddedNotification
;
2112 [case(TABLE_ROW_DELETED
)] HierarchyRowDeletedNotification HierarchyRowDeletedNotification
;
2113 [case(TABLE_ROW_MODIFIED
)] HierarchyRowModifiedNotification HierarchyRowModifiedNotification
;
2115 } HierarchyTableChangeUnion
;
2117 typedef [flag
(NDR_NOALIGN
)] struct {
2118 RichTableNotificationType TableEvent
;
2119 [switch_is(TableEvent
)] HierarchyTableChangeUnion HierarchyTableChangeUnion
;
2120 } HierarchyTableChange
;
2122 /* IcsNotification: case 0x200 */
2123 typedef [flag
(NDR_NOALIGN
)] struct {
2124 boolean8 HierChanged
;
2129 /* FolderModifiedNotification: case 0x1010 */
2130 typedef [flag
(NDR_NOALIGN
)] struct {
2133 MAPITAGS Tags
[TagCount
];
2134 uint32 TotalMessageCount
;
2135 } FolderModifiedNotification_1010
;
2137 /* FolderModifiedNotification: case 0x2010 */
2138 typedef [flag
(NDR_NOALIGN
)] struct {
2141 MAPITAGS Tags
[TagCount
];
2142 uint32 UnreadMessageCount
;
2143 } FolderModifiedNotification_2010
;
2145 /* FolderModifiedNotification: case 0x3010 */
2146 typedef [flag
(NDR_NOALIGN
)] struct {
2149 MAPITAGS Tags
[TagCount
];
2150 uint32 TotalMessageCount
;
2151 uint32 UnreadMessageCount
;
2152 } FolderModifiedNotification_3010
;
2154 /* MessageCreatedNotification: case 0x8004 */
2155 typedef [flag
(NDR_NOALIGN
)] struct {
2159 MAPITAGS Tags
[TagCount
];
2160 } MessageCreatedNotification
;
2162 /* MessageDeletedNotification: case 0x8008 */
2163 typedef [flag
(NDR_NOALIGN
)] struct {
2166 } MessageDeletedNotification
;
2168 /* MessageModifiedNotification: case 0x8010 */
2169 typedef [flag
(NDR_NOALIGN
)] struct {
2173 MAPITAGS Tags
[TagCount
];
2174 } MessageModifiedNotification
;
2176 /* MessageMoveCopyNotification: case 0x8020 and 0x8040 */
2177 typedef [flag
(NDR_NOALIGN
)] struct {
2182 } MessageMoveCopyNotification
;
2184 /* ContentsTableChange: case 0x8100 and 0xc100 */
2185 typedef [flag
(NDR_NOALIGN
)] struct {
2189 hyper InsertAfterFID
;
2190 hyper InsertAfterMID
;
2191 uint32 InsertAfterInstance
;
2192 [subcontext
(2)] DATA_BLOB Columns
;
2193 } ContentsRowAddedNotification
;
2195 typedef [flag
(NDR_NOALIGN
)] struct {
2199 } ContentsRowDeletedNotification
;
2201 typedef [flag
(NDR_NOALIGN
)] struct {
2205 hyper InsertAfterFID
;
2206 hyper InsertAfterMID
;
2207 uint32 InsertAfterInstance
;
2208 [subcontext
(2)] DATA_BLOB Columns
;
2209 } ContentsRowModifiedNotification
;
2211 typedef [nodiscriminant
] union {
2212 [case(TABLE_ROW_ADDED
)] ContentsRowAddedNotification ContentsRowAddedNotification
;
2213 [case(TABLE_ROW_DELETED
)] ContentsRowDeletedNotification ContentsRowDeletedNotification
;
2214 [case(TABLE_ROW_MODIFIED
)] ContentsRowModifiedNotification ContentsRowModifiedNotification
;
2216 } ContentsTableChangeUnion
;
2218 typedef [flag
(NDR_NOALIGN
)] struct {
2219 RichTableNotificationType TableEvent
;
2220 [switch_is(TableEvent
)] ContentsTableChangeUnion ContentsTableChangeUnion
;
2221 } ContentsTableChange
;
2223 /* SearchMessageRemovedNotification: case 0xc008 */
2224 typedef [flag
(NDR_NOALIGN
)] struct {
2228 } SearchMessageRemovedNotification
;
2230 /* SearchMessageModifiedNotification: 0xc010 */
2231 typedef [flag
(NDR_NOALIGN
)] struct {
2236 MAPITAGS Tags
[TagCount
];
2237 } SearchMessageModifiedNotification
;
2239 typedef [nodiscriminant
] union {
2240 [case(0x0002)] NewMailNotification NewMailNotification
;
2241 [case(0x0004)] FolderCreatedNotification FolderCreatedNotification
;
2242 [case(0x0008)] FolderDeletedNotification FolderDeletedNotification
;
2243 [case(0x0010)] FolderModifiedNotification_10 FolderModifiedNotification_10
;
2244 [case(0x0020)] FolderMoveCopyNotification FolderMoveNotification
;
2245 [case(0x0040)] FolderMoveCopyNotification FolderCopyNotification
;
2246 [case(0x0080)] SearchCompleteNotification SearchCompleteNotification
;
2247 [case(0x0100)] HierarchyTableChange HierarchyTableChange
;
2248 [case(0x0200)] IcsNotification IcsNotification
;
2249 [case(0x1010)] FolderModifiedNotification_1010 FolderModifiedNotification_1010
;
2250 [case(0x2010)] FolderModifiedNotification_2010 FolderModifiedNotification_2010
;
2251 [case(0x3010)] FolderModifiedNotification_3010 FolderModifiedNotification_3010
;
2252 [case(0x8002)] NewMailNotification NewMessageNotification
;
2253 [case(0x8004)] MessageCreatedNotification MessageCreatedNotification
;
2254 [case(0x8008)] MessageDeletedNotification MessageDeletedNotification
;
2255 [case(0x8010)] MessageModifiedNotification MessageModifiedNotification
;
2256 [case(0x8020)] MessageMoveCopyNotification MessageMoveNotification
;
2257 [case(0x8040)] MessageMoveCopyNotification MessageCopyNotification
;
2258 [case(0x8100)] ContentsTableChange ContentsTableChange
;
2259 [case(0xc008)] SearchMessageRemovedNotification SearchMessageRemovedNotification
;
2260 [case(0xc010)] SearchMessageModifiedNotification SearchMessageModifiedNotification
;
2261 [case(0xc100)] ContentsTableChange SearchTableChange
;
2264 typedef [flag
(NDR_NOALIGN
)] struct {
2265 uint32 NotificationHandle
;
2267 NotificationFlags NotificationType
;
2268 [switch_is(NotificationType
)] NotificationData NotificationData
;
2271 /*************************/
2272 /* EcDoRpc Function 0x2b */
2273 typedef [enum8bit
] enum {
2274 OpenStream_ReadOnly
= 0x0,
2275 OpenStream_ReadWrite
= 0x1,
2276 OpenStream_Create
= 0x2,
2277 OpenStream_BestAccess
= 0x3
2278 } OpenStream_OpenModeFlags
;
2280 typedef [flag
(NDR_NOALIGN
)] struct {
2282 MAPITAGS PropertyTag
;
2283 OpenStream_OpenModeFlags OpenModeFlags
;
2286 typedef [flag
(NDR_NOALIGN
)] struct {
2290 /*************************/
2291 /* EcDoRpc Function 0x2c */
2292 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
2293 [case(0xBABE)] uint32 value
;
2297 typedef [flag
(NDR_NOALIGN
)] struct {
2299 [switch_is(ByteCount
)] MaximumByteCount MaximumByteCount
;
2302 typedef [flag
(NDR_ALIGN2
)] struct {
2303 [subcontext
(2), flag
(NDR_REMAINING
)] DATA_BLOB data
;
2306 /*************************/
2307 /* EcDoRpc Function 0x2d */
2308 typedef [flag
(NDR_NOALIGN
)] struct {
2309 [subcontext
(2), flag
(NDR_REMAINING
)] DATA_BLOB data
;
2313 typedef [flag
(NDR_NOALIGN
)] struct {
2317 /*************************/
2318 /* EcDoRpc Function 0x2e */
2319 typedef [flag
(NDR_NOALIGN
)] struct {
2324 typedef [flag
(NDR_NOALIGN
)] struct {
2328 /*************************/
2329 /* EcDoRpc Function 0x2f */
2330 typedef [flag
(NDR_NOALIGN
)] struct {
2332 } SetStreamSize_req
;
2334 typedef [flag
(NDR_NOALIGN
)] struct {
2335 } SetStreamSize_repl
;
2337 /*************************/
2338 /* EcDoRpc Function 0x30 */
2339 typedef [bitmap32bit
, flag
(NDR_PAHEX
)] bitmap
{
2340 STOP_SEARCH
= 0x00000001,
2341 RESTART_SEARCH
= 0x00000002,
2342 RECURSIVE_SEARCH
= 0x00000004,
2343 SHALLOW_SEARCH
= 0x00000008,
2344 FOREGROUND_SEARCH
= 0x00000010,
2345 BACKGROUND_SEARCH
= 0x00000020,
2346 CONTENT_INDEXED_SEARCH
= 0x00010000,
2347 NON_CONTENT_INDEXED_SEARCH
= 0x00020000,
2348 STATIC_SEARCH
= 0x00040000
2351 typedef [flag
(NDR_NOALIGN
)] struct {
2352 [subcontext
(2)] mapi_SRestriction res
;
2353 uint16 FolderIdCount
;
2354 hyper FolderIds
[FolderIdCount
];
2355 SearchFlags SearchFlags
;
2356 } SetSearchCriteria_req
;
2358 typedef [flag
(NDR_NOALIGN
)] struct {
2359 } SetSearchCriteria_repl
;
2361 /*************************/
2362 /* EcDoRpc Function 0x31 */
2363 typedef [flag
(NDR_NOALIGN
)] struct {
2364 boolean8 UseUnicode
;
2365 boolean8 IncludeRestriction
;
2366 boolean8 IncludeFolders
;
2367 } GetSearchCriteria_req
;
2369 typedef [flag
(NDR_NOALIGN
)] struct {
2370 [subcontext
(2)] mapi_SRestriction res
;
2372 uint16 FolderIdCount
;
2373 hyper FolderIds
[FolderIdCount
];
2374 SearchFlags SearchFlags
;
2375 } GetSearchCriteria_repl
;
2377 /*************************/
2378 /* EcDoRpc Function 0x32 */
2379 typedef [enum8bit
] enum {
2380 None
= 0x0, /* None */
2381 PreProcess
= 0x1, /* Needs to be preprocessed by the server */
2382 NeedsSpooler
= 0x2 /* Is to be processed by a client spooler */
2385 typedef [flag
(NDR_NOALIGN
)] struct {
2386 SubmitFlags SubmitFlags
;
2387 } SubmitMessage_req
;
2389 typedef [flag
(NDR_NOALIGN
)] struct {
2390 } SubmitMessage_repl
;
2392 /*************************/
2393 /* EcDoRpc Function 0x33 */
2394 typedef [flag
(NDR_NOALIGN
)] struct {
2397 hyper message_id
[count
];
2398 boolean8 WantAsynchronous
;
2400 } MoveCopyMessages_req
;
2402 typedef [flag
(NDR_NOALIGN
)] struct {
2403 boolean8 PartialCompletion
;
2404 } MoveCopyMessages_repl
;
2406 /*************************/
2407 /* EcDoRpc Function 0x34 */
2408 typedef [flag
(NDR_NOALIGN
)] struct {
2413 typedef [flag
(NDR_NOALIGN
)] struct {
2416 /*************************/
2417 /* EcDoRpc Function 0x35 */
2418 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
2419 [case(0x0)] astring lpszA
;
2420 [case(0x1)][flag
(STR_NULLTERM
)] string lpszW
;
2423 typedef [flag
(NDR_NOALIGN
)] struct {
2425 boolean8 WantAsynchronous
;
2426 boolean8 UseUnicode
;
2428 [switch_is(UseUnicode
)] Folder_name NewFolderName
;
2431 typedef [flag
(NDR_NOALIGN
)] struct {
2432 boolean8 PartialCompletion
;
2435 /*************************/
2436 /* EcDoRpc Function 0x36 */
2437 typedef [flag
(NDR_NOALIGN
)] struct {
2439 boolean8 WantAsynchronous
;
2440 boolean8 WantRecursive
;
2441 boolean8 UseUnicode
;
2443 [switch_is(UseUnicode
)] Folder_name NewFolderName
;
2446 typedef [flag
(NDR_NOALIGN
)] struct {
2447 boolean8 PartialCompletion
;
2450 /*************************/
2451 /* EcDoRpc Function 0x37 */
2452 typedef [flag
(NDR_NOALIGN
)] struct {
2453 } QueryColumnsAll_req
;
2455 typedef [flag
(NDR_NOALIGN
)] struct {
2456 uint16 PropertyTagCount
;
2457 MAPITAGS PropertyTags
[PropertyTagCount
];
2458 } QueryColumnsAll_repl
;
2460 /*************************/
2461 /* EcDoRpc Function 0x38 */
2462 typedef [flag
(NDR_NOALIGN
)] struct {
2465 typedef [flag
(NDR_NOALIGN
)] struct {
2466 TableStatus TableStatus
;
2469 /*************************/
2470 /* EcDoRpc Function 0x39 */
2471 typedef [bitmap8bit
] bitmap
{
2472 CopyFlagsMove
= 0x1, /* Move properties */
2473 CopyFlagsNoOverwrite
= 0x2 /* Do not overwrite existing properties */
2476 typedef [flag
(NDR_NOALIGN
)] struct {
2478 boolean8 WantAsynchronous
;
2479 boolean8 WantSubObjects
;
2480 CopyFlags CopyFlags
;
2481 mapi_SPropTagArray ExcludedTags
;
2484 typedef [flag
(NDR_NOALIGN
)] struct {
2485 uint16 PropertyProblemCount
;
2486 PropertyProblem PropertyProblem
[PropertyProblemCount
];
2489 /*************************/
2490 /* EcDoRpc Function 0x3a */
2491 typedef [flag
(NDR_NOALIGN
)] struct {
2496 typedef [flag
(NDR_NOALIGN
)] struct {
2497 hyper ReadByteCount
;
2498 hyper WrittenByteCount
;
2499 } CopyToStream_repl
;
2501 /*************************/
2502 /* EcDoRpc Function 0x3e */
2503 typedef [flag
(NDR_NOALIGN
)] struct {
2508 typedef [flag
(NDR_NOALIGN
)] struct {
2511 /*************************/
2512 /* EcDoRpc Function 0x3f */
2513 typedef [bitmap8bit
] bitmap
{
2514 RulesTableFlags_Unicode
= 0x40
2517 typedef [flag
(NDR_NOALIGN
)] struct {
2519 RulesTableFlags TableFlags
;
2520 } GetRulesTable_req
;
2522 typedef [flag
(NDR_NOALIGN
)] struct {
2523 } GetRulesTable_repl
;
2525 /*************************/
2526 /* EcDoRpc Function 0x40 */
2527 typedef [flag
(NDR_NOALIGN
)] struct {
2528 mapi_SRowList rowList
;
2531 typedef [flag
(NDR_NOALIGN
)] struct {
2532 [flag
(NDR_REMAINING
)] DATA_BLOB remaining
;
2535 /*************************/
2536 /* EcDoRpc Function 0x41 */
2537 typedef [flag
(NDR_NOALIGN
)] struct {
2538 ulRowFlags RuleDataFlags
;
2539 mapi_SPropValue_array PropertyValues
;
2542 typedef [bitmap8bit
] bitmap
{
2543 ModifyRulesFlag_Replace
= 0x01
2546 typedef [flag
(NDR_NOALIGN
)] struct {
2547 ModifyRulesFlag ModifyRulesFlags
;
2549 RuleData RulesData
[RulesCount
];
2552 typedef [flag
(NDR_NOALIGN
)] struct {
2555 /*************************/
2556 /* EcDoRpc Function 0x42 */
2557 typedef [flag
(NDR_NOALIGN
)] struct {
2559 } GetOwningServers_req
;
2561 typedef [flag
(NDR_NOALIGN
)] struct {
2562 uint16 OwningServersCount
;
2563 uint16 CheapServersCount
;
2564 astring OwningServers
[OwningServersCount
];
2565 } GetOwningServers_repl
;
2567 /*************************/
2568 /* EcDoRpc Function 0x43 */
2569 typedef [flag
(NDR_NOALIGN
)] struct {
2571 } LongTermIdFromId_req
;
2573 typedef [flag
(NDR_NOALIGN
)] struct {
2575 uint8 GlobalCounter
[6];
2579 typedef [flag
(NDR_NOALIGN
)] struct {
2580 LongTermId LongTermId
;
2581 } LongTermIdFromId_repl
;
2583 /*************************/
2584 /* EcDoRpc Function 0x44 */
2585 typedef [flag
(NDR_NOALIGN
)] struct {
2586 LongTermId LongTermId
;
2587 } IdFromLongTermId_req
;
2589 typedef [flag
(NDR_NOALIGN
)] struct {
2591 } IdFromLongTermId_repl
;
2593 /*************************/
2594 /* EcDoRpc Function 0x45 */
2595 typedef [flag
(NDR_NOALIGN
)] struct {
2597 } PublicFolderIsGhosted_req
;
2599 typedef [flag
(NDR_NOALIGN
)] struct {
2601 [switch_is(IsGhosted
)] IsGhosted Ghost
;
2602 } PublicFolderIsGhosted_repl
;
2604 /*************************/
2605 /* EcDoRpc Function 0x46 */
2606 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
2607 MAPI_READONLY
= 0x0,
2608 MAPI_READWRITE
= 0x1,
2610 } OpenEmbeddedMessage_OpenModeFlags
;
2612 typedef [flag
(NDR_NOALIGN
)] struct {
2615 OpenEmbeddedMessage_OpenModeFlags OpenModeFlags
;
2616 } OpenEmbeddedMessage_req
;
2618 typedef [flag
(NDR_NOALIGN
)] struct {
2621 boolean8 HasNamedProperties
;
2622 TypedString SubjectPrefix
;
2623 TypedString NormalizedSubject
;
2624 uint16 RecipientCount
;
2626 MAPITAGS RecipientColumns
[ColumnCount
];
2628 OpenRecipientRow RecipientRows
[RowCount
];
2629 } OpenEmbeddedMessage_repl
;
2631 /*************************/
2632 /* EcDoRpc Function 0x47 */
2633 typedef [flag
(NDR_NOALIGN
)] struct {
2636 typedef [flag
(NDR_NOALIGN
)] struct {
2639 /*************************/
2640 /* EcDoRpc Function 0x48 */
2641 typedef [enum8bit
] enum {
2642 LockState_1stLock
= 0x0,
2643 LockState_1stUnlock
= 0x1,
2644 LockState_1stFinished
= 0x2
2647 typedef [flag
(NDR_NOALIGN
)] struct {
2649 LockState LockState
;
2650 } SpoolerLockMessage_req
;
2652 typedef [flag
(NDR_NOALIGN
)] struct {
2653 } SpoolerLockMessage_repl
;
2655 /*************************/
2656 /* EcDoRpc Function 0x49 */
2657 typedef [flag
(NDR_NOALIGN
)] struct {
2660 typedef [flag
(NDR_NOALIGN
)] struct {
2663 mapi_LPSTR transport
[cValues
];
2664 } AddressTypes_repl
;
2666 /**************************/
2667 /* EcDoRpc Function 0x4a */
2668 typedef [flag
(NDR_NOALIGN
)] struct {
2669 } TransportSend_req
;
2671 typedef [nodiscriminant
] union {
2672 [case(0x0)] mapi_SPropValue_array lpProps
;
2674 } TransportSend_lpProps
;
2676 typedef [flag
(NDR_NOALIGN
)] struct {
2677 boolean8 NoPropertiesReturned
;
2678 [switch_is(NoPropertiesReturned
)] TransportSend_lpProps properties
;
2679 } TransportSend_repl
;
2681 /**************************/
2682 /* EcDoRpc Function 0x4e */
2683 typedef [flag
(NDR_NOALIGN
)] struct {
2685 } FastTransferSourceGetBuffer_req
;
2687 typedef [enum16bit
] enum {
2688 TransferStatus_Error
= 0x0,
2689 TransferStatus_Partial
= 0x1,
2690 TransferStatus_NoRoom
= 0x2,
2691 TransferStatus_Done
= 0x3
2694 typedef [flag
(NDR_NOALIGN
)] struct {
2695 TransferStatus TransferStatus
;
2696 uint16 InProgressCount
;
2697 uint16 TotalStepCount
;
2699 uint16 TransferBufferSize
;
2700 [subcontext
(0),subcontext_size
(TransferBufferSize
),flag
(NDR_REMAINING
)] DATA_BLOB TransferBuffer
;
2701 } FastTransferSourceGetBuffer_repl
;
2703 /**************************/
2704 /* EcDoRpc Function 0x4f */
2705 typedef [enum8bit
] enum {
2710 typedef [flag
(NDR_NOALIGN
)] struct {
2711 FindRow_ulFlags ulFlags
;
2712 [subcontext
(2)] mapi_SRestriction res
;
2714 SBinary_short bookmark
;
2717 typedef [flag
(NDR_NOALIGN
)] struct {
2718 uint8 RowNoLongerVisible
;
2720 [flag
(NDR_NOALIGN
)] DATA_BLOB row
;
2723 /**************************/
2724 /* EcDoRpc Function 0x50 */
2725 typedef [flag
(NDR_NOALIGN
)] struct {
2726 boolean8 WantCancel
;
2729 typedef [flag
(NDR_NOALIGN
)] struct {
2730 uint32 CompletedTaskCount
;
2731 uint32 TotalTaskCount
;
2734 /*************************/
2735 /* EcDoRpc Function 0x55 */
2736 typedef [enum8bit
] enum {
2741 typedef [flag
(NDR_NOALIGN
)] struct {
2743 [flag
(STR_NULLTERM
)] string Name
;
2746 typedef [nodiscriminant
] union {
2747 [case(MNID_ID
)] uint32 lid
;
2748 [case(MNID_STRING
)] mapi_name lpwstr
;
2751 typedef [flag
(NDR_NOALIGN
)] struct {
2754 [switch_is(ulKind
)] Kind kind
;
2757 typedef [flag
(NDR_NOALIGN
)] struct {
2758 uint16 PropertyIdCount
;
2759 uint16 PropertyIds
[PropertyIdCount
];
2760 } GetNamesFromIDs_req
;
2762 typedef [flag
(NDR_NOALIGN
)] struct {
2764 MAPINAMEID nameid
[count
];
2765 } GetNamesFromIDs_repl
;
2767 /*************************/
2768 /* EcDoRpc Function 0x56 */
2769 typedef [flag
(NDR_NOALIGN
)] struct {
2772 MAPINAMEID nameid
[count
];
2773 } GetIDsFromNames_req
;
2775 typedef [flag
(NDR_NOALIGN
)] struct {
2777 uint16 propID
[count
];
2778 } GetIDsFromNames_repl
;
2780 /*************************/
2781 /* EcDoRpc Function 0x57 */
2782 typedef [flag
(NDR_NOALIGN
)] struct {
2783 SBinary_short ServerEntryId
;
2784 SBinary_short ClientEntryId
;
2785 } UpdateDeferredActionMessages_req
;
2787 typedef [flag
(NDR_NOALIGN
)] struct {
2788 } UpdateDeferredActionMessages_repl
;
2790 /*************************/
2791 /* EcDoRpc Function 0x58 */
2792 typedef [flag
(NDR_NOALIGN
)] struct {
2793 boolean8 WantAsynchronous
;
2794 boolean8 WantDeleteAssociated
;
2797 typedef [flag
(NDR_NOALIGN
)] struct {
2798 boolean8 PartialCompletion
;
2801 /*************************/
2802 /* EcDoRpc Function 0x59 */
2803 typedef [flag
(NDR_NOALIGN
)] struct {
2808 typedef [flag
(NDR_NOALIGN
)] struct {
2809 uint32 ExpandedRowCount
;
2811 [flag
(NDR_REMAINING
)]DATA_BLOB RowData
;
2814 /*************************/
2815 /* EcDoRpc Function 0x5a */
2816 typedef [flag
(NDR_NOALIGN
)] struct {
2820 typedef [flag
(NDR_NOALIGN
)] struct {
2821 uint32 CollapsedRowCount
;
2824 /*************************/
2825 /* EcDoRpc Function 0x5b */
2826 typedef [flag
(NDR_NOALIGN
)] struct {
2830 } LockRegionStream_req
;
2832 typedef [flag
(NDR_NOALIGN
)] struct {
2833 } LockRegionStream_repl
;
2835 /*************************/
2836 /* EcDoRpc Function 0x5c */
2837 typedef [flag
(NDR_NOALIGN
)] struct {
2841 } UnlockRegionStream_req
;
2843 typedef [flag
(NDR_NOALIGN
)] struct {
2844 } UnlockRegionStream_repl
;
2846 /*************************/
2847 /* EcDoRpc Function 0x5d */
2848 typedef [flag
(NDR_NOALIGN
)] struct {
2851 typedef [flag
(NDR_NOALIGN
)] struct {
2852 } CommitStream_repl
;
2854 /*************************/
2855 /* EcDoRpc Function 0x5e */
2856 typedef [flag
(NDR_NOALIGN
)] struct {
2857 } GetStreamSize_req
;
2859 typedef [flag
(NDR_NOALIGN
)] struct {
2861 } GetStreamSize_repl
;
2863 /*************************/
2864 /* EcDoRpc Function 0x5f */
2865 typedef [bitmap8bit
] bitmap
{
2870 typedef [nodiscriminant
] union {
2872 [case(0x1)] GUID guid
;
2873 } QueryNamedProperties_guid
;
2875 typedef [flag
(NDR_NOALIGN
)] struct {
2876 QueryFlags QueryFlags
;
2878 [switch_is(HasGuid
)] QueryNamedProperties_guid PropertyGuid
;
2879 } QueryNamedProperties_req
;
2881 typedef [flag
(NDR_NOALIGN
)] struct {
2883 uint16 PropertyIds
[IdCount
];
2884 MAPINAMEID PropertyNames
[IdCount
];
2885 } QueryNamedProperties_repl
;
2887 /*************************/
2888 /* EcDoRpc Function 0x60 */
2889 typedef [flag
(NDR_NOALIGN
)] struct {
2891 } GetPerUserLongTermIds_req
;
2893 typedef [flag
(NDR_NOALIGN
)] struct {
2894 uint16 LongTermIdCount
;
2895 LongTermId LongTermIds
[LongTermIdCount
];
2896 } GetPerUserLongTermIds_repl
;
2898 /*************************/
2899 /* EcDoRpc Function 0x61 */
2900 typedef [flag
(NDR_NOALIGN
)] struct {
2901 LongTermId LongTermId
;
2902 } GetPerUserGuid_req
;
2904 typedef [flag
(NDR_NOALIGN
)] struct {
2906 } GetPerUserGuid_repl
;
2908 /*************************/
2909 /* EcDoRpc Function 0x63 */
2910 typedef [flag
(NDR_NOALIGN
)] struct {
2912 boolean8 WhatIfChanged
;
2915 } ReadPerUserInformation_req
;
2917 typedef [flag
(NDR_NOALIGN
)] struct {
2918 boolean8 HasFinished
;
2920 [subcontext
(0), subcontext_size
(DataSize
), flag
(NDR_REMAINING
)] DATA_BLOB Data
;
2921 } ReadPerUserInformation_repl
;
2923 /*************************/
2924 /* EcDoRpc Function 0x66 */
2925 typedef [flag
(NDR_NOALIGN
)] struct {
2926 boolean8 WantAsynchronous
;
2927 MSGFLAG_READ ReadFlags
;
2928 uint16 MessageIdCount
;
2929 hyper MessageIds
[MessageIdCount
];
2932 typedef [flag
(NDR_NOALIGN
)] struct {
2933 boolean8 PartialCompletion
;
2934 } SetReadFlags_repl
;
2936 /*************************/
2937 /* EcDoRpc Function 0x67 */
2938 typedef [flag
(NDR_NOALIGN
)] struct {
2940 boolean8 WantAsynchronous
;
2941 CopyFlags CopyFlags
;
2942 mapi_SPropTagArray PropertyTags
;
2943 } CopyProperties_req
;
2945 typedef [flag
(NDR_NOALIGN
)] struct {
2946 uint16 PropertyProblemCount
;
2947 PropertyProblem PropertyProblem
[PropertyProblemCount
];
2948 } CopyProperties_repl
;
2950 /*************************/
2951 /* EcDoRpc Function 0x68 */
2952 typedef [flag
(NDR_NOALIGN
)] struct {
2955 astring lpszMessageClass
;
2959 typedef [flag
(NDR_NOALIGN
)] struct {
2960 } GetReceiveFolderTable_req
;
2962 typedef [flag
(NDR_NOALIGN
)] struct {
2964 ReceiveFolder entries
[cValues
];
2965 } GetReceiveFolderTable_repl
;
2967 /*************************/
2968 /* EcDoRpc Function 0x6b */
2969 typedef [flag
(NDR_NOALIGN
)] struct {
2971 uint32 RowInstanceNumber
;
2972 } GetCollapseState_req
;
2974 typedef [flag
(NDR_NOALIGN
)] struct {
2975 SBinary_short CollapseState
;
2976 } GetCollapseState_repl
;
2978 /*************************/
2979 /* EcDoRpc Function 0x6c */
2980 typedef [flag
(NDR_NOALIGN
)] struct {
2981 SBinary_short CollapseState
;
2982 } SetCollapseState_req
;
2984 typedef [flag
(NDR_NOALIGN
)] struct {
2985 SBinary_short bookmark
;
2986 } SetCollapseState_repl
;
2988 /*************************/
2989 /* EcDoRpc Function 0x6d */
2990 typedef [flag
(NDR_NOALIGN
)] struct {
2991 } GetTransportFolder_req
;
2993 typedef [flag
(NDR_NOALIGN
)] struct {
2995 } GetTransportFolder_repl
;
2997 /*************************/
2998 /* EcDoRpc Function 0x6e */
2999 typedef [flag
(NDR_NOALIGN
)] struct {
3000 uint16 SessionIndex
;
3003 /*************************/
3004 /* EcDoRpc Function 0x6f */
3005 typedef [enum8bit
,flag
(NDR_NOALIGN
)] enum {
3006 OPTION_TYPE_RECIPIENT
= 0x1,
3007 OPTION_TYPE_MESSAGE
= 0x2
3008 } OPTIONDATA_ulFlags
;
3010 typedef [flag
(NDR_NOALIGN
)] struct {
3012 OPTIONDATA_ulFlags type
;
3013 } RegisterOptions_req
;
3015 typedef [flag
(NDR_NOALIGN
)] struct {
3016 OPTIONDATA_ulFlags ulFlags
;
3018 } RegisterOptions_repl
;
3020 /*************************/
3021 /* EcDoRpc Function 0x70 */
3022 typedef [enum8bit
] enum {
3025 } SynchronizationType
;
3027 typedef [bitmap8bit
] bitmap
{
3028 SendOptions_Unicode
= 0x1,
3029 SendOptions_ForUpload
= 0x3,
3030 SendOptions_RecoverMode
= 0x4,
3031 SendOptions_ForceUnicode
= 0x8,
3032 SendOptions_Partial
= 0x10
3035 typedef [bitmap16bit
] bitmap
{
3036 SynchronizationFlag_Unicode
= 0x1,
3037 SynchronizationFlag_NoDeletions
= 0x2,
3038 SynchronizationFlag_NoSoftDeletions
= 0x4,
3039 SynchronizationFlag_ReadState
= 0x8,
3040 SynchronizationFlag_FAI
= 0x10,
3041 SynchronizationFlag_Normal
= 0x20,
3042 SynchronizationFlag_OnlySpecifiedProperties
= 0x80,
3043 SynchronizationFlag_NoForeignIdentifiers
= 0x100,
3044 SynchronizationFlag_Reserved
= 0x1000,
3045 SynchronizationFlag_BestBody
= 0x2000,
3046 SynchronizationFlag_IgnoreSpecifiedOnFAI
= 0x4000,
3047 SynchronizationFlag_Progress
= 0x8000
3048 } SynchronizationFlag
;
3050 typedef [bitmap32bit
] bitmap
{
3052 MessageSize
= 0x00000002,
3054 OrderByDeliveryTime
= 0x00000008
3055 } SynchronizationExtraFlags
;
3057 typedef [flag
(NDR_NOALIGN
)] struct {
3059 SynchronizationType SynchronizationType
;
3060 SendOptions SendOptions
;
3061 SynchronizationFlag SynchronizationFlag
;
3062 uint16 RestrictionSize
;
3063 [subcontext
(0),subcontext_size
(RestrictionSize
),flag
(NDR_REMAINING
)] DATA_BLOB RestrictionData
;
3064 SynchronizationExtraFlags SynchronizationExtraFlags
;
3065 mapi_SPropTagArray PropertyTags
;
3066 } SyncConfigure_req
;
3068 typedef [flag
(NDR_NOALIGN
)] struct {
3069 } SyncConfigure_repl
;
3071 /*************************/
3072 /* EcDoRpc Function 0x72 */
3073 typedef [bitmap8bit
] bitmap
{
3074 ImportFlag_Associated
= 0x10,
3075 ImportFlag_FailOnConflict
= 0x40
3078 typedef [flag
(NDR_NOALIGN
)] struct {
3080 ImportFlag ImportFlag
;
3081 mapi_SPropValue_array PropertyValues
;
3082 } SyncImportMessageChange_req
;
3084 typedef [flag
(NDR_NOALIGN
)] struct {
3086 } SyncImportMessageChange_repl
;
3088 /*************************/
3089 /* EcDoRpc Function 0x73 */
3090 typedef [flag
(NDR_NOALIGN
)] struct {
3091 mapi_SPropValue_array HierarchyValues
;
3092 mapi_SPropValue_array PropertyValues
;
3093 } SyncImportHierarchyChange_req
;
3095 typedef [flag
(NDR_NOALIGN
)] struct {
3097 } SyncImportHierarchyChange_repl
;
3099 /*************************/
3100 /* EcDoRpc Function 0x74 */
3101 typedef [flag
(NDR_NOALIGN
)] struct {
3102 boolean8 IsHierarchy
;
3103 mapi_SPropValue_array PropertyValues
;
3104 } SyncImportDeletes_req
;
3106 typedef [flag
(NDR_NOALIGN
)] struct {
3107 } SyncImportDeletes_repl
;
3109 /*************************/
3110 /* EcDoRpc Function 0x75 */
3111 typedef [v1_enum,flag
(NDR_PAHEX
)] enum {
3112 PidTagIdsetGiven
= 0x40170003,
3113 PidTagCnsetSeen
= 0x67960102,
3114 PidTagCnsetSeenFAI
= 0x67da0102,
3115 PidTagCnsetRead
= 0x67d20102
3118 typedef [flag
(NDR_NOALIGN
)] struct {
3119 StateProperty StateProperty
;
3120 uint32 TransferBufferSize
;
3121 } SyncUploadStateStreamBegin_req
;
3123 typedef [flag
(NDR_NOALIGN
)] struct {
3124 } SyncUploadStateStreamBegin_repl
;
3126 /*************************/
3127 /* EcDoRpc Function 0x76 */
3128 typedef [flag
(NDR_NOALIGN
)] struct {
3129 uint32 StreamDataSize
;
3130 uint8 StreamData
[StreamDataSize
];
3131 } SyncUploadStateStreamContinue_req
;
3133 typedef [flag
(NDR_NOALIGN
)] struct {
3134 } SyncUploadStateStreamContinue_repl
;
3136 /*************************/
3137 /* EcDoRpc Function 0x77 */
3138 typedef [flag
(NDR_NOALIGN
)] struct {
3139 } SyncUploadStateStreamEnd_req
;
3141 typedef [flag
(NDR_NOALIGN
)] struct {
3142 } SyncUploadStateStreamEnd_repl
;
3144 /*************************/
3145 /* EcDoRpc Function 0x78 */
3146 typedef [flag
(NDR_NOALIGN
)] struct {
3147 uint32 SourceFolderIdSize
;
3148 uint8 SourceFolderId
[SourceFolderIdSize
];
3149 uint32 SourceMessageIdSize
;
3150 uint8 SourceMessageId
[SourceMessageIdSize
];
3151 uint32 PredecessorChangeListSize
;
3152 uint8 PredecessorChangeList
[PredecessorChangeListSize
];
3153 uint32 DestinationMessageIdSize
;
3154 uint8 DestinationMessageId
[DestinationMessageIdSize
];
3155 uint32 ChangeNumberSize
;
3156 uint8 ChangeNumber
[ChangeNumberSize
];
3157 } SyncImportMessageMove_req
;
3159 typedef [flag
(NDR_NOALIGN
)] struct {
3161 } SyncImportMessageMove_repl
;
3163 /*************************/
3164 /* EcDoRpc Function 0x79 */
3165 typedef [flag
(NDR_NOALIGN
)] struct {
3166 [subcontext
(2)] mapi_SPropValue_array values
;
3167 } SetPropertiesNoReplicate_req
;
3169 typedef [flag
(NDR_NOALIGN
)] struct {
3170 uint16 PropertyProblemCount
;
3171 PropertyProblem PropertyProblem
[PropertyProblemCount
];
3172 } SetPropertiesNoReplicate_repl
;
3174 /*************************/
3175 /* EcDoRpc Function 0x7a */
3176 typedef [flag
(NDR_NOALIGN
)] struct {
3177 mapi_SPropTagArray PropertyTags
;
3178 } DeletePropertiesNoReplicate_req
;
3180 typedef [flag
(NDR_NOALIGN
)] struct {
3181 uint16 PropertyProblemCount
;
3182 PropertyProblem PropertyProblem
[PropertyProblemCount
];
3183 } DeletePropertiesNoReplicate_repl
;
3185 /*************************/
3186 /* EcDoRpc Function 0x7b */
3187 typedef [public,bitmap32bit
] bitmap
{
3188 STORE_HAS_SEARCHES
= 0x010000000
3191 typedef [flag
(NDR_NOALIGN
)] struct {
3192 } GetStoreState_req
;
3194 typedef [flag
(NDR_NOALIGN
)] struct {
3195 StoreState StoreState
;
3196 } GetStoreState_repl
;
3198 /*************************/
3199 /* EcDoRpc Function 0x7e */
3200 typedef [flag
(NDR_NOALIGN
)] struct {
3202 boolean8 IsContentsCollector
;
3203 } SyncOpenCollector_req
;
3205 typedef [flag
(NDR_NOALIGN
)] struct {
3206 } SyncOpenCollector_repl
;
3208 /*************************/
3209 /* EcDoRpc Function 0x7f */
3210 typedef [flag
(NDR_NOALIGN
)] struct {
3212 } GetLocalReplicaIds_req
;
3214 typedef [flag
(NDR_NOALIGN
)] struct {
3216 uint8 GlobalCount
[6];
3217 } GetLocalReplicaIds_repl
;
3219 /*************************/
3220 /* EcDoRpc Function 0x80 */
3221 // typedef [flag(NDR_NOALIGN)] struct {
3222 // uint16 MessageSize;
3223 // uint8 MessageId[MessageSize];
3224 // boolean8 MarkAsRead;
3225 // } MessageReadStates;
3227 typedef [flag
(NDR_NOALIGN
)] struct {
3228 uint16 MessageReadStateSize
;
3229 [subcontext
(0),subcontext_size
(MessageReadStateSize
),flag
(NDR_REMAINING
)] DATA_BLOB MessageStates
;
3230 } SyncImportReadStateChanges_req
;
3232 typedef [flag
(NDR_NOALIGN
)] struct {
3233 } SyncImportReadStateChanges_repl
;
3235 /*************************/
3236 /* EcDoRpc Function 0x81 */
3237 typedef [flag
(NDR_NOALIGN
)] struct {
3240 typedef [flag
(NDR_NOALIGN
)] struct {
3243 /*************************/
3244 /* EcDoRpc Function 0x82 */
3245 typedef [flag
(NDR_NOALIGN
)] struct {
3247 } SyncGetTransferState_req
;
3249 typedef [flag
(NDR_NOALIGN
)] struct {
3250 } SyncGetTransferState_repl
;
3252 /*************************/
3253 /* EcDoRpc Function 0x87 */
3254 typedef [flag
(NDR_NOALIGN
)] struct {
3257 } OpenPublicFolderByName_req
;
3259 typedef [flag
(NDR_NOALIGN
)] struct {
3262 [switch_is(IsGhosted
)] IsGhosted Ghost
;
3263 } OpenPublicFolderByName_repl
;
3265 /*************************/
3266 /* EcDoRpc Function 0x88 */
3267 typedef [flag
(NDR_NOALIGN
)] struct {
3268 GUID NotificationGuid
;
3269 } SetSyncNotificationGuid_req
;
3271 typedef [flag
(NDR_NOALIGN
)] struct {
3272 } SetSyncNotificationGuid_repl
;
3274 /*************************/
3275 /* EcDoRpc Function 0x89 */
3276 typedef [flag
(NDR_NOALIGN
)] struct {
3277 SBinary_short bookmark
;
3280 typedef [flag
(NDR_NOALIGN
)] struct {
3281 } FreeBookmark_repl
;
3283 /**************************/
3284 /* EcDoRpc Function 0x91 */
3285 typedef [flag
(NDR_NOALIGN
)] struct {
3286 boolean8 WantAsynchronous
;
3287 boolean8 NotifyNonRead
;
3288 uint16 MessageIdCount
;
3289 hyper MessageIds
[MessageIdCount
];
3290 } HardDeleteMessages_req
;
3292 typedef [flag
(NDR_NOALIGN
)] struct {
3293 boolean8 PartialCompletion
;
3294 } HardDeleteMessages_repl
;
3296 /*************************/
3297 /* EcDoRpc Function 0xFE */
3298 typedef [public,bitmap8bit
] bitmap
{
3305 typedef [public,bitmap32bit
] bitmap
{
3308 TAKE_OWNERSHIP
= 0x8,
3309 ALTERNATE_SERVER
= 0x100,
3310 IGNORE_HOME_MDB
= 0x200,
3312 USE_PER_MDB_REPLID_MAPPING
= 0x010000000
3315 typedef [enum8bit
] enum {
3316 DayOfWeek_Sunday
= 0x0,
3317 DayOfWeek_Monday
= 0x1,
3318 DayOfWeek_Tuesday
= 0x2,
3319 DayOfWeek_Wednesday
= 0x3,
3320 DayOfWeek_Thursday
= 0x4,
3321 DayOfWeek_Friday
= 0x5,
3322 DayOfWeek_Saturday
= 0x6
3325 typedef [flag
(NDR_NOALIGN
)] struct {
3329 DayOfWeek DayOfWeek
;
3335 typedef [bitmap8bit
] bitmap
{
3336 ResponseFlags_Reserved
= 0x1,
3337 ResponseFlags_OwnerRight
= 0x2,
3338 ResponseFlags_SendAsRight
= 0x4,
3339 ResponseFlags_OOF
= 0x10
3342 typedef [flag
(NDR_NOALIGN
)] struct {
3343 hyper FolderIds
[13];
3349 typedef [flag
(NDR_NOALIGN
)] struct {
3350 hyper FolderIds
[13];
3351 ResponseFlags ResponseFlags
;
3355 LogonTime LogonTime
;
3357 StoreState StoreState
;
3360 typedef [nodiscriminant
] union {
3361 [case(0x0)] store_pf store_pf
;
3362 [case(LogonPrivate
)] store_mailbox store_mailbox
;
3365 typedef [nopush
,flag
(NDR_NOALIGN
)] struct {
3366 LogonFlags LogonFlags
;
3367 OpenFlags OpenFlags
;
3368 StoreState StoreState
;
3372 typedef [flag
(NDR_NOALIGN
)] struct {
3373 LogonFlags LogonFlags
;
3374 [switch_is(LogonFlags
)] LogonType LogonType
;
3377 /* Logon redirect response buffer (error_code == ecWrongServer) */
3378 typedef [public,flag
(NDR_NOALIGN
)] struct {
3379 LogonFlags LogonFlags
;
3380 uint8 ServerNameSize
;
3384 /*************************/
3385 /* EcDoRpc Function 0xA5 */
3386 typedef [flag
(NDR_NOALIGN
)] struct {
3390 typedef [flag
(NDR_NOALIGN
)] struct {
3394 typedef [public, nodiscriminant
] union {
3395 [case(op_MAPI_Release
)] Release_req mapi_Release
;
3396 [case(op_MAPI_OpenFolder
)] OpenFolder_req mapi_OpenFolder
;
3397 [case(op_MAPI_OpenMessage
)] OpenMessage_req mapi_OpenMessage
;
3398 [case(op_MAPI_GetHierarchyTable
)] GetHierarchyTable_req mapi_GetHierarchyTable
;
3399 [case(op_MAPI_GetContentsTable
)] GetContentsTable_req mapi_GetContentsTable
;
3400 [case(op_MAPI_CreateMessage
)] CreateMessage_req mapi_CreateMessage
;
3401 [case(op_MAPI_GetProps
)] GetProps_req mapi_GetProps
;
3402 [case(op_MAPI_GetPropsAll
)] GetPropsAll_req mapi_GetPropsAll
;
3403 [case(op_MAPI_GetPropList
)] GetPropList_req mapi_GetPropList
;
3404 [case(op_MAPI_SetProps
)] SetProps_req mapi_SetProps
;
3405 [case(op_MAPI_DeleteProps
)] DeleteProps_req mapi_DeleteProps
;
3406 [case(op_MAPI_SaveChangesMessage
)] SaveChangesMessage_req mapi_SaveChangesMessage
;
3407 [case(op_MAPI_SetMessageReadFlag
)] SetMessageReadFlag_req mapi_SetMessageReadFlag
;
3408 [case(op_MAPI_ReloadCachedInformation
)] ReloadCachedInformation_req mapi_ReloadCachedInformation
;
3409 [case(op_MAPI_SetColumns
)] SetColumns_req mapi_SetColumns
;
3410 [case(op_MAPI_SortTable
)] SortTable_req mapi_SortTable
;
3411 [case(op_MAPI_Restrict
)] Restrict_req mapi_Restrict
;
3412 [case(op_MAPI_RemoveAllRecipients
)] RemoveAllRecipients_req mapi_RemoveAllRecipients
;
3413 [case(op_MAPI_ModifyRecipients
)] ModifyRecipients_req mapi_ModifyRecipients
;
3414 [case(op_MAPI_ReadRecipients
)] ReadRecipients_req mapi_ReadRecipients
;
3415 [case(op_MAPI_QueryRows
)] QueryRows_req mapi_QueryRows
;
3416 [case(op_MAPI_GetStatus
)] GetStatus_req mapi_GetStatus
;
3417 [case(op_MAPI_QueryPosition
)] QueryPosition_req mapi_QueryPosition
;
3418 [case(op_MAPI_SeekRow
)] SeekRow_req mapi_SeekRow
;
3419 [case(op_MAPI_SeekRowBookmark
)] SeekRowBookmark_req mapi_SeekRowBookmark
;
3420 [case(op_MAPI_SeekRowApprox
)] SeekRowApprox_req mapi_SeekRowApprox
;
3421 [case(op_MAPI_CreateBookmark
)] CreateBookmark_req mapi_CreateBookmark
;
3422 [case(op_MAPI_CreateFolder
)] CreateFolder_req mapi_CreateFolder
;
3423 [case(op_MAPI_DeleteFolder
)] DeleteFolder_req mapi_DeleteFolder
;
3424 [case(op_MAPI_DeleteMessages
)] DeleteMessages_req mapi_DeleteMessages
;
3425 [case(op_MAPI_GetMessageStatus
)] GetMessageStatus_req mapi_GetMessageStatus
;
3426 [case(op_MAPI_SetMessageStatus
)] SetMessageStatus_req mapi_SetMessageStatus
;
3427 [case(op_MAPI_GetAttachmentTable
)] GetAttachmentTable_req mapi_GetAttachmentTable
;
3428 [case(op_MAPI_OpenAttach
)] OpenAttach_req mapi_OpenAttach
;
3429 [case(op_MAPI_CreateAttach
)] CreateAttach_req mapi_CreateAttach
;
3430 [case(op_MAPI_DeleteAttach
)] DeleteAttach_req mapi_DeleteAttach
;
3431 [case(op_MAPI_SaveChangesAttachment
)] SaveChangesAttachment_req mapi_SaveChangesAttachment
;
3432 [case(op_MAPI_SetReceiveFolder
)] SetReceiveFolder_req mapi_SetReceiveFolder
;
3433 [case(op_MAPI_GetReceiveFolder
)] GetReceiveFolder_req mapi_GetReceiveFolder
;
3434 [case(op_MAPI_RegisterNotification
)] RegisterNotification_req mapi_RegisterNotification
;
3435 [case(op_MAPI_OpenStream
)] OpenStream_req mapi_OpenStream
;
3436 [case(op_MAPI_ReadStream
)] ReadStream_req mapi_ReadStream
;
3437 [case(op_MAPI_WriteStream
)] WriteStream_req mapi_WriteStream
;
3438 [case(op_MAPI_SeekStream
)] SeekStream_req mapi_SeekStream
;
3439 [case(op_MAPI_SetStreamSize
)] SetStreamSize_req mapi_SetStreamSize
;
3440 [case(op_MAPI_SetSearchCriteria
)] SetSearchCriteria_req mapi_SetSearchCriteria
;
3441 [case(op_MAPI_GetSearchCriteria
)] GetSearchCriteria_req mapi_GetSearchCriteria
;
3442 [case(op_MAPI_SubmitMessage
)] SubmitMessage_req mapi_SubmitMessage
;
3443 [case(op_MAPI_MoveCopyMessages
)] MoveCopyMessages_req mapi_MoveCopyMessages
;
3444 [case(op_MAPI_AbortSubmit
)] AbortSubmit_req mapi_AbortSubmit
;
3445 [case(op_MAPI_MoveFolder
)] MoveFolder_req mapi_MoveFolder
;
3446 [case(op_MAPI_CopyFolder
)] CopyFolder_req mapi_CopyFolder
;
3447 [case(op_MAPI_QueryColumnsAll
)] QueryColumnsAll_req mapi_QueryColumnsAll
;
3448 [case(op_MAPI_Abort
)] Abort_req mapi_Abort
;
3449 [case(op_MAPI_CopyTo
)] CopyTo_req mapi_CopyTo
;
3450 [case(op_MAPI_CopyToStream
)] CopyToStream_req mapi_CopyToStream
;
3451 [case(op_MAPI_GetTable
)] GetTable_req mapi_GetTable
;
3452 [case(op_MAPI_GetRulesTable
)] GetRulesTable_req mapi_GetRulesTable
;
3453 [case(op_MAPI_ModifyTable
)] ModifyTable_req mapi_ModifyTable
;
3454 [case(op_MAPI_ModifyRules
)] ModifyRules_req mapi_ModifyRules
;
3455 [case(op_MAPI_GetOwningServers
)] GetOwningServers_req mapi_GetOwningServers
;
3456 [case(op_MAPI_LongTermIdFromId
)] LongTermIdFromId_req mapi_LongTermIdFromId
;
3457 [case(op_MAPI_IdFromLongTermId
)] IdFromLongTermId_req mapi_IdFromLongTermId
;
3458 [case(op_MAPI_PublicFolderIsGhosted
)] PublicFolderIsGhosted_req mapi_PublicFolderIsGhosted
;
3459 [case(op_MAPI_OpenEmbeddedMessage
)] OpenEmbeddedMessage_req mapi_OpenEmbeddedMessage
;
3460 [case(op_MAPI_SetSpooler
)] SetSpooler_req mapi_SetSpooler
;
3461 [case(op_MAPI_SpoolerLockMessage
)] SpoolerLockMessage_req mapi_SpoolerLockMessage
;
3462 [case(op_MAPI_AddressTypes
)] AddressTypes_req mapi_AddressTypes
;
3463 [case(op_MAPI_TransportSend
)] TransportSend_req mapi_TransportSend
;
3464 [case(op_MAPI_FastTransferSourceGetBuffer
)] FastTransferSourceGetBuffer_req mapi_FastTransferSourceGetBuffer
;
3465 [case(op_MAPI_FindRow
)] FindRow_req mapi_FindRow
;
3466 [case(op_MAPI_Progress
)] Progress_req mapi_Progress
;
3467 [case(op_MAPI_GetNamesFromIDs
)] GetNamesFromIDs_req mapi_GetNamesFromIDs
;
3468 [case(op_MAPI_GetIDsFromNames
)] GetIDsFromNames_req mapi_GetIDsFromNames
;
3469 [case(op_MAPI_UpdateDeferredActionMessages
)] UpdateDeferredActionMessages_req mapi_UpdateDeferredActionMessages
;
3470 [case(op_MAPI_EmptyFolder
)] EmptyFolder_req mapi_EmptyFolder
;
3471 [case(op_MAPI_ExpandRow
)] ExpandRow_req mapi_ExpandRow
;
3472 [case(op_MAPI_CollapseRow
)] CollapseRow_req mapi_CollapseRow
;
3473 [case(op_MAPI_LockRegionStream
)] LockRegionStream_req mapi_LockRegionStream
;
3474 [case(op_MAPI_UnlockRegionStream
)] UnlockRegionStream_req mapi_UnlockRegionStream
;
3475 [case(op_MAPI_CommitStream
)] CommitStream_req mapi_CommitStream
;
3476 [case(op_MAPI_GetStreamSize
)] GetStreamSize_req mapi_GetStreamSize
;
3477 [case(op_MAPI_QueryNamedProperties
)] QueryNamedProperties_req mapi_QueryNamedProperties
;
3478 [case(op_MAPI_GetPerUserLongTermIds
)] GetPerUserLongTermIds_req mapi_GetPerUserLongTermIds
;
3479 [case(op_MAPI_GetPerUserGuid
)] GetPerUserGuid_req mapi_GetPerUserGuid
;
3480 [case(op_MAPI_ReadPerUserInformation
)] ReadPerUserInformation_req mapi_ReadPerUserInformation
;
3481 [case(op_MAPI_SetReadFlags
)] SetReadFlags_req mapi_SetReadFlags
;
3482 [case(op_MAPI_CopyProperties
)] CopyProperties_req mapi_CopyProperties
;
3483 [case(op_MAPI_GetReceiveFolderTable
)] GetReceiveFolderTable_req mapi_GetReceiveFolderTable
;
3484 [case(op_MAPI_GetCollapseState
)] GetCollapseState_req mapi_GetCollapseState
;
3485 [case(op_MAPI_SetCollapseState
)] SetCollapseState_req mapi_SetCollapseState
;
3486 [case(op_MAPI_GetTransportFolder
)] GetTransportFolder_req mapi_GetTransportFolder
;
3487 [case(op_MAPI_RegisterOptions
)] RegisterOptions_req mapi_RegisterOptions
;
3488 [case(op_MAPI_SyncConfigure
)] SyncConfigure_req mapi_SyncConfigure
;
3489 [case(op_MAPI_SyncImportMessageChange
)] SyncImportMessageChange_req mapi_SyncImportMessageChange
;
3490 [case(op_MAPI_SyncImportHierarchyChange
)] SyncImportHierarchyChange_req mapi_SyncImportHierarchyChange
;
3491 [case(op_MAPI_SyncImportDeletes
)] SyncImportDeletes_req mapi_SyncImportDeletes
;
3492 [case(op_MAPI_SyncUploadStateStreamBegin
)] SyncUploadStateStreamBegin_req mapi_SyncUploadStateStreamBegin
;
3493 [case(op_MAPI_SyncUploadStateStreamContinue
)] SyncUploadStateStreamContinue_req mapi_SyncUploadStateStreamContinue
;
3494 [case(op_MAPI_SyncUploadStateStreamEnd
)] SyncUploadStateStreamEnd_req mapi_SyncUploadStateStreamEnd
;
3495 [case(op_MAPI_SyncImportMessageMove
)] SyncImportMessageMove_req mapi_SyncImportMessageMove
;
3496 [case(op_MAPI_SetPropertiesNoReplicate
)] SetPropertiesNoReplicate_req mapi_SetPropertiesNoReplicate
;
3497 [case(op_MAPI_DeletePropertiesNoReplicate
)] DeletePropertiesNoReplicate_req mapi_DeletePropertiesNoReplicate
;
3498 [case(op_MAPI_GetStoreState
)] GetStoreState_req mapi_GetStoreState
;
3499 [case(op_MAPI_SyncOpenCollector
)] SyncOpenCollector_req mapi_SyncOpenCollector
;
3500 [case(op_MAPI_GetLocalReplicaIds
)] GetLocalReplicaIds_req mapi_GetLocalReplicaIds
;
3501 [case(op_MAPI_SyncImportReadStateChanges
)] SyncImportReadStateChanges_req mapi_SyncImportReadStateChanges
;
3502 [case(op_MAPI_ResetTable
)] ResetTable_req mapi_ResetTable
;
3503 [case(op_MAPI_SyncGetTransferState
)] SyncGetTransferState_req mapi_SyncGetTransferState
;
3504 [case(op_MAPI_OpenPublicFolderByName
)] OpenPublicFolderByName_req mapi_OpenPublicFolderByName
;
3505 [case(op_MAPI_SetSyncNotificationGuid
)] SetSyncNotificationGuid_req mapi_SetSyncNotificationGuid
;
3506 [case(op_MAPI_FreeBookmark
)] FreeBookmark_req mapi_FreeBookmark
;
3507 [case(op_MAPI_HardDeleteMessages
)] HardDeleteMessages_req mapi_HardDeleteMessages
;
3508 [case(op_MAPI_Logon
)] Logon_req mapi_Logon
;
3509 [case(op_MAPI_proxypack
)] proxypack_req mapi_proxypack
;
3510 } EcDoRpc_MAPI_REQ_UNION
;
3512 typedef [public, nodiscriminant
] union {
3513 [case(op_MAPI_Release
)] Release_repl mapi_Release
;
3514 [case(op_MAPI_OpenFolder
)] OpenFolder_repl mapi_OpenFolder
;
3515 [case(op_MAPI_OpenMessage
)] OpenMessage_repl mapi_OpenMessage
;
3516 [case(op_MAPI_GetHierarchyTable
)] GetHierarchyTable_repl mapi_GetHierarchyTable
;
3517 [case(op_MAPI_GetContentsTable
)] GetContentsTable_repl mapi_GetContentsTable
;
3518 [case(op_MAPI_CreateMessage
)] CreateMessage_repl mapi_CreateMessage
;
3519 [case(op_MAPI_GetProps
)] GetProps_repl mapi_GetProps
;
3520 [case(op_MAPI_GetPropsAll
)] GetPropsAll_repl mapi_GetPropsAll
;
3521 [case(op_MAPI_GetPropList
)] GetPropList_repl mapi_GetPropList
;
3522 [case(op_MAPI_SetProps
)] SetProps_repl mapi_SetProps
;
3523 [case(op_MAPI_DeleteProps
)] DeleteProps_repl mapi_DeleteProps
;
3524 [case(op_MAPI_SaveChangesMessage
)] SaveChangesMessage_repl mapi_SaveChangesMessage
;
3525 [case(op_MAPI_RemoveAllRecipients
)] RemoveAllRecipients_repl mapi_RemoveAllRecipients
;
3526 [case(op_MAPI_ModifyRecipients
)] ModifyRecipients_repl mapi_ModifyRecipients
;
3527 [case(op_MAPI_ReadRecipients
)] ReadRecipients_repl mapi_ReadRecipients
;
3528 [case(op_MAPI_SetMessageReadFlag
)] SetMessageReadFlag_repl mapi_SetMessageReadFlag
;
3529 [case(op_MAPI_ReloadCachedInformation
)] ReloadCachedInformation_repl mapi_ReloadCachedInformation
;
3530 [case(op_MAPI_SetColumns
)] SetColumns_repl mapi_SetColumns
;
3531 [case(op_MAPI_SortTable
)] SortTable_repl mapi_SortTable
;
3532 [case(op_MAPI_Restrict
)] Restrict_repl mapi_Restrict
;
3533 [case(op_MAPI_QueryRows
)] QueryRows_repl mapi_QueryRows
;
3534 [case(op_MAPI_GetStatus
)] GetStatus_repl mapi_GetStatus
;
3535 [case(op_MAPI_QueryPosition
)] QueryPosition_repl mapi_QueryPosition
;
3536 [case(op_MAPI_SeekRow
)] SeekRow_repl mapi_SeekRow
;
3537 [case(op_MAPI_SeekRowBookmark
)] SeekRowBookmark_repl mapi_SeekRowBookmark
;
3538 [case(op_MAPI_SeekRowApprox
)] SeekRowApprox_repl mapi_SeekRowApprox
;
3539 [case(op_MAPI_CreateBookmark
)] CreateBookmark_repl mapi_CreateBookmark
;
3540 [case(op_MAPI_CreateFolder
)] CreateFolder_repl mapi_CreateFolder
;
3541 [case(op_MAPI_DeleteFolder
)] DeleteFolder_repl mapi_DeleteFolder
;
3542 [case(op_MAPI_DeleteMessages
)] DeleteMessages_repl mapi_DeleteMessages
;
3543 [case(op_MAPI_SetMessageStatus
)] SetMessageStatus_repl mapi_SetMessageStatus
;
3544 [case(op_MAPI_GetAttachmentTable
)] GetAttachmentTable_repl mapi_GetAttachmentTable
;
3545 [case(op_MAPI_OpenAttach
)] OpenAttach_repl mapi_OpenAttach
;
3546 [case(op_MAPI_CreateAttach
)] CreateAttach_repl mapi_CreateAttach
;
3547 [case(op_MAPI_DeleteAttach
)] DeleteAttach_repl mapi_DeleteAttach
;
3548 [case(op_MAPI_SaveChangesAttachment
)] SaveChangesAttachment_repl mapi_SaveChangesAttachment
;
3549 [case(op_MAPI_SetReceiveFolder
)] SetReceiveFolder_repl mapi_SetReceiveFolder
;
3550 [case(op_MAPI_GetReceiveFolder
)] GetReceiveFolder_repl mapi_GetReceiveFolder
;
3551 [case(op_MAPI_RegisterNotification
)] RegisterNotification_repl mapi_RegisterNotification
;
3552 [case(op_MAPI_Notify
)] Notify_repl mapi_Notify
;
3553 [case(op_MAPI_OpenStream
)] OpenStream_repl mapi_OpenStream
;
3554 [case(op_MAPI_ReadStream
)] ReadStream_repl mapi_ReadStream
;
3555 [case(op_MAPI_WriteStream
)] WriteStream_repl mapi_WriteStream
;
3556 [case(op_MAPI_SeekStream
)] SeekStream_repl mapi_SeekStream
;
3557 [case(op_MAPI_SetStreamSize
)] SetStreamSize_repl mapi_SetStreamSize
;
3558 [case(op_MAPI_SetSearchCriteria
)] SetSearchCriteria_repl mapi_SetSearchCriteria
;
3559 [case(op_MAPI_GetSearchCriteria
)] GetSearchCriteria_repl mapi_GetSearchCriteria
;
3560 [case(op_MAPI_SubmitMessage
)] SubmitMessage_repl mapi_SubmitMessage
;
3561 [case(op_MAPI_MoveCopyMessages
)] MoveCopyMessages_repl mapi_MoveCopyMessages
;
3562 [case(op_MAPI_AbortSubmit
)] AbortSubmit_repl mapi_AbortSubmit
;
3563 [case(op_MAPI_MoveFolder
)] MoveFolder_repl mapi_MoveFolder
;
3564 [case(op_MAPI_CopyFolder
)] CopyFolder_repl mapi_CopyFolder
;
3565 [case(op_MAPI_QueryColumnsAll
)] QueryColumnsAll_repl mapi_QueryColumnsAll
;
3566 [case(op_MAPI_Abort
)] Abort_repl mapi_Abort
;
3567 [case(op_MAPI_CopyTo
)] CopyTo_repl mapi_CopyTo
;
3568 [case(op_MAPI_CopyToStream
)] CopyToStream_repl mapi_CopyToStream
;
3569 [case(op_MAPI_GetTable
)] GetTable_repl mapi_GetTable
;
3570 [case(op_MAPI_GetRulesTable
)] GetRulesTable_repl mapi_GetRulesTable
;
3571 [case(op_MAPI_ModifyTable
)] ModifyTable_repl mapi_ModifyTable
;
3572 [case(op_MAPI_ModifyRules
)] ModifyRules_repl mapi_ModifyRules
;
3573 [case(op_MAPI_GetOwningServers
)] GetOwningServers_repl mapi_GetOwningServers
;
3574 [case(op_MAPI_LongTermIdFromId
)] LongTermIdFromId_repl mapi_LongTermIdFromId
;
3575 [case(op_MAPI_IdFromLongTermId
)] IdFromLongTermId_repl mapi_IdFromLongTermId
;
3576 [case(op_MAPI_PublicFolderIsGhosted
)] PublicFolderIsGhosted_repl mapi_PublicFolderIsGhosted
;
3577 [case(op_MAPI_OpenEmbeddedMessage
)] OpenEmbeddedMessage_repl mapi_OpenEmbeddedMessage
;
3578 [case(op_MAPI_SetSpooler
)] SetSpooler_repl mapi_SetSpooler
;
3579 [case(op_MAPI_SpoolerLockMessage
)] SpoolerLockMessage_repl mapi_SpoolerLockMessage
;
3580 [case(op_MAPI_AddressTypes
)] AddressTypes_repl mapi_AddressTypes
;
3581 [case(op_MAPI_TransportSend
)] TransportSend_repl mapi_TransportSend
;
3582 [case(op_MAPI_FastTransferSourceGetBuffer
)] FastTransferSourceGetBuffer_repl mapi_FastTransferSourceGetBuffer
;
3583 [case(op_MAPI_FindRow
)] FindRow_repl mapi_FindRow
;
3584 [case(op_MAPI_Progress
)] Progress_repl mapi_Progress
;
3585 [case(op_MAPI_GetNamesFromIDs
)] GetNamesFromIDs_repl mapi_GetNamesFromIDs
;
3586 [case(op_MAPI_GetIDsFromNames
)] GetIDsFromNames_repl mapi_GetIDsFromNames
;
3587 [case(op_MAPI_UpdateDeferredActionMessages
)] UpdateDeferredActionMessages_repl mapi_UpdateDeferredActionMessages
;
3588 [case(op_MAPI_EmptyFolder
)] EmptyFolder_repl mapi_EmptyFolder
;
3589 [case(op_MAPI_ExpandRow
)] ExpandRow_repl mapi_ExpandRow
;
3590 [case(op_MAPI_CollapseRow
)] CollapseRow_repl mapi_CollapseRow
;
3591 [case(op_MAPI_LockRegionStream
)] LockRegionStream_repl mapi_LockRegionStream
;
3592 [case(op_MAPI_UnlockRegionStream
)] UnlockRegionStream_repl mapi_UnlockRegionStream
;
3593 [case(op_MAPI_CommitStream
)] CommitStream_repl mapi_CommitStream
;
3594 [case(op_MAPI_GetStreamSize
)] GetStreamSize_repl mapi_GetStreamSize
;
3595 [case(op_MAPI_QueryNamedProperties
)] QueryNamedProperties_repl mapi_QueryNamedProperties
;
3596 [case(op_MAPI_GetPerUserLongTermIds
)] GetPerUserLongTermIds_repl mapi_GetPerUserLongTermIds
;
3597 [case(op_MAPI_GetPerUserGuid
)] GetPerUserGuid_repl mapi_GetPerUserGuid
;
3598 [case(op_MAPI_ReadPerUserInformation
)] ReadPerUserInformation_repl mapi_ReadPerUserInformation
;
3599 [case(op_MAPI_SetReadFlags
)] SetReadFlags_repl mapi_SetReadFlags
;
3600 [case(op_MAPI_CopyProperties
)] CopyProperties_repl mapi_CopyProperties
;
3601 [case(op_MAPI_GetReceiveFolderTable
)] GetReceiveFolderTable_repl mapi_GetReceiveFolderTable
;
3602 [case(op_MAPI_Pending
)] Pending_repl mapi_Pending
;
3603 [case(op_MAPI_GetCollapseState
)] GetCollapseState_repl mapi_GetCollapseState
;
3604 [case(op_MAPI_SetCollapseState
)] SetCollapseState_repl mapi_SetCollapseState
;
3605 [case(op_MAPI_GetTransportFolder
)] GetTransportFolder_repl mapi_GetTransportFolder
;
3606 [case(op_MAPI_RegisterOptions
)] RegisterOptions_repl mapi_RegisterOptions
;
3607 [case(op_MAPI_SyncConfigure
)] SyncConfigure_repl mapi_SyncConfigure
;
3608 [case(op_MAPI_SyncImportMessageChange
)] SyncImportMessageChange_repl mapi_SyncImportMessageChange
;
3609 [case(op_MAPI_SyncImportHierarchyChange
)] SyncImportHierarchyChange_repl mapi_SyncImportHierarchyChange
;
3610 [case(op_MAPI_SyncImportDeletes
)] SyncImportDeletes_repl mapi_SyncImportDeletes
;
3611 [case(op_MAPI_SyncUploadStateStreamBegin
)] SyncUploadStateStreamBegin_repl mapi_SyncUploadStateStreamBegin
;
3612 [case(op_MAPI_SyncUploadStateStreamContinue
)] SyncUploadStateStreamContinue_repl mapi_SyncUploadStateStreamContinue
;
3613 [case(op_MAPI_SyncUploadStateStreamEnd
)] SyncUploadStateStreamEnd_repl mapi_SyncUploadStateStreamEnd
;
3614 [case(op_MAPI_SyncImportMessageMove
)] SyncImportMessageMove_repl mapi_SyncImportMessageMove
;
3615 [case(op_MAPI_SetPropertiesNoReplicate
)] SetPropertiesNoReplicate_repl mapi_SetPropertiesNoReplicate
;
3616 [case(op_MAPI_DeletePropertiesNoReplicate
)] DeletePropertiesNoReplicate_repl mapi_DeletePropertiesNoReplicate
;
3617 [case(op_MAPI_GetStoreState
)] GetStoreState_repl mapi_GetStoreState
;
3618 [case(op_MAPI_SyncOpenCollector
)] SyncOpenCollector_repl mapi_SyncOpenCollector
;
3619 [case(op_MAPI_GetLocalReplicaIds
)] GetLocalReplicaIds_repl mapi_GetLocalReplicaIds
;
3620 [case(op_MAPI_SyncImportReadStateChanges
)] SyncImportReadStateChanges_repl mapi_SyncImportReadStateChanges
;
3621 [case(op_MAPI_ResetTable
)] ResetTable_repl mapi_ResetTable
;
3622 [case(op_MAPI_SyncGetTransferState
)] SyncGetTransferState_repl mapi_SyncGetTransferState
;
3623 [case(op_MAPI_OpenPublicFolderByName
)] OpenPublicFolderByName_repl mapi_OpenPublicFolderByName
;
3624 [case(op_MAPI_SetSyncNotificationGuid
)] SetSyncNotificationGuid_repl mapi_SetSyncNotificationGuid
;
3625 [case(op_MAPI_FreeBookmark
)] FreeBookmark_repl mapi_FreeBookmark
;
3626 [case(op_MAPI_HardDeleteMessages
)] HardDeleteMessages_repl mapi_HardDeleteMessages
;
3627 [case(op_MAPI_Logon
)] Logon_repl mapi_Logon
;
3628 [case(op_MAPI_proxypack
)] proxypack_repl mapi_proxypack
;
3630 } EcDoRpc_MAPI_REPL_UNION
;
3632 typedef [public, nodiscriminant
] union {
3633 [case(op_MAPI_Logon
)] Logon_redirect mapi_Logon
;
3635 } EcDoRpc_MAPI_REPL_UNION_SPECIAL
;
3637 typedef [public,flag
(NDR_NOALIGN
)] struct {
3641 [switch_is(opnum
)] EcDoRpc_MAPI_REQ_UNION u
;
3644 typedef [public,nopush
,nopull
,noprint
,flag
(NDR_NOALIGN
)] struct {
3647 MAPISTATUS error_code
;
3648 [switch_is(opnum
)] EcDoRpc_MAPI_REPL_UNION u
;
3649 [switch_is(opnum
)] EcDoRpc_MAPI_REPL_UNION_SPECIAL us
;
3650 } EcDoRpc_MAPI_REPL
;
3654 Abstract way to represent MAPI content
3657 typedef [public,nopull
,nopush
,noprint
] struct {
3658 uint32 mapi_len
; /* whole mapi_data length */
3659 uint16 length
; /* content length */
3660 EcDoRpc_MAPI_REQ
*mapi_req
;
3661 uint32
*handles
; /* handles id array */
3664 typedef [public,nopull
,nopush
,noprint
] struct {
3667 EcDoRpc_MAPI_REPL
*mapi_repl
;
3672 [public] MAPISTATUS EcDoRpc
(
3673 [in,out] policy_handle
*handle,
3674 [in,out] uint32 size
,
3675 [in,out] uint32 offset
,
3676 [in] [subcontext
(4),flag
(NDR_REMAINING|NDR_NOALIGN
)] mapi_request
*mapi_request
,
3677 [out][subcontext
(4),flag
(NDR_REMAINING|NDR_NOALIGN
)] mapi_response
*mapi_response
,
3678 [in,out] uint16
*length
,
3679 [in] uint16 max_data
3684 void EcGetMoreRpc
();
3690 we could directly use a NOTIFKEY structure rather than
3691 a uint8 array, but this makes the IDL more robust
3693 sockaddr array is made of:
3694 - family (unsigned short in) sa_family_t
3695 - address data sa_data[14];
3703 MAPISTATUS EcRRegisterPushNotification
(
3704 [in,out] policy_handle
*handle,
3705 [in] NotificationFlags ulEventMask
,
3706 [in,size_is(cbContext
)] uint8 rgbContext
[*],
3707 [in] uint16 cbContext
,
3708 [in] uint32 grbitAdviseBits
,
3709 [in,size_is(cbCallbackAddress
)] uint8 rgCallbackAddress
[*],
3710 [in] uint16 cbCallbackAddress
,
3711 [out,ref] uint32
*hNotification
3716 MAPISTATUS EcRUnregisterPushNotification
(
3717 [in,out] policy_handle
*handle,
3718 [in] uint32 unknown
[2]
3727 void EcRGetDCName
();
3731 void EcRNetGetDCName
();
3739 MAPISTATUS EcDoConnectEx
(
3740 [out] policy_handle
*handle,
3741 [in,string,charset
(DOS
)] uint8 szUserDN
[],
3742 [in] uint32 ulFlags
,
3743 [in] uint32 ulConMod
,
3744 [in] uint32 cbLimit
,
3746 [in] uint32 ulLcidString
,
3747 [in] uint32 ulLcidSort
,
3748 [in] uint32 ulIcxrLink
,
3749 [in] uint16 usFCanConvertCodePages
,
3750 [out] uint32
*pcmsPollsMax
,
3751 [out] uint32
*pcRetry
,
3752 [out] uint32
*pcmsRetryDelay
,
3753 [out] uint32
*picxr
,
3754 [out,unique,string,charset
(DOS
)]uint8
*szDNPrefix
,
3755 [out,unique,string,charset
(DOS
)]uint8
*szDisplayName
,
3756 [in] uint16 rgwClientVersion
[3],
3757 [out] uint16 rgwServerVersion
[3],
3758 [out] uint16 rgwBestVersion
[3],
3759 [in,out] uint32
*pulTimeStamp
,
3760 [in][subcontext
(4),flag
(NDR_REMAINING|NDR_NOALIGN
)] DATA_BLOB rgbAuxIn
,
3761 [in,out][range(0x0,0x1008)] uint32
*pcbAuxOut
,
3762 [in][flag
(NDR_REMAINING
)] DATA_BLOB data
3767 uuid("c840a7dc-42c0-1a10-b4b9-08002b2fe182"),
3768 pointer_default(unique),
3769 helpstring("Unknown")
3770 ] interface exchange_unknown
3772 void unknown_dummy
();