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_CloneStream
= 0x3b,
841 op_MAPI_GetTable
= 0x3e,
842 op_MAPI_GetRulesTable
= 0x3f,
843 op_MAPI_ModifyTable
= 0x40,
844 op_MAPI_ModifyRules
= 0x41,
845 op_MAPI_GetOwningServers
= 0x42,
846 op_MAPI_LongTermIdFromId
= 0x43,
847 op_MAPI_IdFromLongTermId
= 0x44,
848 op_MAPI_PublicFolderIsGhosted
= 0x45,
849 op_MAPI_OpenEmbeddedMessage
= 0x46,
850 op_MAPI_SetSpooler
= 0x47,
851 op_MAPI_SpoolerLockMessage
= 0x48,
852 op_MAPI_AddressTypes
= 0x49,
853 op_MAPI_TransportSend
= 0x4a,
854 op_MAPI_FastTransferSourceGetBuffer
= 0x4e,
855 op_MAPI_FindRow
= 0x4f,
856 op_MAPI_Progress
= 0x50,
857 op_MAPI_TransportNewMail
= 0x51,
858 op_MAPI_GetValidAttachments
= 0x52,
859 op_MAPI_GetNamesFromIDs
= 0x55,
860 op_MAPI_GetIDsFromNames
= 0x56,
861 op_MAPI_UpdateDeferredActionMessages
= 0x57,
862 op_MAPI_EmptyFolder
= 0x58,
863 op_MAPI_ExpandRow
= 0x59,
864 op_MAPI_CollapseRow
= 0x5a,
865 op_MAPI_LockRegionStream
= 0x5b,
866 op_MAPI_UnlockRegionStream
= 0x5c,
867 op_MAPI_CommitStream
= 0x5d,
868 op_MAPI_GetStreamSize
= 0x5e,
869 op_MAPI_QueryNamedProperties
= 0x5f,
870 op_MAPI_GetPerUserLongTermIds
= 0x60,
871 op_MAPI_GetPerUserGuid
= 0x61,
872 op_MAPI_ReadPerUserInformation
= 0x63,
873 op_MAPI_SetReadFlags
= 0x66,
874 op_MAPI_CopyProperties
= 0x67,
875 op_MAPI_GetReceiveFolderTable
= 0x68,
876 op_MAPI_GetCollapseState
= 0x6b,
877 op_MAPI_SetCollapseState
= 0x6c,
878 op_MAPI_GetTransportFolder
= 0x6d,
879 op_MAPI_Pending
= 0x6e,
880 op_MAPI_RegisterOptions
= 0x6f,
881 op_MAPI_SyncConfigure
= 0x70,
882 op_MAPI_SyncImportMessageChange
= 0x72,
883 op_MAPI_SyncImportHierarchyChange
= 0x73,
884 op_MAPI_SyncImportDeletes
= 0x74,
885 op_MAPI_SyncUploadStateStreamBegin
= 0x75,
886 op_MAPI_SyncUploadStateStreamContinue
= 0x76,
887 op_MAPI_SyncUploadStateStreamEnd
= 0x77,
888 op_MAPI_SyncImportMessageMove
= 0x78,
889 op_MAPI_SetPropertiesNoReplicate
= 0x79,
890 op_MAPI_DeletePropertiesNoReplicate
= 0x7a,
891 op_MAPI_GetStoreState
= 0x7b,
892 op_MAPI_SyncOpenCollector
= 0x7e,
893 op_MAPI_GetLocalReplicaIds
= 0x7f,
894 op_MAPI_SyncImportReadStateChanges
= 0x80,
895 op_MAPI_ResetTable
= 0x81,
896 op_MAPI_SyncGetTransferState
= 0x82,
897 op_MAPI_OpenPublicFolderByName
= 0x87,
898 op_MAPI_SetSyncNotificationGuid
= 0x88,
899 op_MAPI_FreeBookmark
= 0x89,
900 op_MAPI_WriteAndCommitStream
= 0x90,
901 op_MAPI_HardDeleteMessages
= 0x91,
902 op_MAPI_HardDeleteMessagesAndSubfolders
= 0x92,
903 op_MAPI_Logon
= 0xfe,
904 /****** custom MAPI opnum for mapiproxy ******/
905 op_MAPI_proxypack
= 0xa5
909 typedef [public,noprint
,flag
(NDR_NOALIGN
)] struct {
911 [flag
(NDR_BUFFERS
)]uint8 lpb
[cb
];
914 typedef [public] struct {
917 } mapi_MV_LONG_STRUCT
;
919 typedef [public] struct {
923 typedef [public] struct {
925 mapi_LPSTR strings
[cValues
];
929 [flag
(STR_NULLTERM
)] string lppszW
;
934 mapi_LPWSTR strings
[cValues
];
937 typedef [public] struct {
939 SBinary_short bin
[cValues
];
944 GUID lpguid
[cValues
];
947 /******* part of the no-pointer deep recursion hack *******/
948 typedef [nopull
,nopush
,noprint
,flag
(NDR_NOALIGN
)] struct {
950 } mapi_SRestriction_wrap
;
952 typedef [nopush
,nopull
,noprint
,flag
(NDR_NOALIGN
)] struct {
954 } mapi_SPropValue_wrap
;
956 typedef [nopush
,nopull
,noprint
,flag
(NDR_NOALIGN
)] struct {
958 } mapi_SPropValue_array_wrap
;
959 /**********************************************************/
961 typedef [enum8bit
] enum {
962 ActionType_OP_MOVE
= 0x1,
963 ActionType_OP_COPY
= 0x2,
964 ActionType_OP_REPLY
= 0x3,
965 ActionType_OP_OOF_REPLY
= 0x4,
966 ActionType_OP_DEFER_ACTION
= 0x5,
967 ActionType_OP_BOUNCE
= 0x6,
968 ActionType_OP_FORWARD
= 0x7,
969 ActionType_OP_DELEGATE
= 0x8,
970 ActionType_OP_TAG
= 0x9,
971 ActionType_OP_DELETE
= 0xA,
972 ActionType_OP_MARK_AS_READ
= 0xB
975 typedef [flag
(NDR_NOALIGN
)] struct {
976 boolean8 FolderInThisStore
;
977 SBinary_short StoreEID
;
978 SBinary_short FolderEID
;
981 typedef [flag
(NDR_NOALIGN
)] struct {
982 hyper ReplyTemplateFID
;
983 hyper ReplyTemplateMID
;
984 GUID ReplyTemplateGUID
;
987 typedef [flag
(NDR_NOALIGN
)] struct {
989 mapi_SPropValue_array_wrap PropertyValue
;
992 typedef [flag
(NDR_NOALIGN
)] enum {
993 BOUNCE_MESSAGE_TOO_LARGE
= 0x0000000d,
994 BOUNCE_MESSAGE_NOT_DISPLAYED
= 0x0000001f,
995 BOUNCE_MESSAGE_DENIED
= 0x00000026
998 typedef [flag
(NDR_NOALIGN
)] struct {
999 uint16 RecipientCount
;
1000 RecipientBlock RecipientBlock
[RecipientCount
];
1001 } ForwardDelegate_Action
;
1003 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1004 [case(ActionType_OP_MOVE
)] MoveCopy_Action MoveAction
;
1005 [case(ActionType_OP_COPY
)] MoveCopy_Action CopyAction
;
1006 [case(ActionType_OP_REPLY
)] ReplyOOF_Action ReplyAction
;
1007 [case(ActionType_OP_OOF_REPLY
)] ReplyOOF_Action ReplyOOFAction
;
1008 [case(ActionType_OP_DEFER_ACTION
)][flag
(NDR_REMAINING
)] DATA_BLOB DeferAction
;
1009 [case(ActionType_OP_BOUNCE
)] BounceCode BounceCode
;
1010 [case(ActionType_OP_TAG
)] mapi_SPropValue_wrap PropValue
;
1011 [case(ActionType_OP_FORWARD
)] ForwardDelegate_Action ForwardAction
;
1012 [case(ActionType_OP_DELEGATE
)] ForwardDelegate_Action DelegateAction
;
1013 [case(ActionType_OP_DELETE
)];
1014 [case(ActionType_OP_MARK_AS_READ
)];
1017 typedef [flag
(NDR_NOALIGN
)] struct {
1018 ActionType ActionType
;
1019 uint32 ActionFlavor
;
1021 [switch_is(ActionType
)] ActionData ActionDataBuffer
;
1024 typedef [flag
(NDR_NOALIGN
)] struct {
1025 uint16 ActionLength
;
1026 [subcontext
(0),subcontext_size
(ActionLength
),flag
(NDR_REMAINING
)] ActionBlockData ActionBlockData
;
1029 typedef [flag
(NDR_NOALIGN
)] struct {
1031 ActionBlock ActionBlock
[count
];
1034 typedef [public,nodiscriminant
,flag
(NDR_NOALIGN
)] union {
1035 [case(PT_I2
)] uint16 i
;
1036 [case(PT_LONG
)] uint32 l
;
1037 [case(PT_DOUBLE
)] dlong dbl
;
1038 [case(PT_ERROR
)] uint32 err
;
1039 [case(PT_BOOLEAN
)] uint8 b
;
1040 [case(PT_I8
)] dlong d
;
1041 [case(PT_STRING8
)] astring lpszA
;
1042 [case(PT_UNICODE
)][flag
(STR_NULLTERM
)] string lpszW
;
1043 [case(PT_SYSTIME
)] FILETIME ft
;
1044 [case(PT_CLSID
)] GUID lpguid
;
1045 [case(PT_SRESTRICT
)] mapi_SRestriction_wrap Restrictions
;
1046 [case(PT_ACTIONS
)] RuleAction RuleAction
;
1047 [case(PT_BINARY
)] SBinary_short bin
;
1048 [case(PT_SVREID
)] SBinary_short bin
;
1049 [case(PT_MV_LONG
)] mapi_MV_LONG_STRUCT MVl
;
1050 [case(PT_MV_STRING8
)] mapi_SLPSTRArray MVszA
;
1051 [case(PT_MV_UNICODE
)] mapi_SPLSTRArrayW MVszW
;
1052 [case(PT_MV_CLSID
)] mapi_SGuidArray MVguid
;
1053 [case(PT_MV_BINARY
)] mapi_SBinaryArray MVbin
;
1054 } mapi_SPropValue_CTR
;
1056 typedef [public,flag
(NDR_NOALIGN
)] struct {
1058 [switch_is(ulPropTag
& 0xFFFF)] mapi_SPropValue_CTR value
;
1061 typedef [public,flag
(NDR_NOALIGN
)] struct {
1063 [flag
(NDR_REMAINING
)]mapi_SPropValue lpProps
[cValues
];
1064 } mapi_SPropValue_array
;
1066 typedef [flag
(NDR_NOALIGN
)] struct {
1068 MAPITAGS aulPropTag
[cValues
];
1069 } mapi_SPropTagArray
;
1071 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
1077 typedef [flag
(NDR_NOALIGN
)] struct {
1078 ulRowFlags ulRowFlags
;
1079 mapi_SPropValue_array lpProps
;
1082 typedef [flag
(NDR_NOALIGN
)] struct {
1085 mapi_SRow aEntries
[cEntries
];
1088 /**************************/
1089 /* EcDoRpc Function 0x1 */
1090 typedef [nopush
,nopull
,flag
(NDR_NOALIGN
)] struct {
1093 typedef [nopush
,nopull
,flag
(NDR_NOALIGN
)] struct {
1096 /**************************/
1097 /* EcDoRpc Function 0x2 */
1098 typedef [enum8bit
] enum {
1099 OpenModeFlags_Folder
= 0x0,
1100 OpenModeFlags_SoftDeleted
= 0x4
1101 } OpenFolder_OpenModeFlags
;
1103 typedef [flag
(NDR_NOALIGN
)] struct {
1106 OpenFolder_OpenModeFlags OpenModeFlags
;
1109 typedef [flag
(NDR_NOALIGN
)] struct {
1111 uint16 CheapServerCount
;
1112 astring Servers
[ServerCount
];
1113 } OpenFolder_Replicas
;
1115 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1117 [case(0x1)] OpenFolder_Replicas Replicas
;
1120 typedef [flag
(NDR_NOALIGN
)] struct {
1123 [switch_is(IsGhosted
)] IsGhosted Ghost
;
1126 /**************************/
1127 /* EcDoRpc Function 0x3 */
1128 typedef [enum8bit
] enum {
1129 StringType_NONE
= 0x0,
1130 StringType_EMPTY
= 0x1,
1131 StringType_STRING8
= 0x2,
1132 StringType_UNICODE_REDUCED
= 0x3,
1133 StringType_UNICODE
= 0x4
1136 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1139 [case(0x2)] astring lpszA
;
1140 [case(0x3)] astring lpszW_reduced
;
1141 [case(0x4)] [flag
(STR_NULLTERM
)] string lpszW
;
1144 typedef [flag
(NDR_NOALIGN
)] struct {
1145 StringType StringType
;
1146 [switch_is(StringType
)] String String;
1149 typedef [bitmap8bit
] bitmap
{
1150 /* 0x0 means Read Only */
1153 } OpenMessage_OpenModeFlags
;
1155 typedef [flag
(NDR_NOALIGN
)] struct {
1159 OpenMessage_OpenModeFlags OpenModeFlags
;
1163 typedef [v1_enum, flag
(NDR_PAHEX
)] enum {
1164 CP_USASCII
= 0x04E4,
1165 CP_UNICODE
= 0x04B0,
1166 CP_JAUTODETECT
= 0xC6F4,
1167 CP_KAUTODETECT
= 0xC705,
1168 CP_ISO2022JPESC
= 0xC42D,
1169 CP_ISO2022JPSIO
= 0xC42E
1172 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
1179 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
1180 SINGLE_RECIPIENT
= 0x0,
1181 DISTRIBUTION_LIST
= 0x1
1184 typedef [flag
(NDR_NOALIGN
)]struct {
1185 uint8 organization_length
;
1186 addr_type addr_type
;
1190 typedef [flag
(NDR_NOALIGN
)] struct {
1193 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1194 [case(0x0)] RecipExchange EXCHANGE
;
1195 [case(0xA)] RecipSMTP SMTP
;
1199 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1201 [case(0x400)] astring lpszA
;
1202 [case(0x600)][flag
(STR_NULLTERM
)] string lpszW
;
1204 } recipient_SimpleDisplayName
;
1206 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1208 [case(0x20)] astring lpszA
;
1209 [case(0x220)][flag
(STR_NULLTERM
)] string lpszW
;
1211 } recipient_TransmittableDisplayName
;
1213 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1215 [case(0x10)] astring lpszA
;
1216 [case(0x210)][flag
(STR_NULLTERM
)] string lpszW
;
1218 } recipient_DisplayName
;
1220 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1222 [case(0x8)] astring lpszA
;
1223 [case(0x208)][flag
(STR_NULLTERM
)] string lpszW
;
1225 } recipient_EmailAddress
;
1227 typedef [flag
(NDR_NOALIGN
)] struct {
1228 uint16 RecipientFlags
;
1229 [switch_is(RecipientFlags
& 0xA)] recipient_type type
;
1230 [switch_is(RecipientFlags
& 0x208)] recipient_EmailAddress EmailAddress
;
1231 [switch_is(RecipientFlags
& 0x210)] recipient_DisplayName DisplayName
;
1232 [switch_is(RecipientFlags
& 0x600)] recipient_SimpleDisplayName SimpleDisplayName
;
1233 [switch_is(RecipientFlags
& 0x220)] recipient_TransmittableDisplayName TransmittableDisplayName
;
1236 [flag
(NDR_REMAINING
)] DATA_BLOB prop_values
;
1239 typedef [flag
(NDR_NOALIGN
)] struct {
1240 ulRecipClass RecipClass
;
1241 CODEPAGEID codepage
;
1242 [subcontext
(2)] RecipientRow RecipientRow
;
1243 } OpenMessage_recipients
;
1245 typedef [flag
(NDR_NOALIGN
)] struct {
1246 boolean8 HasNamedProperties
;
1247 TypedString SubjectPrefix
;
1248 TypedString NormalizedSubject
;
1249 uint16 RecipientCount
;
1250 mapi_SPropTagArray RecipientColumns
;
1252 OpenMessage_recipients recipients
[RowCount
];
1255 /**************************/
1256 /* EcDoRpc Function 0x4 */
1257 typedef [bitmap8bit
] bitmap
{
1258 TableFlags_Depth
= 0x4,
1259 TableFlags_DeferredErrors
= 0x8,
1260 TableFlags_NoNotifications
= 0x10,
1261 TableFlags_SoftDeletes
= 0x20,
1262 TableFlags_UseUnicode
= 0x40,
1263 TableFlags_SuppressNotifications
= 0x80
1266 typedef [flag
(NDR_NOALIGN
)] struct {
1268 TableFlags TableFlags
;
1269 } GetHierarchyTable_req
;
1271 typedef [flag
(NDR_NOALIGN
)] struct {
1273 } GetHierarchyTable_repl
;
1275 /**************************/
1276 /* EcDoRpc Function 0x5 */
1277 typedef [flag
(NDR_NOALIGN
)] struct {
1279 TableFlags TableFlags
;
1280 } GetContentsTable_req
;
1282 typedef [flag
(NDR_NOALIGN
)] struct {
1284 } GetContentsTable_repl
;
1286 /**************************/
1287 /* EcDoRpc Function 0x6 */
1288 typedef [flag
(NDR_NOALIGN
)] struct {
1292 boolean8 AssociatedFlag
;
1293 } CreateMessage_req
;
1295 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1297 [case(0x1)] hyper MessageId
;
1298 } CreateMessage_MessageId
;
1300 typedef [flag
(NDR_NOALIGN
)] struct {
1301 boolean8 HasMessageId
;
1302 [switch_is(HasMessageId
)] CreateMessage_MessageId MessageId
;
1303 } CreateMessage_repl
;
1305 /*************************/
1306 /* EcDoRpc Function 0x7 */
1307 typedef [flag
(NDR_NOALIGN
)] struct {
1308 uint16 PropertySizeLimit
;
1311 MAPITAGS properties
[prop_count
];
1314 typedef [flag
(NDR_NOALIGN
)] struct {
1316 [flag
(NDR_REMAINING
)] DATA_BLOB prop_data
;
1319 /*************************/
1320 /* EcDoRpc Function 0x8 */
1321 typedef [flag
(NDR_NOALIGN
)] struct {
1322 uint16 PropertySizeLimit
;
1326 typedef [flag
(NDR_NOALIGN
)] struct {
1327 mapi_SPropValue_array properties
;
1330 /*************************/
1331 /* EcDoRpc Function 0x9 */
1332 typedef [flag
(NDR_NOALIGN
)] struct {
1335 typedef [flag
(NDR_NOALIGN
)] struct {
1337 MAPITAGS tags
[count
];
1340 /*************************/
1341 /* EcDoRpc Function 0xa */
1342 typedef [flag
(NDR_NOALIGN
)] struct {
1343 uint32 index
; /* index into array of property tags */
1344 MAPITAGS property_tag
; /* property for which there was an error */
1345 MAPISTATUS error_code
; /* the error that occurred for this property */
1348 typedef [flag
(NDR_NOALIGN
)] struct {
1349 [subcontext
(2)] mapi_SPropValue_array values
;
1352 typedef [flag
(NDR_NOALIGN
)] struct {
1353 uint16 PropertyProblemCount
;
1354 PropertyProblem PropertyProblem
[PropertyProblemCount
];
1357 /*************************/
1358 /* EcDoRpc Function 0xb */
1359 typedef [flag
(NDR_NOALIGN
)] struct {
1361 MAPITAGS tags
[count
];
1364 typedef [flag
(NDR_NOALIGN
)] struct {
1365 uint16 PropertyProblemCount
;
1366 PropertyProblem PropertyProblem
[PropertyProblemCount
];
1369 /*************************/
1370 /* EcDoRpc Function 0xc */
1371 typedef [enum8bit
] enum {
1372 KeepOpenReadOnly
= 0x9,
1373 KeepOpenReadWrite
= 0xA,
1377 typedef [flag
(NDR_NOALIGN
)] struct {
1380 } SaveChangesMessage_req
;
1382 typedef [flag
(NDR_NOALIGN
)] struct {
1385 } SaveChangesMessage_repl
;
1387 /*************************/
1388 /* EcDoRpc Function 0xd */
1389 typedef [flag
(NDR_NOALIGN
)] struct {
1391 } RemoveAllRecipients_req
;
1393 typedef [flag
(NDR_NOALIGN
)] struct {
1395 } RemoveAllRecipients_repl
;
1397 /*************************/
1398 /* EcDoRpc Function 0xe */
1401 * MODRECIP_NULL and INVALID are not part of the msdn flags
1402 * but are added for printing support
1404 typedef [enum8bit
,flag
(NDR_PAHEX
)] enum {
1405 MODRECIP_NULL
= 0x0,
1406 MODRECIP_INVALID
= 0x1,
1408 MODRECIP_MODIFY
= 0x4,
1409 MODRECIP_REMOVE
= 0x8
1412 typedef [flag
(NDR_NOALIGN
)]struct {
1414 ulRecipClass RecipClass
;
1415 [subcontext
(2),flag
(NDR_REMAINING
)] RecipientRow RecipientRow
;
1416 } ModifyRecipientRow
;
1418 typedef [flag
(NDR_NOALIGN
)] struct {
1420 MAPITAGS properties
[prop_count
];
1422 ModifyRecipientRow RecipientRow
[cValues
];
1423 } ModifyRecipients_req
;
1425 typedef [flag
(NDR_NOALIGN
)] struct {
1427 } ModifyRecipients_repl
;
1429 /*************************/
1430 /* EcDoRpc Function 0xf */
1431 typedef [flag
(NDR_NOALIGN
)] struct {
1434 } ReadRecipients_req
;
1436 typedef [flag
(NDR_NOALIGN
)] struct {
1438 ulRecipClass RecipientType
;
1441 [subcontext
(2)] RecipientRow RecipientRow
;
1444 typedef [flag
(NDR_NOALIGN
)] struct {
1446 ReadRecipientRow RecipientRows
[RowCount
];
1447 } ReadRecipients_repl
;
1449 /*************************/
1450 /* EcDoRpc Function 0x10 */
1451 typedef [flag
(NDR_NOALIGN
)] struct {
1452 ulRecipClass RecipientType
;
1455 uint16 RecipientRowSize
;
1456 [subcontext
(0),subcontext_size
(RecipientRowSize
),flag
(NDR_REMAINING
)]RecipientRow RecipientRow
;
1459 typedef [flag
(NDR_NOALIGN
)] struct {
1461 } ReloadCachedInformation_req
;
1463 typedef [flag
(NDR_NOALIGN
)] struct {
1464 boolean8 HasNamedProperties
;
1465 TypedString SubjectPrefix
;
1466 TypedString NormalizedSubject
;
1467 uint16 RecipientCount
;
1468 mapi_SPropTagArray RecipientColumns
;
1470 OpenRecipientRow RecipientRows
[RowCount
];
1471 } ReloadCachedInformation_repl
;
1473 /*************************/
1474 /* EcDoRpc Function 0x11 */
1476 typedef [bitmap8bit
] bitmap
{
1477 SUPPRESS_RECEIPT
= 0x01,
1478 CLEAR_READ_FLAG
= 0x04,
1479 MAPI_DEFERRED_ERRORS
= 0x08,
1480 GENERATE_RECEIPT_ONLY
= 0x10,
1481 CLEAR_RN_PENDING
= 0x20,
1482 CLEAR_NRN_PENDING
= 0x40
1485 /* TODO: there is a variation that can provide "client data" here */
1486 typedef [flag
(NDR_NOALIGN
)] struct {
1489 [flag
(NDR_REMAINING
)] DATA_BLOB clientdata
;
1490 } SetMessageReadFlag_req
;
1492 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1494 [case(0x1)] uint8 LogonId
;
1495 } SetMessageReadFlag_LogonId
;
1497 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1499 [case(0x1)] uint8 ClientData
[24];
1500 } SetMessageReadFlag_ClientData
;
1502 typedef [flag
(NDR_NOALIGN
)] struct {
1503 boolean8 ReadStatusChanged
;
1504 [switch_is(ReadStatusChanged
)] SetMessageReadFlag_LogonId LogonId
;
1505 [switch_is(ReadStatusChanged
)] SetMessageReadFlag_ClientData ClientData
;
1506 } SetMessageReadFlag_repl
;
1508 /*************************/
1509 /* EcDoRpc Function 0x12 */
1510 typedef [enum8bit
] enum {
1511 SetColumns_TBL_SYNC
= 0x0,
1512 SetColumns_TBL_ASYNC
= 0x1
1515 typedef [enum8bit
] enum {
1516 TBLSTAT_COMPLETE
= 0x0,
1517 TBLSTAT_SORTING
= 0x9,
1518 TBLSTAT_SORT_ERROR
= 0xA,
1519 TBLSTAT_SETTING_COLS
= 0xB,
1520 TBLSTAT_SETCOL_ERROR
= 0xD,
1521 TBLSTAT_RESTRICTING
= 0xE,
1522 TBLSTAT_RESTRICT_ERROR
= 0xF
1525 typedef [flag
(NDR_NOALIGN
)] struct {
1526 SetColumnsFlags SetColumnsFlags
;
1528 MAPITAGS properties
[prop_count
];
1531 typedef [flag
(NDR_NOALIGN
)] struct {
1532 TableStatus TableStatus
;
1535 /**************************/
1536 /* EcDoRpc Function 0x13 */
1537 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
1542 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
1543 TABLE_SORT_ASCEND
= 0x0,
1544 TABLE_SORT_COMBINE
= 0x1,
1545 TABLE_SORT_DESCEND
= 0x2
1548 typedef [public, flag
(NDR_NOALIGN
)] struct _SSortOrder
{
1553 typedef [public, flag
(NDR_NOALIGN
)] struct _SSortOrderSet
{
1557 SSortOrder aSort
[cSorts
];
1560 typedef [flag
(NDR_NOALIGN
)] struct {
1561 uint8 SortTableFlags
;
1562 SSortOrderSet lpSortCriteria
;
1565 typedef [flag
(NDR_NOALIGN
)] struct {
1566 TableStatus TableStatus
;
1569 /**************************/
1570 /* EcDoRpc Function 0x14 */
1571 typedef [flag
(NDR_NOALIGN
)] struct {
1573 mapi_SRestriction_and res
[cRes
];
1574 } mapi_SAndRestriction
;
1576 typedef [flag
(NDR_NOALIGN
)] struct {
1578 mapi_SRestriction_or res
[cRes
];
1579 } mapi_SOrRestriction
;
1581 typedef [flag
(NDR_NOALIGN
)] struct {
1582 mapi_SRestriction_wrap res
;
1583 } mapi_SNotRestriction
;
1585 typedef [noprint
, bitmap32bit
] bitmap
{
1586 FL_FULLSTRING
= 0x00000,
1587 FL_SUBSTRING
= 0x00001,
1588 FL_PREFIX
= 0x00002,
1589 FL_IGNORECASE
= 0x10000,
1590 FL_IGNORENONSPACE
= 0x20000,
1594 typedef [flag
(NDR_NOALIGN
)] struct {
1597 mapi_SPropValue lpProp
;
1598 } mapi_SContentRestriction
;
1600 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
1605 typedef [flag
(NDR_NOALIGN
)] struct {
1609 } mapi_SBitmaskRestriction
;
1611 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
1612 RELOP_LT
= 0x0, /* < */
1613 RELOP_LE
= 0x1, /* <= */
1614 RELOP_GT
= 0x2, /* > */
1615 RELOP_GE
= 0x3, /* >= */
1616 RELOP_EQ
= 0x4, /* == */
1617 RELOP_NE
= 0x5, /* != */
1618 RELOP_RE
= 0x6 /* LIKE (Regular expression) */
1621 typedef [flag
(NDR_NOALIGN
)] struct {
1625 } mapi_SSizeRestriction
;
1627 typedef [flag
(NDR_NOALIGN
)] struct {
1630 mapi_SPropValue lpProp
;
1631 } mapi_SPropertyRestriction
;
1633 typedef [flag
(NDR_NOALIGN
)] struct {
1635 MAPITAGS ulPropTag1
;
1636 MAPITAGS ulPropTag2
;
1637 } mapi_SCompareProps
;
1639 typedef [flag
(NDR_NOALIGN
)] struct {
1641 } mapi_SExistRestriction
;
1643 typedef [flag
(NDR_NOALIGN
)] struct {
1644 MAPITAGS ulSubObject
;
1645 mapi_SRestriction_sub res
[ulSubObject
- ulSubObject
+ 1]; /* nasty hack - generates fake pointer */
1646 } mapi_SSubRestriction
;
1648 typedef [nopush
,nopull
,noprint
,nodiscriminant
] union {
1650 [case(0x1)] mapi_SRestriction_comment
*res
;
1651 } RestrictionVariable
;
1653 typedef [flag
(NDR_NOALIGN
)] struct {
1654 uint8 TaggedValuesCount
;
1655 mapi_SPropValue TaggedValues
[TaggedValuesCount
];
1656 boolean8 RestrictionPresent
;
1657 [switch_is(RestrictionPresent
)] RestrictionVariable Restriction
;
1658 } mapi_SCommentRestriction
;
1660 typedef [public,nodiscriminant
] union {
1661 [case(RES_AND
)] mapi_SAndRestriction resAnd
;
1662 [case(RES_OR
)] mapi_SOrRestriction resOr
;
1663 [case(RES_NOT
)] mapi_SNotRestriction resNot
;
1664 [case(RES_CONTENT
)] mapi_SContentRestriction resContent
;
1665 [case(RES_PROPERTY
)] mapi_SPropertyRestriction resProperty
;
1666 [case(RES_COMPAREPROPS
)] mapi_SCompareProps resCompareProps
;
1667 [case(RES_BITMASK
)] mapi_SBitmaskRestriction resBitmask
;
1668 [case(RES_SIZE
)] mapi_SSizeRestriction resSize
;
1669 [case(RES_EXIST
)] mapi_SExistRestriction resExist
;
1670 [case(RES_SUBRESTRICTION
)] mapi_SSubRestriction resSub
;
1671 [case(RES_COMMENT
)] mapi_SCommentRestriction resComment
;
1673 } mapi_SRestriction_CTR
;
1675 typedef [public,flag
(NDR_NOALIGN
)] struct {
1677 [switch_is(rt
)] mapi_SRestriction_CTR res
;
1678 } mapi_SRestriction
;
1680 typedef [public,flag
(NDR_NOALIGN
)] struct _mapi_SRestriction
{
1682 [switch_is(rt
)] mapi_SRestriction_CTR res
;
1683 } mapi_SRestriction_and
;
1685 typedef [public,flag
(NDR_NOALIGN
)] struct _mapi_SRestriction
{
1687 [switch_is(rt
)] mapi_SRestriction_CTR res
;
1688 } mapi_SRestriction_or
;
1690 typedef [public,flag
(NDR_NOALIGN
)] struct _mapi_SRestriction
{
1692 [switch_is(rt
)] mapi_SRestriction_CTR res
;
1693 } mapi_SRestriction_sub
;
1695 typedef [public,flag
(NDR_NOALIGN
)] struct _mapi_SRestriction
{
1697 [switch_is(rt
)] mapi_SRestriction_CTR res
;
1698 } mapi_SRestriction_comment
;
1700 typedef [flag
(NDR_NOALIGN
)] struct {
1702 [subcontext
(2)] mapi_SRestriction restrictions
;
1705 typedef [flag
(NDR_NOALIGN
)] struct {
1706 TableStatus TableStatus
;
1709 /**************************/
1710 /* EcDoRpc Function 0x15 */
1711 typedef [enum8bit
] enum {
1713 TBL_NOADVANCE
= 0x1,
1714 TBL_ENABLEPACKEDBUFFERS
= 0x2
1717 typedef [flag
(NDR_NOALIGN
)] struct {
1718 QueryRowsFlags QueryRowsFlags
;
1723 typedef [nopush
,nopull
,flag
(NDR_NOALIGN
)] struct {
1726 [flag
(NDR_REMAINING
)]DATA_BLOB RowData
;
1729 /**************************/
1730 /* EcDoRpc Function 0x16 */
1731 typedef [flag
(NDR_NOALIGN
)] struct {
1734 typedef [flag
(NDR_NOALIGN
)] struct {
1735 TableStatus TableStatus
;
1738 /**************************/
1739 /* EcDoRpc Function 0x17 */
1740 typedef [flag
(NDR_NOALIGN
)] struct {
1741 } QueryPosition_req
;
1743 typedef [flag
(NDR_NOALIGN
)] struct {
1746 } QueryPosition_repl
;
1748 /**************************/
1749 /* EcDoRpc Function 0x18 */
1750 typedef [enum8bit
] enum {
1751 BOOKMARK_BEGINNING
= 0x0,
1752 BOOKMARK_CURRENT
= 0x1,
1757 typedef [flag
(NDR_NOALIGN
)] struct {
1760 boolean8 WantRowMovedCount
;
1763 typedef [flag
(NDR_NOALIGN
)] struct {
1764 boolean8 HasSoughtLess
;
1768 /**************************/
1769 /* EcDoRpc Function 0x19 */
1770 typedef [flag
(NDR_NOALIGN
)] struct {
1771 SBinary_short Bookmark
;
1773 boolean8 WantRowMovedCount
;
1774 } SeekRowBookmark_req
;
1776 typedef [flag
(NDR_NOALIGN
)] struct {
1777 boolean8 RowNoLongerVisible
;
1778 boolean8 HasSoughtLess
;
1780 } SeekRowBookmark_repl
;
1782 /**************************/
1783 /* EcDoRpc Function 0x1a */
1784 typedef [flag
(NDR_NOALIGN
)] struct {
1786 uint32 ulDenominator
;
1787 } SeekRowApprox_req
;
1789 typedef [flag
(NDR_NOALIGN
)] struct {
1790 } SeekRowApprox_repl
;
1792 /**************************/
1793 /* EcDoRpc Function 0x1b */
1794 typedef [flag
(NDR_NOALIGN
)] struct {
1795 } CreateBookmark_req
;
1797 typedef [flag
(NDR_NOALIGN
)] struct {
1798 SBinary_short bookmark
;
1799 } CreateBookmark_repl
;
1801 /**************************/
1802 /* EcDoRpc Function 0x1c */
1803 typedef [enum8bit
] enum {
1804 FOLDER_GENERIC
= 0x1,
1808 typedef [enum8bit
] enum {
1809 MAPI_FOLDER_ANSI
= 0x0,
1810 MAPI_FOLDER_UNICODE
= 0x1
1813 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1814 [case(MAPI_FOLDER_ANSI
)] astring lpszA
;
1815 [case(MAPI_FOLDER_UNICODE
)][flag
(STR_NULLTERM
)] string lpszW
;
1818 typedef [enum16bit
] enum {
1820 OPEN_IF_EXISTS
= 0x0001
1823 typedef [flag
(NDR_NOALIGN
)] struct {
1825 FOLDER_TYPE ulFolderType
;
1826 FOLDER_STRING ulType
;
1827 FOLDER_FLAGS ulFlags
;
1828 [switch_is(ulType
)] LPTSTR FolderName
;
1829 [switch_is(ulType
)] LPTSTR FolderComment
;
1832 typedef [flag
(NDR_NOALIGN
)] struct {
1835 [switch_is(IsGhosted
)] IsGhosted Ghost
;
1836 } CreateFolder_GhostInfo
;
1838 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
1840 [case(0x1)] CreateFolder_GhostInfo GhostInfo
;
1841 } CreateFolder_GhostUnion
;
1843 typedef [flag
(NDR_NOALIGN
)] struct {
1845 boolean8 IsExistingFolder
;
1846 [switch_is(IsExistingFolder
)] CreateFolder_GhostUnion GhostUnion
;
1847 } CreateFolder_repl
;
1849 /**************************/
1850 /* EcDoRpc Function 0x1d */
1851 typedef [bitmap8bit
] bitmap
{
1854 DELETE_HARD_DELETE
= 0x10
1855 } DeleteFolderFlags
;
1857 typedef [flag
(NDR_NOALIGN
)] struct {
1858 DeleteFolderFlags DeleteFolderFlags
;
1862 typedef [flag
(NDR_NOALIGN
)] struct {
1863 boolean8 PartialCompletion
;
1864 } DeleteFolder_repl
;
1866 /**************************/
1867 /* EcDoRpc Function 0x1e */
1868 typedef [flag
(NDR_NOALIGN
)] struct {
1869 boolean8 WantAsynchronous
;
1870 boolean8 NotifyNonRead
;
1872 hyper message_ids
[cn_ids
];
1873 } DeleteMessages_req
;
1875 typedef [flag
(NDR_NOALIGN
)] struct {
1876 boolean8 PartialCompletion
;
1877 } DeleteMessages_repl
;
1879 /**************************/
1880 /* EcDoRpc Function 0x1f */
1881 typedef [flag
(NDR_NOALIGN
)] struct {
1883 } GetMessageStatus_req
;
1885 /**************************/
1886 /* EcDoRpc Function 0x20 */
1887 typedef [bitmap32bit
] bitmap
{
1888 MSGSTATUS_HIGHLIGHTED
= 0x1,
1889 MSGSTATUS_TAGGED
= 0x2,
1890 MSGSTATUS_HIDDEN
= 0x4,
1891 MSGSTATUS_DELMARKED
= 0x8,
1892 MSGSTATUS_REMOTE_DOWNLOAD
= 0x1000,
1893 MSGSTATUS_REMOTE_DELETE
= 0x2000
1897 typedef [flag
(NDR_NOALIGN
)] struct {
1900 ulMessageStatus ulNewStatusMask
;
1901 } SetMessageStatus_req
;
1903 typedef [flag
(NDR_NOALIGN
)] struct {
1904 ulMessageStatus ulOldStatus
;
1905 } SetMessageStatus_repl
;
1907 /**************************/
1908 /* EcDoRpc Function 0x21 */
1909 typedef [flag
(NDR_NOALIGN
)] struct {
1911 TableFlags TableFlags
;
1912 } GetAttachmentTable_req
;
1914 typedef [flag
(NDR_NOALIGN
)] struct {
1915 } GetAttachmentTable_repl
;
1917 /*************************/
1918 /* EcDoRpc Function 0x22 */
1919 typedef [enum8bit
] enum {
1920 OpenAttachmentFlags_ReadOnly
= 0x0,
1921 OpenAttachmentFlags_ReadWrite
= 0x1,
1922 OpenAttachmentFlags_BestAccess
= 0x3
1923 } OpenAttachmentFlags
;
1925 typedef [flag
(NDR_NOALIGN
)] struct {
1927 OpenAttachmentFlags OpenAttachmentFlags
;
1928 uint32 AttachmentID
;
1931 typedef [flag
(NDR_NOALIGN
)] struct {
1934 /*************************/
1935 /* EcDoRpc Function 0x23 */
1936 typedef [flag
(NDR_NOALIGN
)] struct {
1940 typedef [flag
(NDR_NOALIGN
)] struct {
1941 uint32 AttachmentID
;
1942 } CreateAttach_repl
;
1944 /*************************/
1945 /* EcDoRpc Function 0x24 */
1946 typedef [flag
(NDR_NOALIGN
)] struct {
1947 uint32 AttachmentID
;
1951 typedef [flag
(NDR_NOALIGN
)] struct {
1952 } DeleteAttach_repl
;
1954 /*************************/
1955 /* EcDoRpc Function 0x25 */
1956 typedef [flag
(NDR_NOALIGN
)] struct {
1958 SaveFlags SaveFlags
;
1959 } SaveChangesAttachment_req
;
1961 typedef [flag
(NDR_NOALIGN
)] struct {
1962 } SaveChangesAttachment_repl
;
1964 /*************************/
1965 /* EcDoRpc Function 0x26 */
1966 typedef [flag
(NDR_NOALIGN
)] struct {
1968 astring lpszMessageClass
;
1969 } SetReceiveFolder_req
;
1971 typedef [flag
(NDR_NOALIGN
)] struct {
1972 } SetReceiveFolder_repl
;
1974 /*************************/
1975 /* EcDoRpc Function 0x27 */
1976 typedef [flag
(NDR_NOALIGN
)] struct {
1977 astring MessageClass
;
1978 } GetReceiveFolder_req
;
1980 typedef [flag
(NDR_NOALIGN
)] struct {
1982 astring MessageClass
;
1983 } GetReceiveFolder_repl
;
1985 /*************************/
1986 /* EcDoRpc Function 0x29 */
1987 typedef [bitmap16bit
] bitmap
{
1988 fnevCriticalError
= 0x0001,
1989 fnevNewMail
= 0x0002,
1990 fnevObjectCreated
= 0x0004,
1991 fnevObjectDeleted
= 0x0008,
1992 fnevObjectModified
= 0x0010,
1993 fnevObjectMoved
= 0x0020,
1994 fnevObjectCopied
= 0x0040,
1995 fnevSearchComplete
= 0x0080,
1996 fnevTableModified
= 0x0100,
1997 fnevStatusObjectModified
= 0x0200,
1998 fnevReserved
= 0x0400,
2003 } NotificationFlags
;
2005 typedef [nodiscriminant
,flag
(NDR_NOALIGN
)] union {
2006 [case(0x0)] hyper ID;
2010 typedef [flag
(NDR_NOALIGN
)] struct {
2012 NotificationFlags NotificationFlags
;
2013 boolean8 WantWholeStore
;
2014 [switch_is(WantWholeStore
)] hyperbool FolderId
;
2015 [switch_is(WantWholeStore
)] hyperbool MessageId
;
2016 } RegisterNotification_req
;
2018 typedef [flag
(NDR_NOALIGN
)] struct {
2019 } RegisterNotification_repl
;
2021 /*************************/
2022 /* EcDoRpc Function 0x2a */
2023 typedef [bitmap32bit
] bitmap
{
2025 MSGFLAG_UNMODIFIED
= 0x2,
2026 MSGFLAG_SUBMIT
= 0x4,
2027 MSGFLAG_UNSENT
= 0x8,
2028 MSGFLAG_HASATTACH
= 0x10,
2029 MSGFLAG_FROMME
= 0x20,
2030 MSGFLAG_ASSOCIATED
= 0x40,
2031 MSGFLAG_RESEND
= 0x80,
2032 MSGFLAG_RN_PENDING
= 0x100,
2033 MSGFLAG_NRN_PENDING
= 0x200
2036 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
2037 [case(0x0)] astring lpszA
;
2038 [case(0x1)][flag
(STR_NULLTERM
)] string lpszW
;
2041 typedef [flag
(NDR_NOALIGN
)] struct {
2043 uint8 GlobalCounter
[6];
2046 typedef [enum16bit
] enum {
2047 TABLE_CHANGED
= 0x1,
2048 TABLE_ROW_ADDED
= 0x3,
2049 TABLE_ROW_DELETED
= 0x4,
2050 TABLE_ROW_MODIFIED
= 0x5,
2051 TABLE_RESTRICT_DONE
= 0x7
2052 } RichTableNotificationType
;
2054 /* NewMailNotification: case 0x2 and 0x8002 */
2055 typedef [flag
(NDR_NOALIGN
)] struct {
2058 MsgFlags MessageFlags
;
2059 boolean8 UnicodeFlag
;
2060 [switch_is(UnicodeFlag
)] MessageClass MessageClass
;
2061 } NewMailNotification
;
2063 /* FolderCreatedNotification: case 0x4 */
2064 typedef [flag
(NDR_NOALIGN
)] struct {
2068 MAPITAGS Tags
[TagCount
];
2069 } FolderCreatedNotification
;
2071 /* FolderDeletedNotification: case 0x8 */
2072 typedef [flag
(NDR_NOALIGN
)] struct {
2075 } FolderDeletedNotification
;
2077 /* FolderModifiedNotification: case 0x10 */
2078 typedef [flag
(NDR_NOALIGN
)] struct {
2081 MAPITAGS Tags
[TagCount
];
2082 } FolderModifiedNotification_10
;
2084 /* FolderMoveCopyNotification: case 0x20 and 0x40 */
2085 typedef [flag
(NDR_NOALIGN
)] struct {
2090 } FolderMoveCopyNotification
;
2092 /* SearchCompleteNotification: case 0x80 */
2093 typedef [flag
(NDR_NOALIGN
)] struct {
2095 } SearchCompleteNotification
;
2097 /* HierarchyTable: case 0x100 */
2098 typedef [flag
(NDR_NOALIGN
)] struct {
2100 hyper InsertAfterFID
;
2101 [subcontext
(2)] DATA_BLOB Columns
;
2102 } HierarchyRowAddedNotification
;
2104 typedef [flag
(NDR_NOALIGN
)] struct {
2106 } HierarchyRowDeletedNotification
;
2108 typedef [flag
(NDR_NOALIGN
)] struct {
2110 hyper InsertAfterFID
;
2111 [subcontext
(2)] DATA_BLOB Columns
;
2112 } HierarchyRowModifiedNotification
;
2114 typedef [nodiscriminant
] union {
2115 [case(TABLE_ROW_ADDED
)] HierarchyRowAddedNotification HierarchyRowAddedNotification
;
2116 [case(TABLE_ROW_DELETED
)] HierarchyRowDeletedNotification HierarchyRowDeletedNotification
;
2117 [case(TABLE_ROW_MODIFIED
)] HierarchyRowModifiedNotification HierarchyRowModifiedNotification
;
2119 } HierarchyTableChangeUnion
;
2121 typedef [flag
(NDR_NOALIGN
)] struct {
2122 RichTableNotificationType TableEvent
;
2123 [switch_is(TableEvent
)] HierarchyTableChangeUnion HierarchyTableChangeUnion
;
2124 } HierarchyTableChange
;
2126 /* IcsNotification: case 0x200 */
2127 typedef [flag
(NDR_NOALIGN
)] struct {
2128 boolean8 HierChanged
;
2133 /* FolderModifiedNotification: case 0x1010 */
2134 typedef [flag
(NDR_NOALIGN
)] struct {
2137 MAPITAGS Tags
[TagCount
];
2138 uint32 TotalMessageCount
;
2139 } FolderModifiedNotification_1010
;
2141 /* FolderModifiedNotification: case 0x2010 */
2142 typedef [flag
(NDR_NOALIGN
)] struct {
2145 MAPITAGS Tags
[TagCount
];
2146 uint32 UnreadMessageCount
;
2147 } FolderModifiedNotification_2010
;
2149 /* FolderModifiedNotification: case 0x3010 */
2150 typedef [flag
(NDR_NOALIGN
)] struct {
2153 MAPITAGS Tags
[TagCount
];
2154 uint32 TotalMessageCount
;
2155 uint32 UnreadMessageCount
;
2156 } FolderModifiedNotification_3010
;
2158 /* MessageCreatedNotification: case 0x8004 */
2159 typedef [flag
(NDR_NOALIGN
)] struct {
2163 MAPITAGS Tags
[TagCount
];
2164 } MessageCreatedNotification
;
2166 /* MessageDeletedNotification: case 0x8008 */
2167 typedef [flag
(NDR_NOALIGN
)] struct {
2170 } MessageDeletedNotification
;
2172 /* MessageModifiedNotification: case 0x8010 */
2173 typedef [flag
(NDR_NOALIGN
)] struct {
2177 MAPITAGS Tags
[TagCount
];
2178 } MessageModifiedNotification
;
2180 /* MessageMoveCopyNotification: case 0x8020 and 0x8040 */
2181 typedef [flag
(NDR_NOALIGN
)] struct {
2186 } MessageMoveCopyNotification
;
2188 /* ContentsTableChange: case 0x8100 and 0xc100 */
2189 typedef [flag
(NDR_NOALIGN
)] struct {
2193 hyper InsertAfterFID
;
2194 hyper InsertAfterMID
;
2195 uint32 InsertAfterInstance
;
2196 [subcontext
(2)] DATA_BLOB Columns
;
2197 } ContentsRowAddedNotification
;
2199 typedef [flag
(NDR_NOALIGN
)] struct {
2203 } ContentsRowDeletedNotification
;
2205 typedef [flag
(NDR_NOALIGN
)] struct {
2209 hyper InsertAfterFID
;
2210 hyper InsertAfterMID
;
2211 uint32 InsertAfterInstance
;
2212 [subcontext
(2)] DATA_BLOB Columns
;
2213 } ContentsRowModifiedNotification
;
2215 typedef [nodiscriminant
] union {
2216 [case(TABLE_ROW_ADDED
)] ContentsRowAddedNotification ContentsRowAddedNotification
;
2217 [case(TABLE_ROW_DELETED
)] ContentsRowDeletedNotification ContentsRowDeletedNotification
;
2218 [case(TABLE_ROW_MODIFIED
)] ContentsRowModifiedNotification ContentsRowModifiedNotification
;
2220 } ContentsTableChangeUnion
;
2222 typedef [flag
(NDR_NOALIGN
)] struct {
2223 RichTableNotificationType TableEvent
;
2224 [switch_is(TableEvent
)] ContentsTableChangeUnion ContentsTableChangeUnion
;
2225 } ContentsTableChange
;
2227 /* SearchMessageCreatedNotification: case 0xc004 */
2228 typedef [flag
(NDR_NOALIGN
)] struct {
2233 MAPITAGS Tags
[TagCount
];
2234 } SearchMessageCreatedNotification
;
2236 /* SearchMessageRemovedNotification: case 0xc008 */
2237 typedef [flag
(NDR_NOALIGN
)] struct {
2241 } SearchMessageRemovedNotification
;
2243 /* SearchMessageModifiedNotification: 0xc010 */
2244 typedef [flag
(NDR_NOALIGN
)] struct {
2248 MAPITAGS Tags
[TagCount
];
2249 } SearchMessageModifiedNotification
;
2251 typedef [nodiscriminant
] union {
2252 [case(0x0002)] NewMailNotification NewMailNotification
;
2253 [case(0x0004)] FolderCreatedNotification FolderCreatedNotification
;
2254 [case(0x0008)] FolderDeletedNotification FolderDeletedNotification
;
2255 [case(0x0010)] FolderModifiedNotification_10 FolderModifiedNotification_10
;
2256 [case(0x0020)] FolderMoveCopyNotification FolderMoveNotification
;
2257 [case(0x0040)] FolderMoveCopyNotification FolderCopyNotification
;
2258 [case(0x0080)] SearchCompleteNotification SearchCompleteNotification
;
2259 [case(0x0100)] HierarchyTableChange HierarchyTableChange
;
2260 [case(0x0200)] IcsNotification IcsNotification
;
2261 [case(0x1010)] FolderModifiedNotification_1010 FolderModifiedNotification_1010
;
2262 [case(0x2010)] FolderModifiedNotification_2010 FolderModifiedNotification_2010
;
2263 [case(0x3010)] FolderModifiedNotification_3010 FolderModifiedNotification_3010
;
2264 [case(0x8002)] NewMailNotification NewMessageNotification
;
2265 [case(0x8004)] MessageCreatedNotification MessageCreatedNotification
;
2266 [case(0x8008)] MessageDeletedNotification MessageDeletedNotification
;
2267 [case(0x8010)] MessageModifiedNotification MessageModifiedNotification
;
2268 [case(0x8020)] MessageMoveCopyNotification MessageMoveNotification
;
2269 [case(0x8040)] MessageMoveCopyNotification MessageCopyNotification
;
2270 [case(0x8100)] ContentsTableChange ContentsTableChange
;
2271 [case(0xc004)] SearchMessageCreatedNotification SearchMessageCreatedNotification
;
2272 [case(0xc008)] SearchMessageRemovedNotification SearchMessageRemovedNotification
;
2273 [case(0xc010)] SearchMessageModifiedNotification SearchMessageModifiedNotification
;
2274 [case(0xc100)] ContentsTableChange SearchTableChange
;
2277 typedef [flag
(NDR_NOALIGN
)] struct {
2278 uint32 NotificationHandle
;
2280 NotificationFlags NotificationType
;
2281 [switch_is(NotificationType
)] NotificationData NotificationData
;
2284 /*************************/
2285 /* EcDoRpc Function 0x2b */
2286 typedef [enum8bit
] enum {
2287 OpenStream_ReadOnly
= 0x0,
2288 OpenStream_ReadWrite
= 0x1,
2289 OpenStream_Create
= 0x2,
2290 OpenStream_BestAccess
= 0x3
2291 } OpenStream_OpenModeFlags
;
2293 typedef [flag
(NDR_NOALIGN
)] struct {
2295 MAPITAGS PropertyTag
;
2296 OpenStream_OpenModeFlags OpenModeFlags
;
2299 typedef [flag
(NDR_NOALIGN
)] struct {
2303 /*************************/
2304 /* EcDoRpc Function 0x2c */
2305 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
2306 [case(0xBABE)] uint32 value
;
2310 typedef [flag
(NDR_NOALIGN
)] struct {
2312 [switch_is(ByteCount
)] MaximumByteCount MaximumByteCount
;
2315 typedef [flag
(NDR_ALIGN2
)] struct {
2316 [subcontext
(2), flag
(NDR_REMAINING
)] DATA_BLOB data
;
2319 /*************************/
2320 /* EcDoRpc Function 0x2d */
2321 typedef [flag
(NDR_NOALIGN
)] struct {
2322 [subcontext
(2), flag
(NDR_REMAINING
)] DATA_BLOB data
;
2326 typedef [flag
(NDR_NOALIGN
)] struct {
2330 /*************************/
2331 /* EcDoRpc Function 0x2e */
2332 typedef [flag
(NDR_NOALIGN
)] struct {
2337 typedef [flag
(NDR_NOALIGN
)] struct {
2341 /*************************/
2342 /* EcDoRpc Function 0x2f */
2343 typedef [flag
(NDR_NOALIGN
)] struct {
2345 } SetStreamSize_req
;
2347 typedef [flag
(NDR_NOALIGN
)] struct {
2348 } SetStreamSize_repl
;
2350 /*************************/
2351 /* EcDoRpc Function 0x30 */
2352 typedef [bitmap32bit
, flag
(NDR_PAHEX
)] bitmap
{
2353 STOP_SEARCH
= 0x00000001,
2354 RESTART_SEARCH
= 0x00000002,
2355 RECURSIVE_SEARCH
= 0x00000004,
2356 SHALLOW_SEARCH
= 0x00000008,
2357 FOREGROUND_SEARCH
= 0x00000010,
2358 BACKGROUND_SEARCH
= 0x00000020,
2359 CONTENT_INDEXED_SEARCH
= 0x00010000,
2360 NON_CONTENT_INDEXED_SEARCH
= 0x00020000,
2361 STATIC_SEARCH
= 0x00040000
2364 typedef [flag
(NDR_NOALIGN
)] struct {
2365 [subcontext
(2)] mapi_SRestriction res
;
2366 uint16 FolderIdCount
;
2367 hyper FolderIds
[FolderIdCount
];
2368 SearchFlags SearchFlags
;
2369 } SetSearchCriteria_req
;
2371 typedef [flag
(NDR_NOALIGN
)] struct {
2372 } SetSearchCriteria_repl
;
2374 /*************************/
2375 /* EcDoRpc Function 0x31 */
2376 typedef [flag
(NDR_NOALIGN
)] struct {
2377 boolean8 UseUnicode
;
2378 boolean8 IncludeRestriction
;
2379 boolean8 IncludeFolders
;
2380 } GetSearchCriteria_req
;
2382 typedef [flag
(NDR_NOALIGN
)] struct {
2383 [subcontext
(2)] mapi_SRestriction res
;
2385 uint16 FolderIdCount
;
2386 hyper FolderIds
[FolderIdCount
];
2387 SearchFlags SearchFlags
;
2388 } GetSearchCriteria_repl
;
2390 /*************************/
2391 /* EcDoRpc Function 0x32 */
2392 typedef [enum8bit
] enum {
2393 None
= 0x0, /* None */
2394 PreProcess
= 0x1, /* Needs to be preprocessed by the server */
2395 NeedsSpooler
= 0x2 /* Is to be processed by a client spooler */
2398 typedef [flag
(NDR_NOALIGN
)] struct {
2399 SubmitFlags SubmitFlags
;
2400 } SubmitMessage_req
;
2402 typedef [flag
(NDR_NOALIGN
)] struct {
2403 } SubmitMessage_repl
;
2405 /*************************/
2406 /* EcDoRpc Function 0x33 */
2407 typedef [flag
(NDR_NOALIGN
)] struct {
2410 hyper message_id
[count
];
2411 boolean8 WantAsynchronous
;
2413 } MoveCopyMessages_req
;
2415 typedef [flag
(NDR_NOALIGN
)] struct {
2416 boolean8 PartialCompletion
;
2417 } MoveCopyMessages_repl
;
2419 /*************************/
2420 /* EcDoRpc Function 0x34 */
2421 typedef [flag
(NDR_NOALIGN
)] struct {
2426 typedef [flag
(NDR_NOALIGN
)] struct {
2429 /*************************/
2430 /* EcDoRpc Function 0x35 */
2431 typedef [nodiscriminant
, flag
(NDR_NOALIGN
)] union {
2432 [case(0x0)] astring lpszA
;
2433 [case(0x1)][flag
(STR_NULLTERM
)] string lpszW
;
2436 typedef [flag
(NDR_NOALIGN
)] struct {
2438 boolean8 WantAsynchronous
;
2439 boolean8 UseUnicode
;
2441 [switch_is(UseUnicode
)] Folder_name NewFolderName
;
2444 typedef [flag
(NDR_NOALIGN
)] struct {
2445 boolean8 PartialCompletion
;
2448 /*************************/
2449 /* EcDoRpc Function 0x36 */
2450 typedef [flag
(NDR_NOALIGN
)] struct {
2452 boolean8 WantAsynchronous
;
2453 boolean8 WantRecursive
;
2454 boolean8 UseUnicode
;
2456 [switch_is(UseUnicode
)] Folder_name NewFolderName
;
2459 typedef [flag
(NDR_NOALIGN
)] struct {
2460 boolean8 PartialCompletion
;
2463 /*************************/
2464 /* EcDoRpc Function 0x37 */
2465 typedef [flag
(NDR_NOALIGN
)] struct {
2466 } QueryColumnsAll_req
;
2468 typedef [flag
(NDR_NOALIGN
)] struct {
2469 uint16 PropertyTagCount
;
2470 MAPITAGS PropertyTags
[PropertyTagCount
];
2471 } QueryColumnsAll_repl
;
2473 /*************************/
2474 /* EcDoRpc Function 0x38 */
2475 typedef [flag
(NDR_NOALIGN
)] struct {
2478 typedef [flag
(NDR_NOALIGN
)] struct {
2479 TableStatus TableStatus
;
2482 /*************************/
2483 /* EcDoRpc Function 0x39 */
2484 typedef [bitmap8bit
] bitmap
{
2485 CopyFlagsMove
= 0x1, /* Move properties */
2486 CopyFlagsNoOverwrite
= 0x2 /* Do not overwrite existing properties */
2489 typedef [flag
(NDR_NOALIGN
)] struct {
2491 boolean8 WantAsynchronous
;
2492 boolean8 WantSubObjects
;
2493 CopyFlags CopyFlags
;
2494 mapi_SPropTagArray ExcludedTags
;
2497 typedef [flag
(NDR_NOALIGN
)] struct {
2498 uint16 PropertyProblemCount
;
2499 PropertyProblem PropertyProblem
[PropertyProblemCount
];
2502 /*************************/
2503 /* EcDoRpc Function 0x3a */
2504 typedef [flag
(NDR_NOALIGN
)] struct {
2509 typedef [flag
(NDR_NOALIGN
)] struct {
2510 hyper ReadByteCount
;
2511 hyper WrittenByteCount
;
2512 } CopyToStream_repl
;
2514 /*************************/
2515 /* EcDoRpc Function 0x3b */
2516 typedef [flag
(NDR_NOALIGN
)] struct {
2520 typedef [flag
(NDR_NOALIGN
)] struct {
2523 /*************************/
2524 /* EcDoRpc Function 0x3e */
2525 typedef [flag
(NDR_NOALIGN
)] struct {
2530 typedef [flag
(NDR_NOALIGN
)] struct {
2533 /*************************/
2534 /* EcDoRpc Function 0x3f */
2535 typedef [bitmap8bit
] bitmap
{
2536 RulesTableFlags_Unicode
= 0x40
2539 typedef [flag
(NDR_NOALIGN
)] struct {
2541 RulesTableFlags TableFlags
;
2542 } GetRulesTable_req
;
2544 typedef [flag
(NDR_NOALIGN
)] struct {
2545 } GetRulesTable_repl
;
2547 /*************************/
2548 /* EcDoRpc Function 0x40 */
2549 typedef [flag
(NDR_NOALIGN
)] struct {
2550 mapi_SRowList rowList
;
2553 typedef [flag
(NDR_NOALIGN
)] struct {
2554 [flag
(NDR_REMAINING
)] DATA_BLOB remaining
;
2557 /*************************/
2558 /* EcDoRpc Function 0x41 */
2559 typedef [flag
(NDR_NOALIGN
)] struct {
2560 ulRowFlags RuleDataFlags
;
2561 mapi_SPropValue_array PropertyValues
;
2564 typedef [bitmap8bit
] bitmap
{
2565 ModifyRulesFlag_Replace
= 0x01
2568 typedef [flag
(NDR_NOALIGN
)] struct {
2569 ModifyRulesFlag ModifyRulesFlags
;
2571 RuleData RulesData
[RulesCount
];
2574 typedef [flag
(NDR_NOALIGN
)] struct {
2577 /*************************/
2578 /* EcDoRpc Function 0x42 */
2579 typedef [flag
(NDR_NOALIGN
)] struct {
2581 } GetOwningServers_req
;
2583 typedef [flag
(NDR_NOALIGN
)] struct {
2584 uint16 OwningServersCount
;
2585 uint16 CheapServersCount
;
2586 astring OwningServers
[OwningServersCount
];
2587 } GetOwningServers_repl
;
2589 /*************************/
2590 /* EcDoRpc Function 0x43 */
2591 typedef [flag
(NDR_NOALIGN
)] struct {
2593 } LongTermIdFromId_req
;
2595 typedef [flag
(NDR_NOALIGN
)] struct {
2597 uint8 GlobalCounter
[6];
2601 typedef [flag
(NDR_NOALIGN
)] struct {
2602 LongTermId LongTermId
;
2603 } LongTermIdFromId_repl
;
2605 /*************************/
2606 /* EcDoRpc Function 0x44 */
2607 typedef [flag
(NDR_NOALIGN
)] struct {
2608 LongTermId LongTermId
;
2609 } IdFromLongTermId_req
;
2611 typedef [flag
(NDR_NOALIGN
)] struct {
2613 } IdFromLongTermId_repl
;
2615 /*************************/
2616 /* EcDoRpc Function 0x45 */
2617 typedef [flag
(NDR_NOALIGN
)] struct {
2619 } PublicFolderIsGhosted_req
;
2621 typedef [flag
(NDR_NOALIGN
)] struct {
2623 [switch_is(IsGhosted
)] IsGhosted Ghost
;
2624 } PublicFolderIsGhosted_repl
;
2626 /*************************/
2627 /* EcDoRpc Function 0x46 */
2628 typedef [enum8bit
, flag
(NDR_PAHEX
)] enum {
2629 MAPI_READONLY
= 0x0,
2630 MAPI_READWRITE
= 0x1,
2632 } OpenEmbeddedMessage_OpenModeFlags
;
2634 typedef [flag
(NDR_NOALIGN
)] struct {
2637 OpenEmbeddedMessage_OpenModeFlags OpenModeFlags
;
2638 } OpenEmbeddedMessage_req
;
2640 typedef [flag
(NDR_NOALIGN
)] struct {
2643 boolean8 HasNamedProperties
;
2644 TypedString SubjectPrefix
;
2645 TypedString NormalizedSubject
;
2646 uint16 RecipientCount
;
2648 MAPITAGS RecipientColumns
[ColumnCount
];
2650 OpenRecipientRow RecipientRows
[RowCount
];
2651 } OpenEmbeddedMessage_repl
;
2653 /*************************/
2654 /* EcDoRpc Function 0x47 */
2655 typedef [flag
(NDR_NOALIGN
)] struct {
2658 typedef [flag
(NDR_NOALIGN
)] struct {
2661 /*************************/
2662 /* EcDoRpc Function 0x48 */
2663 typedef [enum8bit
] enum {
2664 LockState_1stLock
= 0x0,
2665 LockState_1stUnlock
= 0x1,
2666 LockState_1stFinished
= 0x2
2669 typedef [flag
(NDR_NOALIGN
)] struct {
2671 LockState LockState
;
2672 } SpoolerLockMessage_req
;
2674 typedef [flag
(NDR_NOALIGN
)] struct {
2675 } SpoolerLockMessage_repl
;
2677 /*************************/
2678 /* EcDoRpc Function 0x49 */
2679 typedef [flag
(NDR_NOALIGN
)] struct {
2682 typedef [flag
(NDR_NOALIGN
)] struct {
2685 mapi_LPSTR transport
[cValues
];
2686 } AddressTypes_repl
;
2688 /**************************/
2689 /* EcDoRpc Function 0x4a */
2690 typedef [flag
(NDR_NOALIGN
)] struct {
2691 } TransportSend_req
;
2693 typedef [nodiscriminant
] union {
2694 [case(0x0)] mapi_SPropValue_array lpProps
;
2696 } TransportSend_lpProps
;
2698 typedef [flag
(NDR_NOALIGN
)] struct {
2699 boolean8 NoPropertiesReturned
;
2700 [switch_is(NoPropertiesReturned
)] TransportSend_lpProps properties
;
2701 } TransportSend_repl
;
2703 /**************************/
2704 /* EcDoRpc Function 0x4e */
2705 typedef [flag
(NDR_NOALIGN
)] struct {
2707 } FastTransferSourceGetBuffer_req
;
2709 typedef [enum16bit
] enum {
2710 TransferStatus_Error
= 0x0,
2711 TransferStatus_Partial
= 0x1,
2712 TransferStatus_NoRoom
= 0x2,
2713 TransferStatus_Done
= 0x3
2716 typedef [flag
(NDR_NOALIGN
)] struct {
2717 TransferStatus TransferStatus
;
2718 uint16 InProgressCount
;
2719 uint16 TotalStepCount
;
2721 uint16 TransferBufferSize
;
2722 [subcontext
(0),subcontext_size
(TransferBufferSize
),flag
(NDR_REMAINING
)] DATA_BLOB TransferBuffer
;
2723 } FastTransferSourceGetBuffer_repl
;
2725 /**************************/
2726 /* EcDoRpc Function 0x4f */
2727 typedef [enum8bit
] enum {
2732 typedef [flag
(NDR_NOALIGN
)] struct {
2733 FindRow_ulFlags ulFlags
;
2734 [subcontext
(2)] mapi_SRestriction res
;
2736 SBinary_short bookmark
;
2739 typedef [flag
(NDR_NOALIGN
)] struct {
2740 uint8 RowNoLongerVisible
;
2742 [flag
(NDR_NOALIGN
)] DATA_BLOB row
;
2745 /**************************/
2746 /* EcDoRpc Function 0x50 */
2747 typedef [flag
(NDR_NOALIGN
)] struct {
2748 boolean8 WantCancel
;
2751 typedef [flag
(NDR_NOALIGN
)] struct {
2752 uint32 CompletedTaskCount
;
2753 uint32 TotalTaskCount
;
2756 /**************************/
2757 /* EcDoRpc Function 0x51 */
2758 typedef [flag
(NDR_NOALIGN
)] struct {
2761 astring MessageClass
;
2762 uint32 MessageFlags
;
2763 } TransportNewMail_req
;
2765 typedef [flag
(NDR_NOALIGN
)] struct {
2766 } TransportNewMail_repl
;
2768 /**************************/
2769 /* EcDoRpc Function 0x52 */
2770 typedef [flag
(NDR_NOALIGN
)] struct {
2771 } GetValidAttachments_req
;
2773 typedef [flag
(NDR_NOALIGN
)] struct {
2774 uint16 AttachmentIdCount
;
2775 uint32 AttachmentIdArray
[AttachmentIdCount
];
2776 } GetValidAttachments_repl
;
2778 /*************************/
2779 /* EcDoRpc Function 0x55 */
2780 typedef [enum8bit
] enum {
2785 typedef [flag
(NDR_NOALIGN
)] struct {
2787 [flag
(STR_NULLTERM
)] string Name
;
2790 typedef [nodiscriminant
] union {
2791 [case(MNID_ID
)] uint32 lid
;
2792 [case(MNID_STRING
)] mapi_name lpwstr
;
2795 typedef [flag
(NDR_NOALIGN
)] struct {
2798 [switch_is(ulKind
)] Kind kind
;
2801 typedef [flag
(NDR_NOALIGN
)] struct {
2802 uint16 PropertyIdCount
;
2803 uint16 PropertyIds
[PropertyIdCount
];
2804 } GetNamesFromIDs_req
;
2806 typedef [flag
(NDR_NOALIGN
)] struct {
2808 MAPINAMEID nameid
[count
];
2809 } GetNamesFromIDs_repl
;
2811 /*************************/
2812 /* EcDoRpc Function 0x56 */
2813 typedef [flag
(NDR_NOALIGN
)] struct {
2816 MAPINAMEID nameid
[count
];
2817 } GetIDsFromNames_req
;
2819 typedef [flag
(NDR_NOALIGN
)] struct {
2821 uint16 propID
[count
];
2822 } GetIDsFromNames_repl
;
2824 /*************************/
2825 /* EcDoRpc Function 0x57 */
2826 typedef [flag
(NDR_NOALIGN
)] struct {
2827 SBinary_short ServerEntryId
;
2828 SBinary_short ClientEntryId
;
2829 } UpdateDeferredActionMessages_req
;
2831 typedef [flag
(NDR_NOALIGN
)] struct {
2832 } UpdateDeferredActionMessages_repl
;
2834 /*************************/
2835 /* EcDoRpc Function 0x58 */
2836 typedef [flag
(NDR_NOALIGN
)] struct {
2837 boolean8 WantAsynchronous
;
2838 boolean8 WantDeleteAssociated
;
2841 typedef [flag
(NDR_NOALIGN
)] struct {
2842 boolean8 PartialCompletion
;
2845 /*************************/
2846 /* EcDoRpc Function 0x59 */
2847 typedef [flag
(NDR_NOALIGN
)] struct {
2852 typedef [flag
(NDR_NOALIGN
)] struct {
2853 uint32 ExpandedRowCount
;
2855 [flag
(NDR_REMAINING
)]DATA_BLOB RowData
;
2858 /*************************/
2859 /* EcDoRpc Function 0x5a */
2860 typedef [flag
(NDR_NOALIGN
)] struct {
2864 typedef [flag
(NDR_NOALIGN
)] struct {
2865 uint32 CollapsedRowCount
;
2868 /*************************/
2869 /* EcDoRpc Function 0x5b */
2870 typedef [flag
(NDR_NOALIGN
)] struct {
2874 } LockRegionStream_req
;
2876 typedef [flag
(NDR_NOALIGN
)] struct {
2877 } LockRegionStream_repl
;
2879 /*************************/
2880 /* EcDoRpc Function 0x5c */
2881 typedef [flag
(NDR_NOALIGN
)] struct {
2885 } UnlockRegionStream_req
;
2887 typedef [flag
(NDR_NOALIGN
)] struct {
2888 } UnlockRegionStream_repl
;
2890 /*************************/
2891 /* EcDoRpc Function 0x5d */
2892 typedef [flag
(NDR_NOALIGN
)] struct {
2895 typedef [flag
(NDR_NOALIGN
)] struct {
2896 } CommitStream_repl
;
2898 /*************************/
2899 /* EcDoRpc Function 0x5e */
2900 typedef [flag
(NDR_NOALIGN
)] struct {
2901 } GetStreamSize_req
;
2903 typedef [flag
(NDR_NOALIGN
)] struct {
2905 } GetStreamSize_repl
;
2907 /*************************/
2908 /* EcDoRpc Function 0x5f */
2909 typedef [bitmap8bit
] bitmap
{
2914 typedef [nodiscriminant
] union {
2916 [case(0x1)] GUID guid
;
2917 } QueryNamedProperties_guid
;
2919 typedef [flag
(NDR_NOALIGN
)] struct {
2920 QueryFlags QueryFlags
;
2922 [switch_is(HasGuid
)] QueryNamedProperties_guid PropertyGuid
;
2923 } QueryNamedProperties_req
;
2925 typedef [flag
(NDR_NOALIGN
)] struct {
2927 uint16 PropertyIds
[IdCount
];
2928 MAPINAMEID PropertyNames
[IdCount
];
2929 } QueryNamedProperties_repl
;
2931 /*************************/
2932 /* EcDoRpc Function 0x60 */
2933 typedef [flag
(NDR_NOALIGN
)] struct {
2935 } GetPerUserLongTermIds_req
;
2937 typedef [flag
(NDR_NOALIGN
)] struct {
2938 uint16 LongTermIdCount
;
2939 LongTermId LongTermIds
[LongTermIdCount
];
2940 } GetPerUserLongTermIds_repl
;
2942 /*************************/
2943 /* EcDoRpc Function 0x61 */
2944 typedef [flag
(NDR_NOALIGN
)] struct {
2945 LongTermId LongTermId
;
2946 } GetPerUserGuid_req
;
2948 typedef [flag
(NDR_NOALIGN
)] struct {
2950 } GetPerUserGuid_repl
;
2952 /*************************/
2953 /* EcDoRpc Function 0x63 */
2954 typedef [flag
(NDR_NOALIGN
)] struct {
2956 boolean8 WhatIfChanged
;
2959 } ReadPerUserInformation_req
;
2961 typedef [flag
(NDR_NOALIGN
)] struct {
2962 boolean8 HasFinished
;
2964 [subcontext
(0), subcontext_size
(DataSize
), flag
(NDR_REMAINING
)] DATA_BLOB Data
;
2965 } ReadPerUserInformation_repl
;
2967 /*************************/
2968 /* EcDoRpc Function 0x66 */
2969 typedef [flag
(NDR_NOALIGN
)] struct {
2970 boolean8 WantAsynchronous
;
2971 MSGFLAG_READ ReadFlags
;
2972 uint16 MessageIdCount
;
2973 hyper MessageIds
[MessageIdCount
];
2976 typedef [flag
(NDR_NOALIGN
)] struct {
2977 boolean8 PartialCompletion
;
2978 } SetReadFlags_repl
;
2980 /*************************/
2981 /* EcDoRpc Function 0x67 */
2982 typedef [flag
(NDR_NOALIGN
)] struct {
2984 boolean8 WantAsynchronous
;
2985 CopyFlags CopyFlags
;
2986 mapi_SPropTagArray PropertyTags
;
2987 } CopyProperties_req
;
2989 typedef [flag
(NDR_NOALIGN
)] struct {
2990 uint16 PropertyProblemCount
;
2991 PropertyProblem PropertyProblem
[PropertyProblemCount
];
2992 } CopyProperties_repl
;
2994 /*************************/
2995 /* EcDoRpc Function 0x68 */
2996 typedef [flag
(NDR_NOALIGN
)] struct {
2999 astring lpszMessageClass
;
3003 typedef [flag
(NDR_NOALIGN
)] struct {
3004 } GetReceiveFolderTable_req
;
3006 typedef [flag
(NDR_NOALIGN
)] struct {
3008 ReceiveFolder entries
[cValues
];
3009 } GetReceiveFolderTable_repl
;
3011 /*************************/
3012 /* EcDoRpc Function 0x6b */
3013 typedef [flag
(NDR_NOALIGN
)] struct {
3015 uint32 RowInstanceNumber
;
3016 } GetCollapseState_req
;
3018 typedef [flag
(NDR_NOALIGN
)] struct {
3019 SBinary_short CollapseState
;
3020 } GetCollapseState_repl
;
3022 /*************************/
3023 /* EcDoRpc Function 0x6c */
3024 typedef [flag
(NDR_NOALIGN
)] struct {
3025 SBinary_short CollapseState
;
3026 } SetCollapseState_req
;
3028 typedef [flag
(NDR_NOALIGN
)] struct {
3029 SBinary_short bookmark
;
3030 } SetCollapseState_repl
;
3032 /*************************/
3033 /* EcDoRpc Function 0x6d */
3034 typedef [flag
(NDR_NOALIGN
)] struct {
3035 } GetTransportFolder_req
;
3037 typedef [flag
(NDR_NOALIGN
)] struct {
3039 } GetTransportFolder_repl
;
3041 /*************************/
3042 /* EcDoRpc Function 0x6e */
3043 typedef [flag
(NDR_NOALIGN
)] struct {
3044 uint16 SessionIndex
;
3047 /*************************/
3048 /* EcDoRpc Function 0x6f */
3049 typedef [enum8bit
,flag
(NDR_NOALIGN
)] enum {
3050 OPTION_TYPE_RECIPIENT
= 0x1,
3051 OPTION_TYPE_MESSAGE
= 0x2
3052 } OPTIONDATA_ulFlags
;
3054 typedef [flag
(NDR_NOALIGN
)] struct {
3056 OPTIONDATA_ulFlags type
;
3057 } RegisterOptions_req
;
3059 typedef [flag
(NDR_NOALIGN
)] struct {
3060 OPTIONDATA_ulFlags ulFlags
;
3062 } RegisterOptions_repl
;
3064 /*************************/
3065 /* EcDoRpc Function 0x70 */
3066 typedef [enum8bit
] enum {
3069 } SynchronizationType
;
3071 typedef [bitmap8bit
] bitmap
{
3072 SendOptions_Unicode
= 0x1,
3073 SendOptions_ForUpload
= 0x3,
3074 SendOptions_RecoverMode
= 0x4,
3075 SendOptions_ForceUnicode
= 0x8,
3076 SendOptions_Partial
= 0x10
3079 typedef [bitmap16bit
] bitmap
{
3080 SynchronizationFlag_Unicode
= 0x1,
3081 SynchronizationFlag_NoDeletions
= 0x2,
3082 SynchronizationFlag_NoSoftDeletions
= 0x4,
3083 SynchronizationFlag_ReadState
= 0x8,
3084 SynchronizationFlag_FAI
= 0x10,
3085 SynchronizationFlag_Normal
= 0x20,
3086 SynchronizationFlag_OnlySpecifiedProperties
= 0x80,
3087 SynchronizationFlag_NoForeignIdentifiers
= 0x100,
3088 SynchronizationFlag_Reserved
= 0x1000,
3089 SynchronizationFlag_BestBody
= 0x2000,
3090 SynchronizationFlag_IgnoreSpecifiedOnFAI
= 0x4000,
3091 SynchronizationFlag_Progress
= 0x8000
3092 } SynchronizationFlag
;
3094 typedef [bitmap32bit
] bitmap
{
3096 MessageSize
= 0x00000002,
3098 OrderByDeliveryTime
= 0x00000008
3099 } SynchronizationExtraFlags
;
3101 typedef [flag
(NDR_NOALIGN
)] struct {
3103 SynchronizationType SynchronizationType
;
3104 SendOptions SendOptions
;
3105 SynchronizationFlag SynchronizationFlag
;
3106 uint16 RestrictionSize
;
3107 [subcontext
(0),subcontext_size
(RestrictionSize
),flag
(NDR_REMAINING
)] DATA_BLOB RestrictionData
;
3108 SynchronizationExtraFlags SynchronizationExtraFlags
;
3109 mapi_SPropTagArray PropertyTags
;
3110 } SyncConfigure_req
;
3112 typedef [flag
(NDR_NOALIGN
)] struct {
3113 } SyncConfigure_repl
;
3115 /*************************/
3116 /* EcDoRpc Function 0x72 */
3117 typedef [bitmap8bit
] bitmap
{
3118 ImportFlag_Associated
= 0x10,
3119 ImportFlag_FailOnConflict
= 0x40
3122 typedef [flag
(NDR_NOALIGN
)] struct {
3124 ImportFlag ImportFlag
;
3125 mapi_SPropValue_array PropertyValues
;
3126 } SyncImportMessageChange_req
;
3128 typedef [flag
(NDR_NOALIGN
)] struct {
3130 } SyncImportMessageChange_repl
;
3132 /*************************/
3133 /* EcDoRpc Function 0x73 */
3134 typedef [flag
(NDR_NOALIGN
)] struct {
3135 mapi_SPropValue_array HierarchyValues
;
3136 mapi_SPropValue_array PropertyValues
;
3137 } SyncImportHierarchyChange_req
;
3139 typedef [flag
(NDR_NOALIGN
)] struct {
3141 } SyncImportHierarchyChange_repl
;
3143 /*************************/
3144 /* EcDoRpc Function 0x74 */
3145 typedef [flag
(NDR_NOALIGN
)] struct {
3146 boolean8 IsHierarchy
;
3147 mapi_SPropValue_array PropertyValues
;
3148 } SyncImportDeletes_req
;
3150 typedef [flag
(NDR_NOALIGN
)] struct {
3151 } SyncImportDeletes_repl
;
3153 /*************************/
3154 /* EcDoRpc Function 0x75 */
3155 typedef [v1_enum,flag
(NDR_PAHEX
)] enum {
3156 PidTagIdsetGiven
= 0x40170003,
3157 PidTagCnsetSeen
= 0x67960102,
3158 PidTagCnsetSeenFAI
= 0x67da0102,
3159 PidTagCnsetRead
= 0x67d20102
3162 typedef [flag
(NDR_NOALIGN
)] struct {
3163 StateProperty StateProperty
;
3164 uint32 TransferBufferSize
;
3165 } SyncUploadStateStreamBegin_req
;
3167 typedef [flag
(NDR_NOALIGN
)] struct {
3168 } SyncUploadStateStreamBegin_repl
;
3170 /*************************/
3171 /* EcDoRpc Function 0x76 */
3172 typedef [flag
(NDR_NOALIGN
)] struct {
3173 uint32 StreamDataSize
;
3174 uint8 StreamData
[StreamDataSize
];
3175 } SyncUploadStateStreamContinue_req
;
3177 typedef [flag
(NDR_NOALIGN
)] struct {
3178 } SyncUploadStateStreamContinue_repl
;
3180 /*************************/
3181 /* EcDoRpc Function 0x77 */
3182 typedef [flag
(NDR_NOALIGN
)] struct {
3183 } SyncUploadStateStreamEnd_req
;
3185 typedef [flag
(NDR_NOALIGN
)] struct {
3186 } SyncUploadStateStreamEnd_repl
;
3188 /*************************/
3189 /* EcDoRpc Function 0x78 */
3190 typedef [flag
(NDR_NOALIGN
)] struct {
3191 uint32 SourceFolderIdSize
;
3192 uint8 SourceFolderId
[SourceFolderIdSize
];
3193 uint32 SourceMessageIdSize
;
3194 uint8 SourceMessageId
[SourceMessageIdSize
];
3195 uint32 PredecessorChangeListSize
;
3196 uint8 PredecessorChangeList
[PredecessorChangeListSize
];
3197 uint32 DestinationMessageIdSize
;
3198 uint8 DestinationMessageId
[DestinationMessageIdSize
];
3199 uint32 ChangeNumberSize
;
3200 uint8 ChangeNumber
[ChangeNumberSize
];
3201 } SyncImportMessageMove_req
;
3203 typedef [flag
(NDR_NOALIGN
)] struct {
3205 } SyncImportMessageMove_repl
;
3207 /*************************/
3208 /* EcDoRpc Function 0x79 */
3209 typedef [flag
(NDR_NOALIGN
)] struct {
3210 [subcontext
(2)] mapi_SPropValue_array values
;
3211 } SetPropertiesNoReplicate_req
;
3213 typedef [flag
(NDR_NOALIGN
)] struct {
3214 uint16 PropertyProblemCount
;
3215 PropertyProblem PropertyProblem
[PropertyProblemCount
];
3216 } SetPropertiesNoReplicate_repl
;
3218 /*************************/
3219 /* EcDoRpc Function 0x7a */
3220 typedef [flag
(NDR_NOALIGN
)] struct {
3221 mapi_SPropTagArray PropertyTags
;
3222 } DeletePropertiesNoReplicate_req
;
3224 typedef [flag
(NDR_NOALIGN
)] struct {
3225 uint16 PropertyProblemCount
;
3226 PropertyProblem PropertyProblem
[PropertyProblemCount
];
3227 } DeletePropertiesNoReplicate_repl
;
3229 /*************************/
3230 /* EcDoRpc Function 0x7b */
3231 typedef [public,bitmap32bit
] bitmap
{
3232 STORE_HAS_SEARCHES
= 0x010000000
3235 typedef [flag
(NDR_NOALIGN
)] struct {
3236 } GetStoreState_req
;
3238 typedef [flag
(NDR_NOALIGN
)] struct {
3239 StoreState StoreState
;
3240 } GetStoreState_repl
;
3242 /*************************/
3243 /* EcDoRpc Function 0x7e */
3244 typedef [flag
(NDR_NOALIGN
)] struct {
3246 boolean8 IsContentsCollector
;
3247 } SyncOpenCollector_req
;
3249 typedef [flag
(NDR_NOALIGN
)] struct {
3250 } SyncOpenCollector_repl
;
3252 /*************************/
3253 /* EcDoRpc Function 0x7f */
3254 typedef [flag
(NDR_NOALIGN
)] struct {
3256 } GetLocalReplicaIds_req
;
3258 typedef [flag
(NDR_NOALIGN
)] struct {
3260 uint8 GlobalCount
[6];
3261 } GetLocalReplicaIds_repl
;
3263 /*************************/
3264 /* EcDoRpc Function 0x80 */
3265 // typedef [flag(NDR_NOALIGN)] struct {
3266 // uint16 MessageSize;
3267 // uint8 MessageId[MessageSize];
3268 // boolean8 MarkAsRead;
3269 // } MessageReadStates;
3271 typedef [flag
(NDR_NOALIGN
)] struct {
3272 uint16 MessageReadStateSize
;
3273 [subcontext
(0),subcontext_size
(MessageReadStateSize
),flag
(NDR_REMAINING
)] DATA_BLOB MessageStates
;
3274 } SyncImportReadStateChanges_req
;
3276 typedef [flag
(NDR_NOALIGN
)] struct {
3277 } SyncImportReadStateChanges_repl
;
3279 /*************************/
3280 /* EcDoRpc Function 0x81 */
3281 typedef [flag
(NDR_NOALIGN
)] struct {
3284 typedef [flag
(NDR_NOALIGN
)] struct {
3287 /*************************/
3288 /* EcDoRpc Function 0x82 */
3289 typedef [flag
(NDR_NOALIGN
)] struct {
3291 } SyncGetTransferState_req
;
3293 typedef [flag
(NDR_NOALIGN
)] struct {
3294 } SyncGetTransferState_repl
;
3296 /*************************/
3297 /* EcDoRpc Function 0x87 */
3298 typedef [flag
(NDR_NOALIGN
)] struct {
3301 } OpenPublicFolderByName_req
;
3303 typedef [flag
(NDR_NOALIGN
)] struct {
3306 [switch_is(IsGhosted
)] IsGhosted Ghost
;
3307 } OpenPublicFolderByName_repl
;
3309 /*************************/
3310 /* EcDoRpc Function 0x88 */
3311 typedef [flag
(NDR_NOALIGN
)] struct {
3312 GUID NotificationGuid
;
3313 } SetSyncNotificationGuid_req
;
3315 typedef [flag
(NDR_NOALIGN
)] struct {
3316 } SetSyncNotificationGuid_repl
;
3318 /*************************/
3319 /* EcDoRpc Function 0x89 */
3320 typedef [flag
(NDR_NOALIGN
)] struct {
3321 SBinary_short bookmark
;
3324 typedef [flag
(NDR_NOALIGN
)] struct {
3325 } FreeBookmark_repl
;
3327 /*************************/
3328 /* EcDoRpc Function 0x90 */
3329 typedef [flag
(NDR_NOALIGN
)] struct {
3330 [subcontext
(2), flag
(NDR_REMAINING
)] DATA_BLOB data
;
3331 } WriteAndCommitStream_req
;
3334 typedef [flag
(NDR_NOALIGN
)] struct {
3336 } WriteAndCommitStream_repl
;
3338 /**************************/
3339 /* EcDoRpc Function 0x91 */
3340 typedef [flag
(NDR_NOALIGN
)] struct {
3341 boolean8 WantAsynchronous
;
3342 boolean8 NotifyNonRead
;
3343 uint16 MessageIdCount
;
3344 hyper MessageIds
[MessageIdCount
];
3345 } HardDeleteMessages_req
;
3347 typedef [flag
(NDR_NOALIGN
)] struct {
3348 boolean8 PartialCompletion
;
3349 } HardDeleteMessages_repl
;
3351 /*************************/
3352 /* EcDoRpc Function 0x92 */
3353 typedef [flag
(NDR_NOALIGN
)] struct {
3354 boolean8 WantAsynchronous
;
3355 boolean8 WantDeleteAssociated
;
3356 } HardDeleteMessagesAndSubfolders_req
;
3358 typedef [flag
(NDR_NOALIGN
)] struct {
3359 boolean8 PartialCompletion
;
3360 } HardDeleteMessagesAndSubfolders_repl
;
3362 /*************************/
3363 /* EcDoRpc Function 0xFE */
3364 typedef [public,bitmap8bit
] bitmap
{
3371 typedef [public,bitmap32bit
] bitmap
{
3374 TAKE_OWNERSHIP
= 0x8,
3375 ALTERNATE_SERVER
= 0x100,
3376 IGNORE_HOME_MDB
= 0x200,
3378 USE_PER_MDB_REPLID_MAPPING
= 0x010000000
3381 typedef [enum8bit
] enum {
3382 DayOfWeek_Sunday
= 0x0,
3383 DayOfWeek_Monday
= 0x1,
3384 DayOfWeek_Tuesday
= 0x2,
3385 DayOfWeek_Wednesday
= 0x3,
3386 DayOfWeek_Thursday
= 0x4,
3387 DayOfWeek_Friday
= 0x5,
3388 DayOfWeek_Saturday
= 0x6
3391 typedef [flag
(NDR_NOALIGN
)] struct {
3395 DayOfWeek DayOfWeek
;
3401 typedef [bitmap8bit
] bitmap
{
3402 ResponseFlags_Reserved
= 0x1,
3403 ResponseFlags_OwnerRight
= 0x2,
3404 ResponseFlags_SendAsRight
= 0x4,
3405 ResponseFlags_OOF
= 0x10
3408 typedef [flag
(NDR_NOALIGN
)] struct {
3409 hyper FolderIds
[13];
3415 typedef [flag
(NDR_NOALIGN
)] struct {
3416 hyper FolderIds
[13];
3417 ResponseFlags ResponseFlags
;
3421 LogonTime LogonTime
;
3423 StoreState StoreState
;
3426 typedef [nodiscriminant
] union {
3427 [case(0x0)] store_pf store_pf
;
3428 [case(LogonPrivate
)] store_mailbox store_mailbox
;
3431 typedef [nopush
,flag
(NDR_NOALIGN
)] struct {
3432 LogonFlags LogonFlags
;
3433 OpenFlags OpenFlags
;
3434 StoreState StoreState
;
3438 typedef [flag
(NDR_NOALIGN
)] struct {
3439 LogonFlags LogonFlags
;
3440 [switch_is(LogonFlags
)] LogonType LogonType
;
3443 /* Logon redirect response buffer (error_code == ecWrongServer) */
3444 typedef [public,flag
(NDR_NOALIGN
)] struct {
3445 LogonFlags LogonFlags
;
3446 uint8 ServerNameSize
;
3450 /*************************/
3451 /* EcDoRpc Function 0xA5 */
3452 typedef [flag
(NDR_NOALIGN
)] struct {
3456 typedef [flag
(NDR_NOALIGN
)] struct {
3460 typedef [public, nodiscriminant
] union {
3461 [case(op_MAPI_Release
)] Release_req mapi_Release
;
3462 [case(op_MAPI_OpenFolder
)] OpenFolder_req mapi_OpenFolder
;
3463 [case(op_MAPI_OpenMessage
)] OpenMessage_req mapi_OpenMessage
;
3464 [case(op_MAPI_GetHierarchyTable
)] GetHierarchyTable_req mapi_GetHierarchyTable
;
3465 [case(op_MAPI_GetContentsTable
)] GetContentsTable_req mapi_GetContentsTable
;
3466 [case(op_MAPI_CreateMessage
)] CreateMessage_req mapi_CreateMessage
;
3467 [case(op_MAPI_GetProps
)] GetProps_req mapi_GetProps
;
3468 [case(op_MAPI_GetPropsAll
)] GetPropsAll_req mapi_GetPropsAll
;
3469 [case(op_MAPI_GetPropList
)] GetPropList_req mapi_GetPropList
;
3470 [case(op_MAPI_SetProps
)] SetProps_req mapi_SetProps
;
3471 [case(op_MAPI_DeleteProps
)] DeleteProps_req mapi_DeleteProps
;
3472 [case(op_MAPI_SaveChangesMessage
)] SaveChangesMessage_req mapi_SaveChangesMessage
;
3473 [case(op_MAPI_SetMessageReadFlag
)] SetMessageReadFlag_req mapi_SetMessageReadFlag
;
3474 [case(op_MAPI_ReloadCachedInformation
)] ReloadCachedInformation_req mapi_ReloadCachedInformation
;
3475 [case(op_MAPI_SetColumns
)] SetColumns_req mapi_SetColumns
;
3476 [case(op_MAPI_SortTable
)] SortTable_req mapi_SortTable
;
3477 [case(op_MAPI_Restrict
)] Restrict_req mapi_Restrict
;
3478 [case(op_MAPI_RemoveAllRecipients
)] RemoveAllRecipients_req mapi_RemoveAllRecipients
;
3479 [case(op_MAPI_ModifyRecipients
)] ModifyRecipients_req mapi_ModifyRecipients
;
3480 [case(op_MAPI_ReadRecipients
)] ReadRecipients_req mapi_ReadRecipients
;
3481 [case(op_MAPI_QueryRows
)] QueryRows_req mapi_QueryRows
;
3482 [case(op_MAPI_GetStatus
)] GetStatus_req mapi_GetStatus
;
3483 [case(op_MAPI_QueryPosition
)] QueryPosition_req mapi_QueryPosition
;
3484 [case(op_MAPI_SeekRow
)] SeekRow_req mapi_SeekRow
;
3485 [case(op_MAPI_SeekRowBookmark
)] SeekRowBookmark_req mapi_SeekRowBookmark
;
3486 [case(op_MAPI_SeekRowApprox
)] SeekRowApprox_req mapi_SeekRowApprox
;
3487 [case(op_MAPI_CreateBookmark
)] CreateBookmark_req mapi_CreateBookmark
;
3488 [case(op_MAPI_CreateFolder
)] CreateFolder_req mapi_CreateFolder
;
3489 [case(op_MAPI_DeleteFolder
)] DeleteFolder_req mapi_DeleteFolder
;
3490 [case(op_MAPI_DeleteMessages
)] DeleteMessages_req mapi_DeleteMessages
;
3491 [case(op_MAPI_GetMessageStatus
)] GetMessageStatus_req mapi_GetMessageStatus
;
3492 [case(op_MAPI_SetMessageStatus
)] SetMessageStatus_req mapi_SetMessageStatus
;
3493 [case(op_MAPI_GetAttachmentTable
)] GetAttachmentTable_req mapi_GetAttachmentTable
;
3494 [case(op_MAPI_OpenAttach
)] OpenAttach_req mapi_OpenAttach
;
3495 [case(op_MAPI_CreateAttach
)] CreateAttach_req mapi_CreateAttach
;
3496 [case(op_MAPI_DeleteAttach
)] DeleteAttach_req mapi_DeleteAttach
;
3497 [case(op_MAPI_SaveChangesAttachment
)] SaveChangesAttachment_req mapi_SaveChangesAttachment
;
3498 [case(op_MAPI_SetReceiveFolder
)] SetReceiveFolder_req mapi_SetReceiveFolder
;
3499 [case(op_MAPI_GetReceiveFolder
)] GetReceiveFolder_req mapi_GetReceiveFolder
;
3500 [case(op_MAPI_RegisterNotification
)] RegisterNotification_req mapi_RegisterNotification
;
3501 [case(op_MAPI_OpenStream
)] OpenStream_req mapi_OpenStream
;
3502 [case(op_MAPI_ReadStream
)] ReadStream_req mapi_ReadStream
;
3503 [case(op_MAPI_WriteStream
)] WriteStream_req mapi_WriteStream
;
3504 [case(op_MAPI_SeekStream
)] SeekStream_req mapi_SeekStream
;
3505 [case(op_MAPI_SetStreamSize
)] SetStreamSize_req mapi_SetStreamSize
;
3506 [case(op_MAPI_SetSearchCriteria
)] SetSearchCriteria_req mapi_SetSearchCriteria
;
3507 [case(op_MAPI_GetSearchCriteria
)] GetSearchCriteria_req mapi_GetSearchCriteria
;
3508 [case(op_MAPI_SubmitMessage
)] SubmitMessage_req mapi_SubmitMessage
;
3509 [case(op_MAPI_MoveCopyMessages
)] MoveCopyMessages_req mapi_MoveCopyMessages
;
3510 [case(op_MAPI_AbortSubmit
)] AbortSubmit_req mapi_AbortSubmit
;
3511 [case(op_MAPI_MoveFolder
)] MoveFolder_req mapi_MoveFolder
;
3512 [case(op_MAPI_CopyFolder
)] CopyFolder_req mapi_CopyFolder
;
3513 [case(op_MAPI_QueryColumnsAll
)] QueryColumnsAll_req mapi_QueryColumnsAll
;
3514 [case(op_MAPI_Abort
)] Abort_req mapi_Abort
;
3515 [case(op_MAPI_CopyTo
)] CopyTo_req mapi_CopyTo
;
3516 [case(op_MAPI_CopyToStream
)] CopyToStream_req mapi_CopyToStream
;
3517 [case(op_MAPI_CloneStream
)] CloneStream_req mapi_CloneStream
;
3518 [case(op_MAPI_GetTable
)] GetTable_req mapi_GetTable
;
3519 [case(op_MAPI_GetRulesTable
)] GetRulesTable_req mapi_GetRulesTable
;
3520 [case(op_MAPI_ModifyTable
)] ModifyTable_req mapi_ModifyTable
;
3521 [case(op_MAPI_ModifyRules
)] ModifyRules_req mapi_ModifyRules
;
3522 [case(op_MAPI_GetOwningServers
)] GetOwningServers_req mapi_GetOwningServers
;
3523 [case(op_MAPI_LongTermIdFromId
)] LongTermIdFromId_req mapi_LongTermIdFromId
;
3524 [case(op_MAPI_IdFromLongTermId
)] IdFromLongTermId_req mapi_IdFromLongTermId
;
3525 [case(op_MAPI_PublicFolderIsGhosted
)] PublicFolderIsGhosted_req mapi_PublicFolderIsGhosted
;
3526 [case(op_MAPI_OpenEmbeddedMessage
)] OpenEmbeddedMessage_req mapi_OpenEmbeddedMessage
;
3527 [case(op_MAPI_SetSpooler
)] SetSpooler_req mapi_SetSpooler
;
3528 [case(op_MAPI_SpoolerLockMessage
)] SpoolerLockMessage_req mapi_SpoolerLockMessage
;
3529 [case(op_MAPI_AddressTypes
)] AddressTypes_req mapi_AddressTypes
;
3530 [case(op_MAPI_TransportSend
)] TransportSend_req mapi_TransportSend
;
3531 [case(op_MAPI_FastTransferSourceGetBuffer
)] FastTransferSourceGetBuffer_req mapi_FastTransferSourceGetBuffer
;
3532 [case(op_MAPI_FindRow
)] FindRow_req mapi_FindRow
;
3533 [case(op_MAPI_Progress
)] Progress_req mapi_Progress
;
3534 [case(op_MAPI_TransportNewMail
)] TransportNewMail_req mapi_TransportNewMail
;
3535 [case(op_MAPI_GetValidAttachments
)] GetValidAttachments_req mapi_GetValidAttachments
;
3536 [case(op_MAPI_GetNamesFromIDs
)] GetNamesFromIDs_req mapi_GetNamesFromIDs
;
3537 [case(op_MAPI_GetIDsFromNames
)] GetIDsFromNames_req mapi_GetIDsFromNames
;
3538 [case(op_MAPI_UpdateDeferredActionMessages
)] UpdateDeferredActionMessages_req mapi_UpdateDeferredActionMessages
;
3539 [case(op_MAPI_EmptyFolder
)] EmptyFolder_req mapi_EmptyFolder
;
3540 [case(op_MAPI_ExpandRow
)] ExpandRow_req mapi_ExpandRow
;
3541 [case(op_MAPI_CollapseRow
)] CollapseRow_req mapi_CollapseRow
;
3542 [case(op_MAPI_LockRegionStream
)] LockRegionStream_req mapi_LockRegionStream
;
3543 [case(op_MAPI_UnlockRegionStream
)] UnlockRegionStream_req mapi_UnlockRegionStream
;
3544 [case(op_MAPI_CommitStream
)] CommitStream_req mapi_CommitStream
;
3545 [case(op_MAPI_GetStreamSize
)] GetStreamSize_req mapi_GetStreamSize
;
3546 [case(op_MAPI_QueryNamedProperties
)] QueryNamedProperties_req mapi_QueryNamedProperties
;
3547 [case(op_MAPI_GetPerUserLongTermIds
)] GetPerUserLongTermIds_req mapi_GetPerUserLongTermIds
;
3548 [case(op_MAPI_GetPerUserGuid
)] GetPerUserGuid_req mapi_GetPerUserGuid
;
3549 [case(op_MAPI_ReadPerUserInformation
)] ReadPerUserInformation_req mapi_ReadPerUserInformation
;
3550 [case(op_MAPI_SetReadFlags
)] SetReadFlags_req mapi_SetReadFlags
;
3551 [case(op_MAPI_CopyProperties
)] CopyProperties_req mapi_CopyProperties
;
3552 [case(op_MAPI_GetReceiveFolderTable
)] GetReceiveFolderTable_req mapi_GetReceiveFolderTable
;
3553 [case(op_MAPI_GetCollapseState
)] GetCollapseState_req mapi_GetCollapseState
;
3554 [case(op_MAPI_SetCollapseState
)] SetCollapseState_req mapi_SetCollapseState
;
3555 [case(op_MAPI_GetTransportFolder
)] GetTransportFolder_req mapi_GetTransportFolder
;
3556 [case(op_MAPI_RegisterOptions
)] RegisterOptions_req mapi_RegisterOptions
;
3557 [case(op_MAPI_SyncConfigure
)] SyncConfigure_req mapi_SyncConfigure
;
3558 [case(op_MAPI_SyncImportMessageChange
)] SyncImportMessageChange_req mapi_SyncImportMessageChange
;
3559 [case(op_MAPI_SyncImportHierarchyChange
)] SyncImportHierarchyChange_req mapi_SyncImportHierarchyChange
;
3560 [case(op_MAPI_SyncImportDeletes
)] SyncImportDeletes_req mapi_SyncImportDeletes
;
3561 [case(op_MAPI_SyncUploadStateStreamBegin
)] SyncUploadStateStreamBegin_req mapi_SyncUploadStateStreamBegin
;
3562 [case(op_MAPI_SyncUploadStateStreamContinue
)] SyncUploadStateStreamContinue_req mapi_SyncUploadStateStreamContinue
;
3563 [case(op_MAPI_SyncUploadStateStreamEnd
)] SyncUploadStateStreamEnd_req mapi_SyncUploadStateStreamEnd
;
3564 [case(op_MAPI_SyncImportMessageMove
)] SyncImportMessageMove_req mapi_SyncImportMessageMove
;
3565 [case(op_MAPI_SetPropertiesNoReplicate
)] SetPropertiesNoReplicate_req mapi_SetPropertiesNoReplicate
;
3566 [case(op_MAPI_DeletePropertiesNoReplicate
)] DeletePropertiesNoReplicate_req mapi_DeletePropertiesNoReplicate
;
3567 [case(op_MAPI_GetStoreState
)] GetStoreState_req mapi_GetStoreState
;
3568 [case(op_MAPI_SyncOpenCollector
)] SyncOpenCollector_req mapi_SyncOpenCollector
;
3569 [case(op_MAPI_GetLocalReplicaIds
)] GetLocalReplicaIds_req mapi_GetLocalReplicaIds
;
3570 [case(op_MAPI_SyncImportReadStateChanges
)] SyncImportReadStateChanges_req mapi_SyncImportReadStateChanges
;
3571 [case(op_MAPI_ResetTable
)] ResetTable_req mapi_ResetTable
;
3572 [case(op_MAPI_SyncGetTransferState
)] SyncGetTransferState_req mapi_SyncGetTransferState
;
3573 [case(op_MAPI_OpenPublicFolderByName
)] OpenPublicFolderByName_req mapi_OpenPublicFolderByName
;
3574 [case(op_MAPI_SetSyncNotificationGuid
)] SetSyncNotificationGuid_req mapi_SetSyncNotificationGuid
;
3575 [case(op_MAPI_FreeBookmark
)] FreeBookmark_req mapi_FreeBookmark
;
3576 [case(op_MAPI_WriteAndCommitStream
)] WriteAndCommitStream_req mapi_WriteAndCommitStream
;
3577 [case(op_MAPI_HardDeleteMessages
)] HardDeleteMessages_req mapi_HardDeleteMessages
;
3578 [case(op_MAPI_HardDeleteMessagesAndSubfolders
)] HardDeleteMessagesAndSubfolders_req mapi_HardDeleteMessagesAndSubfolders
;
3579 [case(op_MAPI_Logon
)] Logon_req mapi_Logon
;
3580 [case(op_MAPI_proxypack
)] proxypack_req mapi_proxypack
;
3581 } EcDoRpc_MAPI_REQ_UNION
;
3583 typedef [public, nodiscriminant
] union {
3584 [case(op_MAPI_Release
)] Release_repl mapi_Release
;
3585 [case(op_MAPI_OpenFolder
)] OpenFolder_repl mapi_OpenFolder
;
3586 [case(op_MAPI_OpenMessage
)] OpenMessage_repl mapi_OpenMessage
;
3587 [case(op_MAPI_GetHierarchyTable
)] GetHierarchyTable_repl mapi_GetHierarchyTable
;
3588 [case(op_MAPI_GetContentsTable
)] GetContentsTable_repl mapi_GetContentsTable
;
3589 [case(op_MAPI_CreateMessage
)] CreateMessage_repl mapi_CreateMessage
;
3590 [case(op_MAPI_GetProps
)] GetProps_repl mapi_GetProps
;
3591 [case(op_MAPI_GetPropsAll
)] GetPropsAll_repl mapi_GetPropsAll
;
3592 [case(op_MAPI_GetPropList
)] GetPropList_repl mapi_GetPropList
;
3593 [case(op_MAPI_SetProps
)] SetProps_repl mapi_SetProps
;
3594 [case(op_MAPI_DeleteProps
)] DeleteProps_repl mapi_DeleteProps
;
3595 [case(op_MAPI_SaveChangesMessage
)] SaveChangesMessage_repl mapi_SaveChangesMessage
;
3596 [case(op_MAPI_RemoveAllRecipients
)] RemoveAllRecipients_repl mapi_RemoveAllRecipients
;
3597 [case(op_MAPI_ModifyRecipients
)] ModifyRecipients_repl mapi_ModifyRecipients
;
3598 [case(op_MAPI_ReadRecipients
)] ReadRecipients_repl mapi_ReadRecipients
;
3599 [case(op_MAPI_SetMessageReadFlag
)] SetMessageReadFlag_repl mapi_SetMessageReadFlag
;
3600 [case(op_MAPI_ReloadCachedInformation
)] ReloadCachedInformation_repl mapi_ReloadCachedInformation
;
3601 [case(op_MAPI_SetColumns
)] SetColumns_repl mapi_SetColumns
;
3602 [case(op_MAPI_SortTable
)] SortTable_repl mapi_SortTable
;
3603 [case(op_MAPI_Restrict
)] Restrict_repl mapi_Restrict
;
3604 [case(op_MAPI_QueryRows
)] QueryRows_repl mapi_QueryRows
;
3605 [case(op_MAPI_GetStatus
)] GetStatus_repl mapi_GetStatus
;
3606 [case(op_MAPI_QueryPosition
)] QueryPosition_repl mapi_QueryPosition
;
3607 [case(op_MAPI_SeekRow
)] SeekRow_repl mapi_SeekRow
;
3608 [case(op_MAPI_SeekRowBookmark
)] SeekRowBookmark_repl mapi_SeekRowBookmark
;
3609 [case(op_MAPI_SeekRowApprox
)] SeekRowApprox_repl mapi_SeekRowApprox
;
3610 [case(op_MAPI_CreateBookmark
)] CreateBookmark_repl mapi_CreateBookmark
;
3611 [case(op_MAPI_CreateFolder
)] CreateFolder_repl mapi_CreateFolder
;
3612 [case(op_MAPI_DeleteFolder
)] DeleteFolder_repl mapi_DeleteFolder
;
3613 [case(op_MAPI_DeleteMessages
)] DeleteMessages_repl mapi_DeleteMessages
;
3614 [case(op_MAPI_SetMessageStatus
)] SetMessageStatus_repl mapi_SetMessageStatus
;
3615 [case(op_MAPI_GetAttachmentTable
)] GetAttachmentTable_repl mapi_GetAttachmentTable
;
3616 [case(op_MAPI_OpenAttach
)] OpenAttach_repl mapi_OpenAttach
;
3617 [case(op_MAPI_CreateAttach
)] CreateAttach_repl mapi_CreateAttach
;
3618 [case(op_MAPI_DeleteAttach
)] DeleteAttach_repl mapi_DeleteAttach
;
3619 [case(op_MAPI_SaveChangesAttachment
)] SaveChangesAttachment_repl mapi_SaveChangesAttachment
;
3620 [case(op_MAPI_SetReceiveFolder
)] SetReceiveFolder_repl mapi_SetReceiveFolder
;
3621 [case(op_MAPI_GetReceiveFolder
)] GetReceiveFolder_repl mapi_GetReceiveFolder
;
3622 [case(op_MAPI_RegisterNotification
)] RegisterNotification_repl mapi_RegisterNotification
;
3623 [case(op_MAPI_Notify
)] Notify_repl mapi_Notify
;
3624 [case(op_MAPI_OpenStream
)] OpenStream_repl mapi_OpenStream
;
3625 [case(op_MAPI_ReadStream
)] ReadStream_repl mapi_ReadStream
;
3626 [case(op_MAPI_WriteStream
)] WriteStream_repl mapi_WriteStream
;
3627 [case(op_MAPI_SeekStream
)] SeekStream_repl mapi_SeekStream
;
3628 [case(op_MAPI_SetStreamSize
)] SetStreamSize_repl mapi_SetStreamSize
;
3629 [case(op_MAPI_SetSearchCriteria
)] SetSearchCriteria_repl mapi_SetSearchCriteria
;
3630 [case(op_MAPI_GetSearchCriteria
)] GetSearchCriteria_repl mapi_GetSearchCriteria
;
3631 [case(op_MAPI_SubmitMessage
)] SubmitMessage_repl mapi_SubmitMessage
;
3632 [case(op_MAPI_MoveCopyMessages
)] MoveCopyMessages_repl mapi_MoveCopyMessages
;
3633 [case(op_MAPI_AbortSubmit
)] AbortSubmit_repl mapi_AbortSubmit
;
3634 [case(op_MAPI_MoveFolder
)] MoveFolder_repl mapi_MoveFolder
;
3635 [case(op_MAPI_CopyFolder
)] CopyFolder_repl mapi_CopyFolder
;
3636 [case(op_MAPI_QueryColumnsAll
)] QueryColumnsAll_repl mapi_QueryColumnsAll
;
3637 [case(op_MAPI_Abort
)] Abort_repl mapi_Abort
;
3638 [case(op_MAPI_CopyTo
)] CopyTo_repl mapi_CopyTo
;
3639 [case(op_MAPI_CopyToStream
)] CopyToStream_repl mapi_CopyToStream
;
3640 [case(op_MAPI_CloneStream
)] CloneStream_repl mapi_CloneStream
;
3641 [case(op_MAPI_GetTable
)] GetTable_repl mapi_GetTable
;
3642 [case(op_MAPI_GetRulesTable
)] GetRulesTable_repl mapi_GetRulesTable
;
3643 [case(op_MAPI_ModifyTable
)] ModifyTable_repl mapi_ModifyTable
;
3644 [case(op_MAPI_ModifyRules
)] ModifyRules_repl mapi_ModifyRules
;
3645 [case(op_MAPI_GetOwningServers
)] GetOwningServers_repl mapi_GetOwningServers
;
3646 [case(op_MAPI_LongTermIdFromId
)] LongTermIdFromId_repl mapi_LongTermIdFromId
;
3647 [case(op_MAPI_IdFromLongTermId
)] IdFromLongTermId_repl mapi_IdFromLongTermId
;
3648 [case(op_MAPI_PublicFolderIsGhosted
)] PublicFolderIsGhosted_repl mapi_PublicFolderIsGhosted
;
3649 [case(op_MAPI_OpenEmbeddedMessage
)] OpenEmbeddedMessage_repl mapi_OpenEmbeddedMessage
;
3650 [case(op_MAPI_SetSpooler
)] SetSpooler_repl mapi_SetSpooler
;
3651 [case(op_MAPI_SpoolerLockMessage
)] SpoolerLockMessage_repl mapi_SpoolerLockMessage
;
3652 [case(op_MAPI_AddressTypes
)] AddressTypes_repl mapi_AddressTypes
;
3653 [case(op_MAPI_TransportSend
)] TransportSend_repl mapi_TransportSend
;
3654 [case(op_MAPI_FastTransferSourceGetBuffer
)] FastTransferSourceGetBuffer_repl mapi_FastTransferSourceGetBuffer
;
3655 [case(op_MAPI_FindRow
)] FindRow_repl mapi_FindRow
;
3656 [case(op_MAPI_Progress
)] Progress_repl mapi_Progress
;
3657 [case(op_MAPI_TransportNewMail
)] TransportNewMail_repl mapi_TransportNewMail
;
3658 [case(op_MAPI_GetValidAttachments
)] GetValidAttachments_repl mapi_GetValidAttachments
;
3659 [case(op_MAPI_GetNamesFromIDs
)] GetNamesFromIDs_repl mapi_GetNamesFromIDs
;
3660 [case(op_MAPI_GetIDsFromNames
)] GetIDsFromNames_repl mapi_GetIDsFromNames
;
3661 [case(op_MAPI_UpdateDeferredActionMessages
)] UpdateDeferredActionMessages_repl mapi_UpdateDeferredActionMessages
;
3662 [case(op_MAPI_EmptyFolder
)] EmptyFolder_repl mapi_EmptyFolder
;
3663 [case(op_MAPI_ExpandRow
)] ExpandRow_repl mapi_ExpandRow
;
3664 [case(op_MAPI_CollapseRow
)] CollapseRow_repl mapi_CollapseRow
;
3665 [case(op_MAPI_LockRegionStream
)] LockRegionStream_repl mapi_LockRegionStream
;
3666 [case(op_MAPI_UnlockRegionStream
)] UnlockRegionStream_repl mapi_UnlockRegionStream
;
3667 [case(op_MAPI_CommitStream
)] CommitStream_repl mapi_CommitStream
;
3668 [case(op_MAPI_GetStreamSize
)] GetStreamSize_repl mapi_GetStreamSize
;
3669 [case(op_MAPI_QueryNamedProperties
)] QueryNamedProperties_repl mapi_QueryNamedProperties
;
3670 [case(op_MAPI_GetPerUserLongTermIds
)] GetPerUserLongTermIds_repl mapi_GetPerUserLongTermIds
;
3671 [case(op_MAPI_GetPerUserGuid
)] GetPerUserGuid_repl mapi_GetPerUserGuid
;
3672 [case(op_MAPI_ReadPerUserInformation
)] ReadPerUserInformation_repl mapi_ReadPerUserInformation
;
3673 [case(op_MAPI_SetReadFlags
)] SetReadFlags_repl mapi_SetReadFlags
;
3674 [case(op_MAPI_CopyProperties
)] CopyProperties_repl mapi_CopyProperties
;
3675 [case(op_MAPI_GetReceiveFolderTable
)] GetReceiveFolderTable_repl mapi_GetReceiveFolderTable
;
3676 [case(op_MAPI_Pending
)] Pending_repl mapi_Pending
;
3677 [case(op_MAPI_GetCollapseState
)] GetCollapseState_repl mapi_GetCollapseState
;
3678 [case(op_MAPI_SetCollapseState
)] SetCollapseState_repl mapi_SetCollapseState
;
3679 [case(op_MAPI_GetTransportFolder
)] GetTransportFolder_repl mapi_GetTransportFolder
;
3680 [case(op_MAPI_RegisterOptions
)] RegisterOptions_repl mapi_RegisterOptions
;
3681 [case(op_MAPI_SyncConfigure
)] SyncConfigure_repl mapi_SyncConfigure
;
3682 [case(op_MAPI_SyncImportMessageChange
)] SyncImportMessageChange_repl mapi_SyncImportMessageChange
;
3683 [case(op_MAPI_SyncImportHierarchyChange
)] SyncImportHierarchyChange_repl mapi_SyncImportHierarchyChange
;
3684 [case(op_MAPI_SyncImportDeletes
)] SyncImportDeletes_repl mapi_SyncImportDeletes
;
3685 [case(op_MAPI_SyncUploadStateStreamBegin
)] SyncUploadStateStreamBegin_repl mapi_SyncUploadStateStreamBegin
;
3686 [case(op_MAPI_SyncUploadStateStreamContinue
)] SyncUploadStateStreamContinue_repl mapi_SyncUploadStateStreamContinue
;
3687 [case(op_MAPI_SyncUploadStateStreamEnd
)] SyncUploadStateStreamEnd_repl mapi_SyncUploadStateStreamEnd
;
3688 [case(op_MAPI_SyncImportMessageMove
)] SyncImportMessageMove_repl mapi_SyncImportMessageMove
;
3689 [case(op_MAPI_SetPropertiesNoReplicate
)] SetPropertiesNoReplicate_repl mapi_SetPropertiesNoReplicate
;
3690 [case(op_MAPI_DeletePropertiesNoReplicate
)] DeletePropertiesNoReplicate_repl mapi_DeletePropertiesNoReplicate
;
3691 [case(op_MAPI_GetStoreState
)] GetStoreState_repl mapi_GetStoreState
;
3692 [case(op_MAPI_SyncOpenCollector
)] SyncOpenCollector_repl mapi_SyncOpenCollector
;
3693 [case(op_MAPI_GetLocalReplicaIds
)] GetLocalReplicaIds_repl mapi_GetLocalReplicaIds
;
3694 [case(op_MAPI_SyncImportReadStateChanges
)] SyncImportReadStateChanges_repl mapi_SyncImportReadStateChanges
;
3695 [case(op_MAPI_ResetTable
)] ResetTable_repl mapi_ResetTable
;
3696 [case(op_MAPI_SyncGetTransferState
)] SyncGetTransferState_repl mapi_SyncGetTransferState
;
3697 [case(op_MAPI_OpenPublicFolderByName
)] OpenPublicFolderByName_repl mapi_OpenPublicFolderByName
;
3698 [case(op_MAPI_SetSyncNotificationGuid
)] SetSyncNotificationGuid_repl mapi_SetSyncNotificationGuid
;
3699 [case(op_MAPI_FreeBookmark
)] FreeBookmark_repl mapi_FreeBookmark
;
3700 [case(op_MAPI_WriteAndCommitStream
)] WriteAndCommitStream_repl mapi_WriteAndCommitStream
;
3701 [case(op_MAPI_HardDeleteMessages
)] HardDeleteMessages_repl mapi_HardDeleteMessages
;
3702 [case(op_MAPI_HardDeleteMessagesAndSubfolders
)] HardDeleteMessagesAndSubfolders_repl mapi_HardDeleteMessagesAndSubfolders
;
3703 [case(op_MAPI_Logon
)] Logon_repl mapi_Logon
;
3704 [case(op_MAPI_proxypack
)] proxypack_repl mapi_proxypack
;
3706 } EcDoRpc_MAPI_REPL_UNION
;
3708 typedef [public, nodiscriminant
] union {
3709 [case(op_MAPI_Logon
)] Logon_redirect mapi_Logon
;
3711 } EcDoRpc_MAPI_REPL_UNION_SPECIAL
;
3713 typedef [public,flag
(NDR_NOALIGN
)] struct {
3717 [switch_is(opnum
)] EcDoRpc_MAPI_REQ_UNION u
;
3720 typedef [public,nopush
,nopull
,noprint
,flag
(NDR_NOALIGN
)] struct {
3723 MAPISTATUS error_code
;
3724 [switch_is(opnum
)] EcDoRpc_MAPI_REPL_UNION u
;
3725 [switch_is(opnum
)] EcDoRpc_MAPI_REPL_UNION_SPECIAL us
;
3726 } EcDoRpc_MAPI_REPL
;
3730 Abstract way to represent MAPI content
3733 typedef [public,nopull
,nopush
,noprint
] struct {
3734 uint32 mapi_len
; /* whole mapi_data length */
3735 uint16 length
; /* content length */
3736 EcDoRpc_MAPI_REQ
*mapi_req
;
3737 uint32
*handles
; /* handles id array */
3740 typedef [public,nopull
,nopush
,noprint
] struct {
3743 EcDoRpc_MAPI_REPL
*mapi_repl
;
3748 [public,nopull
,nopush
] MAPISTATUS EcDoRpc
(
3749 [in,out] policy_handle
*handle,
3750 [in,out] uint32 size
,
3751 [in,out] uint32 offset
,
3752 [in] [subcontext
(4),flag
(NDR_REMAINING|NDR_NOALIGN
)] mapi_request
*mapi_request
,
3753 [out][subcontext
(4),flag
(NDR_REMAINING|NDR_NOALIGN
)] mapi_response
*mapi_response
,
3754 [in,out] uint16
*length
,
3755 [in] uint16 max_data
3760 void EcGetMoreRpc
();
3766 we could directly use a NOTIFKEY structure rather than
3767 a uint8 array, but this makes the IDL more robust
3769 sockaddr array is made of:
3770 - family (unsigned short in) sa_family_t
3771 - address data sa_data[14];
3779 MAPISTATUS EcRRegisterPushNotification
(
3780 [in,out] policy_handle
*handle,
3781 [in] NotificationFlags ulEventMask
,
3782 [in,size_is(cbContext
)] uint8 rgbContext
[*],
3783 [in] uint16 cbContext
,
3784 [in] uint32 grbitAdviseBits
,
3785 [in,size_is(cbCallbackAddress
)] uint8 rgCallbackAddress
[*],
3786 [in] uint16 cbCallbackAddress
,
3787 [out,ref] uint32
*hNotification
3792 MAPISTATUS EcRUnregisterPushNotification
(
3793 [in,out] policy_handle
*handle,
3794 [in] uint32 unknown
[2]
3803 void EcRGetDCName
();
3807 void EcRNetGetDCName
();
3815 typedef [public,bitmap16bit
] bitmap
{
3816 RHEF_Compressed
= 0x0001,
3817 RHEF_XorMagic
= 0x0002,
3819 } RPC_HEADER_EXT_Flags
;
3821 typedef [public] struct {
3823 RPC_HEADER_EXT_Flags Flags
;
3828 typedef [enum8bit
,flag
(NDR_PAHEX
)] enum {
3829 AUX_TYPE_PERF_REQUESTID
= 0x01,
3830 AUX_TYPE_PERF_CLIENTDINFO
= 0x02,
3831 AUX_TYPE_PERF_SERVERINFO
= 0x03,
3832 AUX_TYPE_PERF_SESSIONINFO
= 0x04,
3833 AUX_TYPE_PERF_DEFMDB_SUCCESS
= 0x05,
3834 AUX_TYPE_PERF_DEFGC_SUCCESS
= 0x06,
3835 AUX_TYPE_PERF_MDB_SUCCESS
= 0x07,
3836 AUX_TYPE_PERF_GC_SUCCESS
= 0x08,
3837 AUX_TYPE_PERF_FAILURE
= 0x09,
3838 AUX_TYPE_CLIENT_CONTROL
= 0x0A,
3839 AUX_TYPE_PERF_PROCESSINFO
= 0x0B,
3840 AUX_TYPE_PERF_BG_DEFMDB_SUCCESS
= 0x0C,
3841 AUX_TYPE_PERF_BG_DEFGC_SUCCESS
= 0x0D,
3842 AUX_TYPE_PERF_BG_MDB_SUCCESS
= 0x0E,
3843 AUX_TYPE_PERF_BG_GC_SUCCESS
= 0x0F,
3844 AUX_TYPE_PERF_BG_FAILURE
= 0x10,
3845 AUX_TYPE_PERF_FG_DEFMDB_SUCCESS
= 0x11,
3846 AUX_TYPE_PERF_FG_DEFGC_SUCCESS
= 0x12,
3847 AUX_TYPE_PERF_FG_MDB_SUCCESS
= 0x13,
3848 AUX_TYPE_PERF_FG_GC_SUCCESS
= 0x14,
3849 AUX_TYPE_PERF_FG_FAILURE
= 0x15,
3850 AUX_TYPE_OSVERSIONINFO
= 0x16,
3851 AUX_TYPE_EXORGINFO
= 0x17
3852 } AUX_HEADER_TYPE_1
;
3854 typedef [enum8bit
,flag
(NDR_PAHEX
)] enum {
3855 AUX_TYPE_PERF_SESSIONINFO_2
= 0x04,
3856 AUX_TYPE_PERF_MDB_SUCCESS_2
= 0x07,
3857 AUX_TYPE_PERF_GC_SUCCESS_2
= 0x08,
3858 AUX_TYPE_PERF_FAILURE_2
= 0x09
3859 } AUX_HEADER_TYPE_2
;
3861 typedef [public,enum8bit
,flag
(NDR_PAHEX
)] enum {
3862 AUX_VERSION_1
= 0x1,
3866 typedef [public,switch_type(uint8
)] union {
3867 [case(AUX_VERSION_1
)] AUX_HEADER_TYPE_1 Type
;
3868 [case(AUX_VERSION_2
)] AUX_HEADER_TYPE_2 Type_2
;
3870 } AUX_HEADER_TYPE_ENUM
;
3872 /*************************/
3873 /* AUX_HEADER case (0x1) */
3874 typedef [flag
(NDR_NOALIGN
)] struct {
3877 } AUX_PERF_REQUESTID
;
3879 /*************************/
3880 /* AUX_HEADER case (0x2) */
3881 typedef [public,enum16bit
, flag
(NDR_PAHEX
)] enum {
3882 CLIENTMODE_UNKNOWN
= 0x0,
3883 CLIENTMODE_CLASSIC
= 0x1,
3884 CLIENTMODE_CACHED
= 0x2
3887 typedef [public,flag
(NDR_NOALIGN
)] struct {
3888 uint32 AdapterSpeed
;
3890 uint16 MachineNameOffset
;
3891 uint16 UserNameOffset
;
3892 uint16 ClientIPSize
;
3893 uint16 ClientIPOffset
;
3894 uint16 ClientIPMaskSize
;
3895 uint16 ClientIPMaskOffset
;
3896 uint16 AdapterNameOffset
;
3897 uint16 MacAddressSize
;
3898 uint16 MacAddressOffset
;
3899 ClientMode ClientMode
;
3901 uint8 MacAddress
[MacAddressSize
];
3902 uint8 ClientIP
[ClientIPSize
];
3903 uint8 ClientIPMask
[ClientIPMaskSize
];
3904 nstring MachineName
;
3906 nstring AdapterName
;
3907 } AUX_PERF_CLIENTINFO
;
3909 /*************************/
3910 /* AUX_HEADER case (0x3) */
3911 typedef [enum16bit
,flag
(NDR_PAHEX
)] enum {
3912 SERVERTYPE_UNKNOWN
= 0x0,
3913 SERVERTYPE_PRIVATE
= 0x1,
3914 SERVERTYPE_PUBLIC
= 0x2,
3915 SERVERTYPE_DIRECTORY
= 0x3,
3916 SERVERTYPE_REFERRAL
= 0x4
3917 } SERVERINFO_ServerType
;
3919 typedef [flag
(NDR_NOALIGN
)] struct {
3921 SERVERINFO_ServerType ServerType
;
3922 uint16 ServerDNOffset
;
3923 uint16 ServerNameOffset
;
3926 } AUX_PERF_SERVERINFO
;
3928 /*************************/
3929 /* AUX_HEADER case (0x4) */
3930 typedef [flag
(NDR_NOALIGN
)] struct {
3934 } AUX_PERF_SESSIONINFO
;
3936 typedef [flag
(NDR_NOALIGN
)] struct {
3940 uint32 ConnectionID
;
3941 } AUX_PERF_SESSIONINFO_V2
;
3943 /**************************/
3944 /* AUX_HEADER case (0x5) */
3945 /* AUX_HEADER case (0xC) */
3946 /* AUX_HEADER case (0x11) */
3947 typedef [flag
(NDR_NOALIGN
)] struct {
3948 uint32 TimeSinceRequest
;
3949 uint32 TimeToCompleteRequest
;
3952 } AUX_PERF_DEFMDB_SUCCESS
;
3954 /**************************/
3955 /* AUX_HEADER case (0x6) */
3956 /* AUX_HEADER case (0xD) */
3957 typedef [flag
(NDR_NOALIGN
)] struct {
3960 uint32 TimeSinceRequest
;
3961 uint32 TimeToCompleteRequest
;
3962 uint8 RequestOperation
;
3964 } AUX_PERF_DEFGC_SUCCESS
;
3966 /**************************/
3967 /* AUX_HEADER case (0x7) */
3968 /* AUX_HEADER case (0xE) */
3969 /* AUX_HEADER case (0x13) */
3970 typedef [flag
(NDR_NOALIGN
)] struct {
3975 uint32 TimeSinceRequest
;
3976 uint32 TimeToCompleteRequest
;
3977 } AUX_PERF_MDB_SUCCESS
;
3979 typedef [flag
(NDR_NOALIGN
)] struct {
3986 uint32 TimeSinceRequest
;
3987 uint32 TimeToCompleteRequest
;
3988 } AUX_PERF_MDB_SUCCESS_V2
;
3990 /**************************/
3991 /* AUX_HEADER case (0x8) */
3992 typedef [flag
(NDR_NOALIGN
)] struct {
3997 uint32 TimeSinceRequest
;
3998 uint32 TimeToCompleteRequest
;
3999 uint8 RequestOperation
;
4000 uint8 Reserved_2
[3];
4001 } AUX_PERF_GC_SUCCESS
;
4003 typedef [flag
(NDR_NOALIGN
)] struct {
4008 uint32 TimeSinceRequest
;
4009 uint32 TimeToCompleteRequest
;
4010 uint8 RequestOperation
;
4012 } AUX_PERF_GC_SUCCESS_V2
;
4014 /**************************/
4015 /* AUX_HEADER case (0x9) */
4016 typedef [flag
(NDR_NOALIGN
)] struct {
4021 uint32 TimeSinceRequest
;
4022 uint32 TimeToFailRequest
;
4023 MAPISTATUS ResultCode
;
4024 uint8 RequestOperation
;
4028 typedef [flag
(NDR_NOALIGN
)] struct {
4035 uint32 TimeSinceRequest
;
4036 uint32 TimeToFailRequest
;
4037 MAPISTATUS ResultCode
;
4038 uint8 RequestOperation
;
4039 uint8 Reserved_2
[3];
4040 } AUX_PERF_FAILURE_V2
;
4042 /**************************/
4043 /* AUX_HEADER case (0xA) */
4044 typedef [bitmap32bit
] bitmap
{
4045 ENABLE_PERF_SENDTOSERVER
= 0x00000001,
4046 ENABLE_PERF_SENDTOMAILBOX
= 0x00000002,
4047 ENABLE_COMPRESSION
= 0x00000004,
4048 ENABLE_HTTP_TUNNELING
= 0x00000008,
4049 ENABLE_PERF_SENDGCDATA
= 0x00000010
4050 } CLIENT_CONTROL_EnableFlags
;
4052 typedef [flag
(NDR_NOALIGN
)] struct {
4053 CLIENT_CONTROL_EnableFlags EnableFlags
;
4055 } AUX_CLIENT_CONTROL
;
4057 /*************************/
4058 /* AUX_HEADER case (0xB) */
4059 typedef [flag
(NDR_NOALIGN
)] struct {
4063 uint16 ProcessNameOffset
;
4065 nstring ProcessName
;
4066 } AUX_PERF_PROCESSINFO
;
4068 /**************************/
4069 /* AUX_HEADER case (0x16) */
4070 typedef [flag
(NDR_NOALIGN
)] struct {
4071 uint32 OSVersionInfoSize
;
4072 uint32 MajorVersion
;
4073 uint32 MinorVersion
;
4075 [subcontext
(0), subcontext_size
(132), flag
(NDR_NOALIGN|NDR_REMAINING
)] DATA_BLOB Reserved_1
;
4076 uint16 ServicePackMajor
;
4077 uint16 ServicePackMinor
;
4079 } AUX_OSVERSIONINFO
;
4081 /**************************/
4082 /* AUX_HEADER case (0x17) */
4083 typedef [bitmap32bit
] bitmap
{
4084 PUBLIC_FOLDERS_ENABLED
= 0x00000001
4085 } EXORGINFO_OrgFlags
;
4087 typedef [flag
(NDR_NOALIGN
)] struct {
4088 EXORGINFO_OrgFlags OrgFlags
;
4091 typedef [public,nodiscriminant
,flag
(NDR_NOALIGN
)] union {
4092 [case(AUX_TYPE_PERF_REQUESTID
)] AUX_PERF_REQUESTID AUX_PERF_REQUESTID
;
4093 [case(AUX_TYPE_PERF_CLIENTDINFO
)] AUX_PERF_CLIENTINFO AUX_PERF_CLIENTINFO
;
4094 [case(AUX_TYPE_PERF_SERVERINFO
)] AUX_PERF_SERVERINFO AUX_PERF_SERVERINFO
;
4095 [case(AUX_TYPE_PERF_SESSIONINFO
)] AUX_PERF_SESSIONINFO AUX_PERF_SESSIONINFO
;
4096 [case(AUX_TYPE_PERF_DEFMDB_SUCCESS
)] AUX_PERF_DEFMDB_SUCCESS AUX_PERF_DEFMDB_SUCCESS
;
4097 [case(AUX_TYPE_PERF_DEFGC_SUCCESS
)] AUX_PERF_DEFGC_SUCCESS AUX_PERF_DEFGC_SUCCESS
;
4098 [case(AUX_TYPE_PERF_MDB_SUCCESS
)] AUX_PERF_MDB_SUCCESS AUX_PERF_MDB_SUCCESS
;
4099 [case(AUX_TYPE_PERF_GC_SUCCESS
)] AUX_PERF_GC_SUCCESS AUX_PERF_GC_SUCCESS
;
4100 [case(AUX_TYPE_PERF_FAILURE
)] AUX_PERF_FAILURE AUX_PERF_FAILURE
;
4101 [case(AUX_TYPE_CLIENT_CONTROL
)] AUX_CLIENT_CONTROL AUX_CLIENT_CONTROL
;
4102 [case(AUX_TYPE_PERF_PROCESSINFO
)] AUX_PERF_PROCESSINFO AUX_PERF_PROCESSINFO
;
4103 [case(AUX_TYPE_PERF_BG_DEFMDB_SUCCESS
)] AUX_PERF_DEFMDB_SUCCESS AUX_PERF_DEFMDB_SUCCESS
;
4104 [case(AUX_TYPE_PERF_BG_DEFGC_SUCCESS
)] AUX_PERF_DEFGC_SUCCESS AUX_PERF_DEFGC_SUCCESS
;
4105 [case(AUX_TYPE_PERF_BG_MDB_SUCCESS
)] AUX_PERF_MDB_SUCCESS AUX_PERF_MDB_SUCCESS
;
4106 [case(AUX_TYPE_PERF_BG_GC_SUCCESS
)] AUX_PERF_GC_SUCCESS AUX_PERF_GC_SUCCESS
;
4107 [case(AUX_TYPE_PERF_BG_FAILURE
)] AUX_PERF_FAILURE AUX_PERF_FAILURE
;
4108 [case(AUX_TYPE_PERF_FG_DEFMDB_SUCCESS
)] AUX_PERF_DEFMDB_SUCCESS AUX_PERF_DEFMDB_SUCCESS
;
4109 [case(AUX_TYPE_PERF_FG_DEFGC_SUCCESS
)] AUX_PERF_DEFGC_SUCCESS AUX_PERF_DEFGC_SUCCESS
;
4110 [case(AUX_TYPE_PERF_FG_MDB_SUCCESS
)] AUX_PERF_MDB_SUCCESS AUX_PERF_MDB_SUCCESS
;
4111 [case(AUX_TYPE_PERF_FG_GC_SUCCESS
)] AUX_PERF_GC_SUCCESS AUX_PERG_GC_SUCCESS
;
4112 [case(AUX_TYPE_PERF_FG_FAILURE
)] AUX_PERF_FAILURE AUX_PERF_FAILURE
;
4113 [case(AUX_TYPE_OSVERSIONINFO
)] AUX_OSVERSIONINFO AUX_OSVERSIONINFO
;
4114 [case(AUX_TYPE_EXORGINFO
)] AUX_EXORGINFO AUX_EXORGINFO
;
4115 [default][flag
(NDR_REMAINING|NDR_NOALIGN
)] DATA_BLOB Payload
;
4116 } AUX_HEADER_TYPE_UNION_1
;
4118 typedef [public,nodiscriminant
,flag
(NDR_NOALIGN
)] union {
4119 [case(AUX_TYPE_PERF_REQUESTID
)] AUX_PERF_REQUESTID AUX_PERF_REQUESTID
;
4120 [case(AUX_TYPE_PERF_CLIENTDINFO
)] AUX_PERF_CLIENTINFO AUX_PERF_CLIENTINFO
;
4121 [case(AUX_TYPE_PERF_SERVERINFO
)] AUX_PERF_SERVERINFO AUX_PERF_SERVERINFO
;
4122 [case(AUX_TYPE_PERF_SESSIONINFO_2
)] AUX_PERF_SESSIONINFO_V2 AUX_PERF_SESSIONINFO_V2
; /* V2 specific */
4123 [case(AUX_TYPE_PERF_DEFMDB_SUCCESS
)] AUX_PERF_DEFMDB_SUCCESS AUX_PERF_DEFMDB_SUCCESS
;
4124 [case(AUX_TYPE_PERF_DEFGC_SUCCESS
)] AUX_PERF_DEFGC_SUCCESS AUX_PERF_DEFGC_SUCCESS
;
4125 [case(AUX_TYPE_PERF_MDB_SUCCESS_2
)] AUX_PERF_MDB_SUCCESS_V2 AUX_PERF_MDB_SUCCESS_V2
; /* V2 specific */
4126 [case(AUX_TYPE_PERF_GC_SUCCESS_2
)] AUX_PERF_GC_SUCCESS_V2 AUX_PERF_GC_SUCCESS_V2
; /* V2 specific */
4127 [case(AUX_TYPE_PERF_FAILURE_2
)] AUX_PERF_FAILURE_V2 AUX_PERF_FAILURE_V2
; /* V2 specific*/
4128 [case(AUX_TYPE_CLIENT_CONTROL
)] AUX_CLIENT_CONTROL AUX_CLIENT_CONTROL
;
4129 [case(AUX_TYPE_PERF_PROCESSINFO
)] AUX_PERF_PROCESSINFO AUX_PERF_PROCESSINFO
;
4130 [case(AUX_TYPE_PERF_BG_DEFMDB_SUCCESS
)] AUX_PERF_DEFMDB_SUCCESS AUX_PERF_DEFMDB_SUCCESS
;
4131 [case(AUX_TYPE_PERF_BG_DEFGC_SUCCESS
)] AUX_PERF_DEFGC_SUCCESS AUX_PERF_DEFGC_SUCCESS
;
4132 [case(AUX_TYPE_PERF_BG_MDB_SUCCESS
)] AUX_PERF_MDB_SUCCESS AUX_PERF_MDB_SUCCESS
;
4133 [case(AUX_TYPE_PERF_BG_GC_SUCCESS
)] AUX_PERF_GC_SUCCESS AUX_PERF_GC_SUCCESS
;
4134 [case(AUX_TYPE_PERF_BG_FAILURE
)] AUX_PERF_FAILURE AUX_PERF_FAILURE
;
4135 [case(AUX_TYPE_PERF_FG_DEFMDB_SUCCESS
)] AUX_PERF_DEFMDB_SUCCESS AUX_PERF_DEFMDB_SUCCESS
;
4136 [case(AUX_TYPE_PERF_FG_DEFGC_SUCCESS
)] AUX_PERF_DEFGC_SUCCESS AUX_PERF_DEFGC_SUCCESS
;
4137 [case(AUX_TYPE_PERF_FG_MDB_SUCCESS
)] AUX_PERF_MDB_SUCCESS AUX_PERF_MDB_SUCCESS
;
4138 [case(AUX_TYPE_PERF_FG_GC_SUCCESS
)] AUX_PERF_GC_SUCCESS AUX_PERG_GC_SUCCESS
;
4139 [case(AUX_TYPE_PERF_FG_FAILURE
)] AUX_PERF_FAILURE AUX_PERF_FAILURE
;
4140 [case(AUX_TYPE_OSVERSIONINFO
)] AUX_OSVERSIONINFO AUX_OSVERSIONINFO
;
4141 [case(AUX_TYPE_EXORGINFO
)] AUX_EXORGINFO AUX_EXORGINFO
;
4142 [default][flag
(NDR_REMAINING|NDR_NOALIGN
)] DATA_BLOB Payload
;
4143 } AUX_HEADER_TYPE_UNION_2
;
4145 typedef [public,nopull
,noprint
,flag
(NDR_NOALIGN
)] struct {
4147 AUX_VERSION
Version;
4149 [switch_is(Type
)] AUX_HEADER_TYPE_UNION_1 Payload_1
;
4150 [switch_is(Type
)] AUX_HEADER_TYPE_UNION_2 Payload_2
;
4153 typedef [public,nopull
,noprint
] struct {
4154 RPC_HEADER_EXT RPC_HEADER_EXT
;
4155 [subcontext
(0), subcontext_size
(RPC_HEADER_EXT.Size
)] AUX_HEADER
*AUX_HEADER
;
4159 MAPISTATUS EcDoConnectEx
(
4160 [out] policy_handle
*handle,
4161 [in,string,charset
(DOS
)] uint8 szUserDN
[],
4162 [in] uint32 ulFlags
,
4163 [in] uint32 ulConMod
,
4164 [in] uint32 cbLimit
,
4166 [in] uint32 ulLcidString
,
4167 [in] uint32 ulLcidSort
,
4168 [in] uint32 ulIcxrLink
,
4169 [in] uint16 usFCanConvertCodePages
,
4170 [out] uint32
*pcmsPollsMax
,
4171 [out] uint32
*pcRetry
,
4172 [out] uint32
*pcmsRetryDelay
,
4173 [out] uint32
*picxr
,
4174 [out,unique,string,charset
(DOS
)]uint8
*szDNPrefix
,
4175 [out,unique,string,charset
(DOS
)]uint8
*szDisplayName
,
4176 [in] uint16 rgwClientVersion
[3],
4177 [out] uint16 rgwServerVersion
[3],
4178 [out] uint16 rgwBestVersion
[3],
4179 [in,out] uint32
*pulTimeStamp
,
4180 [in,subcontext
(4),flag
(NDR_NOALIGN|NDR_REMAINING
)] mapi2k7_AuxInfo
*rgbAuxIn
,
4181 [in,out][range(0,0x1008)] uint32
*pcbAuxOut
,
4182 [in][flag
(NDR_REMAINING
)] DATA_BLOB data
4187 typedef [public,bitmap32bit
] bitmap
{
4188 pulFlags_NoCompression
= 0x00000001,
4189 pulFlags_NoXorMagic
= 0x00000002,
4190 pulFlags_Chain
= 0x00000004
4193 typedef [public,nopull
] struct {
4194 RPC_HEADER_EXT header
;
4195 [subcontext
(0),flag
(NDR_REMAINING|NDR_NOALIGN
)] mapi_request
*mapi_request
;
4198 typedef [public,nopull
] struct {
4199 RPC_HEADER_EXT header
;
4200 [subcontext
(0),flag
(NDR_NOALIGN|NDR_REMAINING
)] mapi_response
*mapi_response
;
4203 MAPISTATUS EcDoRpcExt2
(
4204 [in,out] policy_handle
*handle,
4205 [in,out] pulFlags
*pulFlags
,
4206 [in,subcontext
(4),flag
(NDR_NOALIGN|NDR_REMAINING
)] mapi2k7_request
*rgbIn
,
4209 [out] uint32 offset
,
4210 [out,subcontext
(4),flag
(NDR_NOALIGN|NDR_REMAINING
)]mapi2k7_response
*rgbOut
,
4211 [in,out][range(0,262144)] uint32
*pcbOut
,
4212 [in,subcontext
(4),flag
(NDR_NOALIGN|NDR_REMAINING
)] mapi2k7_AuxInfo
*rgbAuxIn
,
4213 [in] uint32 cbAuxIn
,
4214 [out,subcontext
(4),flag
(NDR_NOALIGN|NDR_REMAINING
)]mapi2k7_AuxInfo
*rgbAuxOut
,
4215 [in,out][range(0,4104)] uint32
*pcbAuxOut
,
4216 [out] uint32
*pullTransTime
4221 uuid("c840a7dc-42c0-1a10-b4b9-08002b2fe182"),
4222 pointer_default(unique),
4223 helpstring("Unknown")
4224 ] interface exchange_unknown
4226 void unknown_dummy
();