Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

545 lines
17 KiB

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