20 #include "idl_types.h" 23 uuid(
"a4f1db00-ca47-1067-b31f-00dd010662da"),
24 pointer_default(unique),
25 endpoint(
"ncacn_np:[\\pipe\\lsass]",
"ncacn_np:[\\pipe\\protected_storage]",
"ncacn_ip_tcp:"),
27 helpstring(
"Exchange 5.5 EMSMDB")
31 #include "mapitags_enum.h" 32 #include "mapicodes_enum.h" 37 typedef struct datablob {
48 MAPISTATUS EcDoConnect(
49 [out] policy_handle *handle,
50 [in,
string] uint8 name[],
51 [in] uint32 unknown1[3],
52 [in] uint32 code_page,
53 [in] input_locale input_locale,
56 [out] uint32 unknown4[3],
57 [out] uint16 *session_nb,
58 [out,unique,
string] uint8 *org_group,
59 [out,unique,
string] uint8 *user,
60 [out] uint16 store_version[3],
61 [in,out] uint16 emsmdb_client_version[3],
62 [in,out] uint32 *alloc_space
67 MAPISTATUS EcDoDisconnect(
68 [in,out] policy_handle *handle
78 typedef [
public, enum8bit, flag(NDR_PAHEX)]
enum 94 typedef [
public, v1_enum, flag(NDR_PAHEX)]
enum 96 RightsNone = 0x00000000,
97 RightsReadItems = 0x00000001,
98 RightsCreateItems = 0x00000002,
99 RightsEditOwn = 0x00000008,
100 RightsDeleteOwn = 0x00000010,
101 RightsEditAll = 0x00000020,
102 RightsDeleteAll = 0x00000040,
103 RightsCreateSubfolders = 0x00000080,
104 RightsFolderOwner = 0x00000100,
105 RightsFolderContact = 0x00000200,
106 RoleNone = 0x00000400,
107 RoleReviewer = 0x00000401,
108 RoleContributor = 0x00000402,
109 RoleNoneditingAuthor = 0x00000413,
110 RoleAuthor = 0x0000041B,
111 RoleEditor = 0x0000047B,
112 RolePublishAuthor = 0x0000049B,
113 RolePublishEditor = 0x000004FB,
114 RightsAll = 0x000005FB,
115 RoleOwner = 0x000007FB
118 typedef [
public, enum8bit, flag(NDR_PAHEX)]
enum 120 op_MAPI_Release = 0x1,
121 op_MAPI_OpenFolder = 0x2,
122 op_MAPI_OpenMessage = 0x3,
123 op_MAPI_GetHierarchyTable = 0x4,
124 op_MAPI_GetContentsTable = 0x5,
125 op_MAPI_CreateMessage = 0x6,
126 op_MAPI_GetProps = 0x7,
127 op_MAPI_GetPropsAll = 0x8,
128 op_MAPI_GetPropList = 0x9,
129 op_MAPI_SetProps = 0xa,
130 op_MAPI_DeleteProps = 0xb,
131 op_MAPI_SaveChangesMessage = 0xc,
132 op_MAPI_ModifyRecipients = 0xe,
133 op_MAPI_SetReadFlags = 0x11,
134 op_MAPI_SetColumns = 0x12,
135 op_MAPI_SortTable = 0x13,
136 op_MAPI_Restrict = 0x14,
137 op_MAPI_QueryRows = 0x15,
138 op_MAPI_GetRowCount = 0x17,
139 op_MAPI_SeekRow = 0x18,
140 op_MAPI_SeekRowBookmark = 0x19,
141 op_MAPI_SeekRowApprox = 0x1a,
142 op_MAPI_CreateBookmark = 0x1b,
143 op_MAPI_CreateFolder = 0x1c,
144 op_MAPI_DeleteFolder = 0x1d,
145 op_MAPI_DeleteMessages = 0x1e,
146 op_MAPI_GetMessageStatus = 0x1f,
147 op_MAPI_SetMessageStatus = 0x20,
148 op_MAPI_GetAttachmentTable = 0x21,
149 op_MAPI_OpenAttach = 0x22,
150 op_MAPI_CreateAttach = 0x23,
151 op_MAPI_DeleteAttach = 0x24,
152 op_MAPI_SaveChanges = 0x25,
153 op_MAPI_SetReceiveFolder = 0x26,
154 op_MAPI_GetReceiveFolder = 0x27,
155 op_MAPI_Advise = 0x29,
156 op_MAPI_Notify = 0x2a,
157 op_MAPI_OpenStream = 0x2b,
158 op_MAPI_ReadStream = 0x2c,
159 op_MAPI_WriteStream = 0x2d,
160 op_MAPI_SetSearchCriteria = 0x30,
161 op_MAPI_GetSearchCriteria = 0x31,
162 op_MAPI_SubmitMessage = 0x32,
163 op_MAPI_CopyMessages = 0x33,
164 op_MAPI_QueryColumns = 0x37,
165 op_MAPI_GetTable = 0x3e,
166 op_MAPI_ModifyTable = 0x40,
167 op_MAPI_FindRow = 0x4f,
168 op_MAPI_AddressTypes = 0x49,
169 op_MAPI_GetNamesFromIDs = 0x55,
170 op_MAPI_GetIDsFromNames = 0x56,
171 op_MAPI_EmptyFolder = 0x58,
172 op_MAPI_QueryNamesFromIDs = 0x5f,
173 op_MAPI_GetReceiveFolderTable = 0x68,
174 op_MAPI_OpenMsgStore = 0xfe
179 uint32 dwLowDateTime;
180 uint32 dwHighDateTime;
199 LPSTR strings[cValues];
209 GUID lpguid[cValues];
212 typedef [v1_enum]
enum {
213 PT_UNSPECIFIED = 0x0000,
219 PT_CURRENCY = 0x0006,
236 PT_MV_DOUBLE = 0x1005,
237 PT_MV_CURRENCY = 0x1006,
238 PT_MV_APPTIME = 0x1007,
240 PT_MV_STRING8 = 0x101e,
242 PT_MV_UNICODE = 0x101f,
243 PT_MV_SYSTIME = 0x1040,
244 PT_MV_CLSID = 0x1048,
245 PT_MV_BINARY = 0x1102
248 typedef [switch_type(property_types),flag(NDR_NOALIGN)]
union {
249 [
case(PT_I2)] uint16 i;
250 [
case(PT_LONG)] uint32 l;
251 [
case(PT_DOUBLE)] dlong dbl;
252 [
case(PT_ERROR)] uint32 err;
253 [
case(PT_BOOLEAN)] uint8 b;
254 [
case(PT_I8)] dlong d;
255 [
case(PT_STRING8)] astring lpszA;
256 [
case(PT_UNICODE)] nstring lpszW;
257 [
case(PT_SYSTIME)] FILETIME ft;
258 [
case(PT_CLSID)] GUID lpguid;
267 typedef [
public,flag(NDR_NOALIGN)]
struct {
269 [switch_is(ulPropTag & 0xFFFF)] SPropValue_CTR value;
272 typedef [flag(NDR_NOALIGN)]
struct {
274 [flag(NDR_REMAINING)]SPropValue lpProps[cValues];
277 typedef [flag(NDR_NOALIGN)]
struct {
279 MAPITAGS aulPropTag[cValues];
282 typedef [enum8bit, flag(NDR_PAHEX)]
enum {
288 typedef [flag(NDR_NOALIGN)]
struct {
289 ulRowFlags ulRowFlags;
293 typedef [flag(NDR_NOALIGN)]
struct {
296 SRow aEntries[cEntries];
301 typedef [nopush,nopull,flag(NDR_NOALIGN)]
struct {
304 typedef [nopush,nopull,flag(NDR_NOALIGN)]
struct {
309 typedef [flag(NDR_NOALIGN)]
struct {
315 typedef [flag(NDR_NOALIGN)]
struct {
321 typedef [flag(NDR_NOALIGN)]
struct {
322 uint8 folder_handle_idx;
325 uint8 message_permissions;
329 typedef [v1_enum, flag(NDR_PAHEX)]
enum {
332 CP_JAUTODETECT = 0xC6F4,
333 CP_KAUTODETECT = 0xC705,
334 CP_ISO2022JPESC = 0xC42D,
335 CP_ISO2022JPSIO = 0xC42E
338 typedef [enum8bit, flag(NDR_PAHEX)]
enum {
347 typedef [enum8bit, flag(NDR_PAHEX)]
enum {
348 SINGLE_RECIPIENT = 0x0,
349 DISTRIBUTION_LIST = 0x1
352 typedef [flag(NDR_NOALIGN)]
struct {
353 uint8 organization_length;
357 typedef [flag(NDR_NOALIGN)]
struct {
360 typedef [enum16bit]
enum {
365 typedef [switch_type(OM_recipient_type),flag(NDR_NOALIGN)]
union {
366 [
case(0x0)] RecipExchange EXCHANGE;
367 [
case(0xA)] RecipSMTP SMTP;
371 typedef [enum16bit]
enum {
373 } OM_recipient_displayname_7bit;
376 typedef [switch_type(OM_recipient_displayname_7bit),flag(NDR_NOALIGN)]
union {
377 [
case(0x400)] astring lpszA;
379 } recipient_displayname_7bit;
403 typedef [flag(NDR_NOALIGN)]
struct {
405 [switch_is(bitmask & 0xA)] recipient_type type;
406 [switch_is(bitmask & 0x400)] recipient_displayname_7bit username;
412 [flag(NDR_REMAINING)] DATA_BLOB prop_values;
413 } recipients_headers;
417 typedef [flag(NDR_NOALIGN)]
struct {
418 ulRecipClass RecipClass;
420 [subcontext(2)] recipients_headers recipients_headers;
421 } OpenMessage_recipients;
429 typedef [flag(NDR_NOALIGN)]
struct {
435 uint16 recipient_count;
436 SPropTagArray SPropTagArray;
480 typedef [flag(NDR_NOALIGN)]
struct {
483 MAPITAGS properties[prop_count];
486 typedef [flag(NDR_NOALIGN)]
struct {
488 [flag(NDR_REMAINING)] DATA_BLOB prop_data;
1028 typedef [bitmap16bit] bitmap {
1029 fnevCriticalError = 0x00000001,
1030 fnevNewMail = 0x00000002,
1031 fnevObjectCreated = 0x00000004,
1032 fnevObjectDeleted = 0x00000008,
1033 fnevObjectModified = 0x00000010,
1034 fnevObjectMoved = 0x00000020,
1035 fnevObjectCopied = 0x00000040,
1036 fnevSearchComplete = 0x00000080,
1037 fnevTableModified = 0x00000100,
1038 fnevStatusObjectModified= 0x00000200,
1039 fnevReservedForMapi = 0x40000000,
1040 fnevExtended = 0x80000000
1381 typedef [flag(NDR_NOALIGN)]
struct {
1385 uint16 mailbox_str_size;
1386 [string,charset(DOS)] uint8 *mailbox;
1434 typedef [switch_type(MAPI_OPNUM)]
union {
1435 [
case(op_MAPI_Release)] Release_req mapi_Release;
1436 [
case(op_MAPI_OpenFolder)] OpenFolder_req mapi_OpenFolder;
1441 [
case(op_MAPI_GetProps)] GetProps_req mapi_GetProps;
1488 [
case(op_MAPI_OpenMsgStore)] OpenMsgStore_req mapi_OpenMsgStore;
1489 } EcDoRpc_MAPI_REQ_UNION;
1491 typedef [
public, switch_type(MAPI_OPNUM)]
union {
1492 [
case(op_MAPI_Release)] Release_repl mapi_Release;
1493 [
case(op_MAPI_OpenFolder)] OpenFolder_repl mapi_OpenFolder;
1498 [
case(op_MAPI_GetProps)] GetProps_repl mapi_GetProps;
1546 } EcDoRpc_MAPI_REPL_UNION;
1548 typedef [
public,flag(NDR_NOALIGN)]
struct {
1552 [switch_is(opnum)] EcDoRpc_MAPI_REQ_UNION u;
1555 typedef [
public,nopull,noprint,flag(NDR_NOALIGN)]
struct {
1558 MAPISTATUS error_code;
1559 [switch_is(opnum)] EcDoRpc_MAPI_REPL_UNION u;
1560 } EcDoRpc_MAPI_REPL;
1567 typedef [
public,nopull,nopush,noprint]
struct {
1570 EcDoRpc_MAPI_REQ *mapi_req;
1574 typedef [
public,nopull,nopush,noprint]
struct {
1577 EcDoRpc_MAPI_REPL *mapi_repl;
1582 [
public] MAPISTATUS EcDoRpc(
1583 [in,out] policy_handle *handle,
1584 [in,out] uint32 size,
1585 [in,out] uint32 offset,
1586 [in][subcontext(4),flag(NDR_REMAINING|NDR_NOALIGN)] mapi_request *mapi_request,
1587 [out][subcontext(4),flag(NDR_REMAINING|NDR_NOALIGN)] mapi_response *mapi_response,
1588 [in,out] uint16 *length,
1589 [in] uint16 max_data
1594 void EcGetMoreRpc();
1613 MAPISTATUS EcRRegisterPushNotification(
1614 [in,out] policy_handle *handle,
1615 [in] ulEventType ulEventMask,
1616 [in, size_is(notif_len)] uint8 notifkey[*],
1617 [in] uint16 notif_len,
1618 [in] uint32 unknown2,
1619 [in, size_is(sockaddr_len)] uint8 sockaddr[*],
1620 [in] uint16 sockaddr_len,
1621 [out,ref] uint32 *retval
1626 MAPISTATUS EcRUnregisterPushNotification(
1627 [in,out] policy_handle *handle,
1628 [in] uint32 unknown[2]
1637 void EcRGetDCName();
1641 void EcRNetGetDCName();
Definition: conversation.c:27