1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
|
/*
* M A P I X . H
*
* Definitions of objects/flags, etc used by Extended MAPI.
*
* Copyright (c) 2009 Microsoft Corporation. All Rights Reserved.
*/
#ifndef MAPIX_H
#define MAPIX_H
#if _MSC_VER > 1000
#pragma once
#endif
/* Include common MAPI header files if they haven't been already. */
#ifndef MAPIDEFS_H
#include <mapidefs.h>
#endif
#ifndef MAPICODE_H
#include <mapicode.h>
#endif
#ifndef MAPIGUID_H
#include <mapiguid.h>
#endif
#ifndef MAPITAGS_H
#include <mapitags.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
#ifndef BEGIN_INTERFACE
#define BEGIN_INTERFACE
#endif
/* Forward interface declarations */
DECLARE_MAPI_INTERFACE_PTR(IProfAdmin, LPPROFADMIN);
DECLARE_MAPI_INTERFACE_PTR(IMsgServiceAdmin, LPSERVICEADMIN);
DECLARE_MAPI_INTERFACE_PTR(IMAPISession, LPMAPISESSION);
/* ------------------------------------------------------ */
/* shared with simple mapi */
typedef ULONG FLAGS;
/* MAPILogon() flags. */
#define MAPI_LOGON_UI 0x00000001 /* Display logon UI */
#define MAPI_NEW_SESSION 0x00000002 /* Don't use shared session */
#define MAPI_ALLOW_OTHERS 0x00000008 /* Make this a shared session */
#define MAPI_EXPLICIT_PROFILE 0x00000010 /* Don't use default profile */
#define MAPI_EXTENDED 0x00000020 /* Extended MAPI Logon */
#define MAPI_FORCE_DOWNLOAD 0x00001000 /* Get new mail before return */
#define MAPI_SERVICE_UI_ALWAYS 0x00002000 /* Do logon UI in all providers */
#define MAPI_NO_MAIL 0x00008000 /* Do not activate transports */
/* #define MAPI_NT_SERVICE 0x00010000 Allow logon from an NT service */
#ifndef MAPI_PASSWORD_UI
#define MAPI_PASSWORD_UI 0x00020000 /* Display password UI only */
#endif
#define MAPI_TIMEOUT_SHORT 0x00100000 /* Minimal wait for logon resources */
#define MAPI_SIMPLE_DEFAULT (MAPI_LOGON_UI | MAPI_FORCE_DOWNLOAD | MAPI_ALLOW_OTHERS)
#define MAPI_SIMPLE_EXPLICIT (MAPI_NEW_SESSION | MAPI_FORCE_DOWNLOAD | MAPI_EXPLICIT_PROFILE)
/* Structure passed to MAPIInitialize(), and its ulFlags values */
typedef struct
{
ULONG ulVersion;
ULONG ulFlags;
} MAPIINIT_0, FAR *LPMAPIINIT_0;
typedef MAPIINIT_0 MAPIINIT;
typedef MAPIINIT FAR *LPMAPIINIT;
#define MAPI_INIT_VERSION 0
#define MAPI_MULTITHREAD_NOTIFICATIONS 0x00000001
/* Reserved for MAPI 0x40000000 */
/* #define MAPI_NT_SERVICE 0x00010000 Use from NT service */
/* MAPI base functions */
typedef HRESULT (STDAPICALLTYPE MAPIINITIALIZE)(
LPVOID lpMapiInit
);
typedef MAPIINITIALIZE FAR *LPMAPIINITIALIZE;
typedef void (STDAPICALLTYPE MAPIUNINITIALIZE)(void);
typedef MAPIUNINITIALIZE FAR *LPMAPIUNINITIALIZE;
MAPIINITIALIZE MAPIInitialize;
MAPIUNINITIALIZE MAPIUninitialize;
/* Extended MAPI Logon function */
typedef HRESULT (STDMETHODCALLTYPE MAPILOGONEX)(
ULONG_PTR ulUIParam,
/*OFFICEDEV add _opt*/ __in_opt LPTSTR lpszProfileName,
/*OFFICEDEV add _opt*/ __in_opt LPTSTR lpszPassword,
ULONG ulFlags, /* ulFlags takes all that SimpleMAPI does + MAPI_UNICODE */
LPMAPISESSION FAR * lppSession
);
typedef MAPILOGONEX FAR *LPMAPILOGONEX;
MAPILOGONEX MAPILogonEx;
typedef SCODE (STDMETHODCALLTYPE MAPIALLOCATEBUFFER)(
ULONG cbSize,
LPVOID FAR * lppBuffer
);
typedef SCODE (STDMETHODCALLTYPE MAPIALLOCATEMORE)(
ULONG cbSize,
LPVOID lpObject,
LPVOID FAR * lppBuffer
);
typedef ULONG (STDAPICALLTYPE MAPIFREEBUFFER)(
LPVOID lpBuffer
);
typedef MAPIALLOCATEBUFFER FAR *LPMAPIALLOCATEBUFFER;
typedef MAPIALLOCATEMORE FAR *LPMAPIALLOCATEMORE;
typedef MAPIFREEBUFFER FAR *LPMAPIFREEBUFFER;
MAPIALLOCATEBUFFER MAPIAllocateBuffer;
MAPIALLOCATEMORE MAPIAllocateMore;
MAPIFREEBUFFER MAPIFreeBuffer;
typedef HRESULT (STDMETHODCALLTYPE MAPIADMINPROFILES)(
ULONG ulFlags,
LPPROFADMIN FAR *lppProfAdmin
);
typedef MAPIADMINPROFILES FAR *LPMAPIADMINPROFILES;
MAPIADMINPROFILES MAPIAdminProfiles;
/* IMAPISession Interface -------------------------------------------------- */
/* Flags for OpenEntry and others */
/*#define MAPI_MODIFY ((ULONG) 0x00000001) */
/* Flags for Logoff */
#define MAPI_LOGOFF_SHARED 0x00000001 /* Close all shared sessions */
#define MAPI_LOGOFF_UI 0x00000002 /* It's OK to present UI */
/* Flags for SetDefaultStore. They are mutually exclusive. */
#define MAPI_DEFAULT_STORE 0x00000001 /* for incoming messages */
#define MAPI_SIMPLE_STORE_TEMPORARY 0x00000002 /* for simple MAPI and CMC */
#define MAPI_SIMPLE_STORE_PERMANENT 0x00000003 /* for simple MAPI and CMC */
#define MAPI_PRIMARY_STORE 0x00000004 /* Used by some clients */
#define MAPI_SECONDARY_STORE 0x00000005 /* Used by some clients */
/* Flags for ShowForm. */
#define MAPI_POST_MESSAGE 0x00000001 /* Selects post/send semantics */
#define MAPI_NEW_MESSAGE 0x00000002 /* Governs copying during submission */
/* MessageOptions */
/****** MAPI_UNICODE ((ULONG) 0x80000000) */
/* QueryDefaultMessageOpt */
/****** MAPI_UNICODE ((ULONG) 0x80000000) */
#define MAPI_IMAPISESSION_METHODS(IPURE) \
MAPIMETHOD(GetLastError) \
(THIS_ HRESULT hResult, \
ULONG ulFlags, \
LPMAPIERROR FAR * lppMAPIError) IPURE; \
MAPIMETHOD(GetMsgStoresTable) \
(THIS_ ULONG ulFlags, \
LPMAPITABLE FAR * lppTable) IPURE; \
MAPIMETHOD(OpenMsgStore) \
(THIS_ ULONG_PTR ulUIParam, \
ULONG cbEntryID, \
LPENTRYID lpEntryID, \
LPCIID lpInterface, \
ULONG ulFlags, \
LPMDB FAR * lppMDB) IPURE; \
MAPIMETHOD(OpenAddressBook) \
(THIS_ ULONG_PTR ulUIParam, \
LPCIID lpInterface, \
ULONG ulFlags, \
LPADRBOOK FAR * lppAdrBook) IPURE; \
MAPIMETHOD(OpenProfileSection) \
(THIS_ LPMAPIUID lpUID, \
LPCIID lpInterface, \
ULONG ulFlags, \
LPPROFSECT FAR * lppProfSect) IPURE; \
MAPIMETHOD(GetStatusTable) \
(THIS_ ULONG ulFlags, \
LPMAPITABLE FAR * lppTable) IPURE; \
MAPIMETHOD(OpenEntry) \
(THIS_ ULONG cbEntryID, \
LPENTRYID lpEntryID, \
LPCIID lpInterface, \
ULONG ulFlags, \
ULONG FAR * lpulObjType, \
LPUNKNOWN FAR * lppUnk) IPURE; \
MAPIMETHOD(CompareEntryIDs) \
(THIS_ ULONG cbEntryID1, \
LPENTRYID lpEntryID1, \
ULONG cbEntryID2, \
LPENTRYID lpEntryID2, \
ULONG ulFlags, \
ULONG FAR * lpulResult) IPURE; \
MAPIMETHOD(Advise) \
(THIS_ ULONG cbEntryID, \
LPENTRYID lpEntryID, \
ULONG ulEventMask, \
LPMAPIADVISESINK lpAdviseSink, \
ULONG_PTR FAR * lpulConnection) IPURE; \
MAPIMETHOD(Unadvise) \
(THIS_ ULONG_PTR ulConnection) IPURE; \
MAPIMETHOD(MessageOptions) \
(THIS_ ULONG_PTR ulUIParam, \
ULONG ulFlags, \
LPTSTR lpszAdrType, \
LPMESSAGE lpMessage) IPURE; \
MAPIMETHOD(QueryDefaultMessageOpt) \
(THIS_ LPTSTR lpszAdrType, \
ULONG ulFlags, \
ULONG FAR * lpcValues, \
LPSPropValue FAR * lppOptions) IPURE; \
MAPIMETHOD(EnumAdrTypes) \
(THIS_ ULONG ulFlags, \
ULONG FAR * lpcAdrTypes, \
LPTSTR FAR * FAR * lpppszAdrTypes) IPURE; \
MAPIMETHOD(QueryIdentity) \
(THIS_ ULONG FAR * lpcbEntryID, \
LPENTRYID FAR * lppEntryID) IPURE; \
MAPIMETHOD(Logoff) \
(THIS_ ULONG_PTR ulUIParam, \
ULONG ulFlags, \
ULONG ulReserved) IPURE; \
MAPIMETHOD(SetDefaultStore) \
(THIS_ ULONG ulFlags, \
ULONG cbEntryID, \
LPENTRYID lpEntryID) IPURE; \
MAPIMETHOD(AdminServices) \
(THIS_ ULONG ulFlags, \
LPSERVICEADMIN FAR * lppServiceAdmin) IPURE; \
MAPIMETHOD(ShowForm) \
(THIS_ ULONG_PTR ulUIParam, \
LPMDB lpMsgStore, \
LPMAPIFOLDER lpParentFolder, \
LPCIID lpInterface, \
ULONG_PTR ulMessageToken, \
LPMESSAGE lpMessageSent, \
ULONG ulFlags, \
ULONG ulMessageStatus, \
ULONG ulMessageFlags, \
ULONG ulAccess, \
LPSTR lpszMessageClass) IPURE; \
MAPIMETHOD(PrepareForm) \
(THIS_ LPCIID lpInterface, \
LPMESSAGE lpMessage, \
ULONG_PTR FAR * lpulMessageToken) IPURE; \
#undef INTERFACE
#define INTERFACE IMAPISession
DECLARE_MAPI_INTERFACE_(IMAPISession, IUnknown)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IMAPISESSION_METHODS(PURE)
};
/*DECLARE_MAPI_INTERFACE_PTR(IMAPISession, LPMAPISESSION);*/
/* IAddrBook Interface ----------------------------------------------------- */
/* CreateOneOff */
/****** MAPI_UNICODE ((ULONG) 0x80000000) */
/****** MAPI_SEND_NO_RICH_INFO ((ULONG) 0x00010000) */
/* RecipOptions */
/****** MAPI_UNICODE ((ULONG) 0x80000000) */
/* QueryDefaultRecipOpt */
/****** MAPI_UNICODE ((ULONG) 0x80000000) */
/* GetSearchPath */
/****** MAPI_UNICODE ((ULONG) 0x80000000) */
#define MAPI_IADDRBOOK_METHODS(IPURE) \
MAPIMETHOD(OpenEntry) \
(THIS_ ULONG cbEntryID, \
LPENTRYID lpEntryID, \
LPCIID lpInterface, \
ULONG ulFlags, \
ULONG FAR * lpulObjType, \
LPUNKNOWN FAR * lppUnk) IPURE; \
MAPIMETHOD(CompareEntryIDs) \
(THIS_ ULONG cbEntryID1, \
LPENTRYID lpEntryID1, \
ULONG cbEntryID2, \
LPENTRYID lpEntryID2, \
ULONG ulFlags, \
ULONG FAR * lpulResult) IPURE; \
MAPIMETHOD(Advise) \
(THIS_ ULONG cbEntryID, \
LPENTRYID lpEntryID, \
ULONG ulEventMask, \
LPMAPIADVISESINK lpAdviseSink, \
ULONG_PTR FAR * lpulConnection) IPURE; \
MAPIMETHOD(Unadvise) \
(THIS_ ULONG_PTR ulConnection) IPURE; \
MAPIMETHOD(CreateOneOff) \
(THIS_ LPTSTR lpszName, \
LPTSTR lpszAdrType, \
LPTSTR lpszAddress, \
ULONG ulFlags, \
ULONG FAR * lpcbEntryID, \
LPENTRYID FAR * lppEntryID) IPURE; \
MAPIMETHOD(NewEntry) \
(THIS_ ULONG_PTR ulUIParam, \
ULONG ulFlags, \
ULONG cbEIDContainer, \
LPENTRYID lpEIDContainer, \
ULONG cbEIDNewEntryTpl, \
LPENTRYID lpEIDNewEntryTpl, \
ULONG FAR * lpcbEIDNewEntry, \
LPENTRYID FAR * lppEIDNewEntry) IPURE; \
MAPIMETHOD(ResolveName) \
(THIS_ ULONG_PTR ulUIParam, \
ULONG ulFlags, \
LPTSTR lpszNewEntryTitle, \
LPADRLIST lpAdrList) IPURE; \
MAPIMETHOD(Address) \
(THIS_ ULONG_PTR FAR * lpulUIParam, \
LPADRPARM lpAdrParms, \
LPADRLIST FAR * lppAdrList) IPURE; \
MAPIMETHOD(Details) \
(THIS_ ULONG_PTR FAR * lpulUIParam, \
LPFNDISMISS lpfnDismiss, \
LPVOID lpvDismissContext, \
ULONG cbEntryID, \
LPENTRYID lpEntryID, \
LPFNBUTTON lpfButtonCallback, \
LPVOID lpvButtonContext, \
LPTSTR lpszButtonText, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(RecipOptions) \
(THIS_ ULONG_PTR ulUIParam, \
ULONG ulFlags, \
LPADRENTRY lpRecip) IPURE; \
MAPIMETHOD(QueryDefaultRecipOpt) \
(THIS_ LPTSTR lpszAdrType, \
ULONG ulFlags, \
ULONG FAR * lpcValues, \
LPSPropValue FAR * lppOptions) IPURE; \
MAPIMETHOD(GetPAB) \
(THIS_ ULONG FAR * lpcbEntryID, \
LPENTRYID FAR * lppEntryID) IPURE; \
MAPIMETHOD(SetPAB) \
(THIS_ ULONG cbEntryID, \
LPENTRYID lpEntryID) IPURE; \
MAPIMETHOD(GetDefaultDir) \
(THIS_ ULONG FAR * lpcbEntryID, \
LPENTRYID FAR * lppEntryID) IPURE; \
MAPIMETHOD(SetDefaultDir) \
(THIS_ ULONG cbEntryID, \
LPENTRYID lpEntryID) IPURE; \
MAPIMETHOD(GetSearchPath) \
(THIS_ ULONG ulFlags, \
LPSRowSet FAR * lppSearchPath) IPURE; \
MAPIMETHOD(SetSearchPath) \
(THIS_ ULONG ulFlags, \
LPSRowSet lpSearchPath) IPURE; \
MAPIMETHOD(PrepareRecips) \
(THIS_ ULONG ulFlags, \
LPSPropTagArray lpPropTagArray, \
LPADRLIST lpRecipList) IPURE; \
#undef INTERFACE
#define INTERFACE IAddrBook
DECLARE_MAPI_INTERFACE_(IAddrBook, IMAPIProp)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IMAPIPROP_METHODS(PURE)
MAPI_IADDRBOOK_METHODS(PURE)
};
DECLARE_MAPI_INTERFACE_PTR(IAddrBook, LPADRBOOK);
/* IProfAdmin Interface ---------------------------------------------------- */
/* Flags for CreateProfile */
#define MAPI_DEFAULT_SERVICES 0x00000001
/* GetProfileTable */
/****** MAPI_UNICODE ((ULONG) 0x80000000) */
#define MAPI_IPROFADMIN_METHODS(IPURE) \
MAPIMETHOD(GetLastError) \
(THIS_ HRESULT hResult, \
ULONG ulFlags, \
LPMAPIERROR FAR * lppMAPIError) IPURE; \
MAPIMETHOD(GetProfileTable) \
(THIS_ ULONG ulFlags, \
LPMAPITABLE FAR * lppTable) IPURE; \
MAPIMETHOD(CreateProfile) \
(THIS_ LPTSTR lpszProfileName, \
LPTSTR lpszPassword, \
ULONG_PTR ulUIParam, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(DeleteProfile) \
(THIS_ LPTSTR lpszProfileName, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(ChangeProfilePassword) \
(THIS_ LPTSTR lpszProfileName, \
LPTSTR lpszOldPassword, \
LPTSTR lpszNewPassword, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(CopyProfile) \
(THIS_ LPTSTR lpszOldProfileName, \
LPTSTR lpszOldPassword, \
LPTSTR lpszNewProfileName, \
ULONG_PTR ulUIParam, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(RenameProfile) \
(THIS_ LPTSTR lpszOldProfileName, \
LPTSTR lpszOldPassword, \
LPTSTR lpszNewProfileName, \
ULONG_PTR ulUIParam, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(SetDefaultProfile) \
(THIS_ LPTSTR lpszProfileName, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(AdminServices) \
(THIS_ LPTSTR lpszProfileName, \
LPTSTR lpszPassword, \
ULONG_PTR ulUIParam, \
ULONG ulFlags, \
LPSERVICEADMIN FAR * lppServiceAdmin) IPURE; \
#undef INTERFACE
#define INTERFACE IProfAdmin
DECLARE_MAPI_INTERFACE_(IProfAdmin, IUnknown)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IPROFADMIN_METHODS(PURE)
};
/* IMsgServiceAdmin Interface ---------------------------------------------- */
/* Values for PR_RESOURCE_FLAGS in message service table */
#define SERVICE_DEFAULT_STORE 0x00000001
#define SERVICE_SINGLE_COPY 0x00000002
#define SERVICE_CREATE_WITH_STORE 0x00000004
#define SERVICE_PRIMARY_IDENTITY 0x00000008
#define SERVICE_NO_PRIMARY_IDENTITY 0x00000020
/* GetMsgServiceTable */
/****** MAPI_UNICODE ((ULONG) 0x80000000) */
/* GetProviderTable */
/****** MAPI_UNICODE ((ULONG) 0x80000000) */
#define MAPI_IMSGSERVICEADMIN_METHODS(IPURE) \
MAPIMETHOD(GetLastError) \
(THIS_ HRESULT hResult, \
ULONG ulFlags, \
LPMAPIERROR FAR * lppMAPIError) IPURE; \
MAPIMETHOD(GetMsgServiceTable) \
(THIS_ ULONG ulFlags, \
LPMAPITABLE FAR * lppTable) IPURE; \
MAPIMETHOD(CreateMsgService) \
(THIS_ LPTSTR lpszService, \
LPTSTR lpszDisplayName, \
ULONG_PTR ulUIParam, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(DeleteMsgService) \
(THIS_ LPMAPIUID lpUID) IPURE; \
MAPIMETHOD(CopyMsgService) \
(THIS_ LPMAPIUID lpUID, \
LPTSTR lpszDisplayName, \
LPCIID lpInterfaceToCopy, \
LPCIID lpInterfaceDst, \
LPVOID lpObjectDst, \
ULONG_PTR ulUIParam, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(RenameMsgService) \
(THIS_ LPMAPIUID lpUID, \
ULONG ulFlags, \
LPTSTR lpszDisplayName) IPURE; \
MAPIMETHOD(ConfigureMsgService) \
(THIS_ LPMAPIUID lpUID, \
ULONG_PTR ulUIParam, \
ULONG ulFlags, \
ULONG cValues, \
LPSPropValue lpProps) IPURE; \
MAPIMETHOD(OpenProfileSection) \
(THIS_ LPMAPIUID lpUID, \
LPCIID lpInterface, \
ULONG ulFlags, \
LPPROFSECT FAR * lppProfSect) IPURE; \
MAPIMETHOD(MsgServiceTransportOrder) \
(THIS_ ULONG cUID, \
LPMAPIUID lpUIDList, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(AdminProviders) \
(THIS_ LPMAPIUID lpUID, \
ULONG ulFlags, \
LPPROVIDERADMIN FAR * lppProviderAdmin) IPURE; \
MAPIMETHOD(SetPrimaryIdentity) \
(THIS_ LPMAPIUID lpUID, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(GetProviderTable) \
(THIS_ ULONG ulFlags, \
LPMAPITABLE FAR * lppTable) IPURE; \
#undef INTERFACE
#define INTERFACE IMsgServiceAdmin
DECLARE_MAPI_INTERFACE_(IMsgServiceAdmin, IUnknown)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IMSGSERVICEADMIN_METHODS(PURE)
};
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* MAPIX_H */
|