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.

792 lines
24 KiB

  1. #ifndef EXCHEXT_H
  2. #define EXCHEXT_H
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif
  6. /*
  7. * E X C H E X T . H
  8. *
  9. * Declarations of interfaces for providers of Microsoft Exchange
  10. * client extensions.
  11. *
  12. * Copyright 1986-1999 Microsoft Corporation. All Rights Reserved.
  13. */
  14. #ifndef BEGIN_INTERFACE
  15. #define BEGIN_INTERFACE
  16. #endif
  17. /*
  18. * C o n s t a n t s
  19. */
  20. // SCODEs
  21. #define EXCHEXT_S_NOCRITERIA MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 1)
  22. #define EXCHEXT_S_NOCHANGE MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 2)
  23. // Flag for Unicode strings
  24. #define EXCHEXT_UNICODE (0x80000000)
  25. // Flag values for IExchExtCallback::GetVersion
  26. #define EECBGV_GETBUILDVERSION (0x00000001)
  27. #define EECBGV_GETACTUALVERSION (0x00000002)
  28. #define EECBGV_GETVIRTUALVERSION (0x00000004)
  29. // Build version value for IExchExtCallback::GetVersion
  30. #define EECBGV_BUILDVERSION_MAJOR (0x000d0000)
  31. #define EECBGV_BUILDVERSION_MAJOR_MASK (0xFFFF0000)
  32. #define EECBGV_BUILDVERSION_MINOR_MASK (0x0000FFFF)
  33. // Actual/Virtual version values for IExchExtCallback::GetVersion
  34. #define EECBGV_MSEXCHANGE_WIN31 (0x01010000)
  35. #define EECBGV_MSEXCHANGE_WIN95 (0x01020000)
  36. #define EECBGV_MSEXCHANGE_WINNT (0x01030000)
  37. #define EECBGV_MSEXCHANGE_MAC (0x01040000)
  38. #define EECBGV_VERSION_PRODUCT_MASK (0xFF000000)
  39. #define EECBGV_VERSION_PLATFORM_MASK (0x00FF0000)
  40. #define EECBGV_VERSION_MAJOR_MASK (0x0000FF00)
  41. #define EECBGV_VERSION_MINOR_MASK (0x000000FF)
  42. // Flag values for IExchExtCallback::GetMenuPos
  43. #define EECBGMP_RANGE (0x00000001)
  44. // Flag values for IExchExtCallback::GetNewMessageSite
  45. #define EECBGNMS_MODAL (0x00000001)
  46. // Flag values for IExchExtCallback::ChooseFolder
  47. #define EECBCF_GETNAME (0x00000001)
  48. #define EECBCF_HIDENEW (0x00000002)
  49. #define EECBCF_PREVENTROOT (0x00000004)
  50. // Extensibility contexts used with IExchExt::Install
  51. #define EECONTEXT_SESSION (0x00000001)
  52. #define EECONTEXT_VIEWER (0x00000002)
  53. #define EECONTEXT_REMOTEVIEWER (0x00000003)
  54. #define EECONTEXT_SEARCHVIEWER (0x00000004)
  55. #define EECONTEXT_ADDRBOOK (0x00000005)
  56. #define EECONTEXT_SENDNOTEMESSAGE (0x00000006)
  57. #define EECONTEXT_READNOTEMESSAGE (0x00000007)
  58. #define EECONTEXT_SENDPOSTMESSAGE (0x00000008)
  59. #define EECONTEXT_READPOSTMESSAGE (0x00000009)
  60. #define EECONTEXT_READREPORTMESSAGE (0x0000000A)
  61. #define EECONTEXT_SENDRESENDMESSAGE (0x0000000B)
  62. #define EECONTEXT_PROPERTYSHEETS (0x0000000C)
  63. #define EECONTEXT_ADVANCEDCRITERIA (0x0000000D)
  64. #define EECONTEXT_TASK (0x0000000E)
  65. // Flag values for IExchExt::Install
  66. #define EE_MODAL (0x00000001)
  67. // Toolbar ids used with IExchExtCommands::InstallCommands
  68. #define EETBID_STANDARD (0x00000001)
  69. // Flag values for IExchExtCommands::QueryHelpText
  70. #define EECQHT_STATUS (0x00000001)
  71. #define EECQHT_TOOLTIP (0x00000002)
  72. // Flag values for IExchExtMessageEvents::OnXComplete
  73. #define EEME_FAILED (0x00000001)
  74. #define EEME_COMPLETE_FAILED (0x00000002)
  75. // Flag values for IExchExtAttachedFileEvents::OpenSzFile
  76. #define EEAFE_OPEN (0x00000001)
  77. #define EEAFE_PRINT (0x00000002)
  78. #define EEAFE_QUICKVIEW (0x00000003)
  79. // Flag values for IExchExtPropertySheets methods
  80. #define EEPS_MESSAGE (0x00000001)
  81. #define EEPS_FOLDER (0x00000002)
  82. #define EEPS_STORE (0x00000003)
  83. #define EEPS_TOOLSOPTIONS (0x00000004)
  84. // Flag values for IExchExtAdvancedCriteria::Install and ::SetFolder
  85. #define EEAC_INCLUDESUBFOLDERS (0x00000001)
  86. /*
  87. * S t r u c t u r e s
  88. */
  89. // Hook procedure for IExchExtCallback::ChooseFolder
  90. typedef UINT (STDAPICALLTYPE FAR * LPEECFHOOKPROC)(HWND, UINT, WPARAM, LPARAM);
  91. // Dialog information for IExchExtCallback::ChooseFolder
  92. typedef struct
  93. {
  94. UINT cbLength;
  95. HWND hwnd;
  96. LPTSTR szCaption;
  97. LPTSTR szLabel;
  98. LPTSTR szHelpFile;
  99. ULONG ulHelpID;
  100. HINSTANCE hinst;
  101. UINT uiDlgID;
  102. LPEECFHOOKPROC lpeecfhp;
  103. DWORD dwHookData;
  104. ULONG ulFlags;
  105. LPMDB pmdb;
  106. LPMAPIFOLDER pfld;
  107. LPTSTR szName;
  108. DWORD dwReserved1;
  109. DWORD dwReserved2;
  110. DWORD dwReserved3;
  111. }
  112. EXCHEXTCHOOSEFOLDER, FAR * LPEXCHEXTCHOOSEFOLDER;
  113. // Toolbar list entries for IExchExtCommands::InstallCommands
  114. typedef struct
  115. {
  116. HWND hwnd;
  117. ULONG tbid;
  118. ULONG ulFlags;
  119. UINT itbbBase;
  120. }
  121. TBENTRY, FAR * LPTBENTRY;
  122. /*
  123. * E x t e r n a l T y p e s
  124. */
  125. // Property sheet pages from Windows 95 prsht.h
  126. #ifndef _PRSHT_H_
  127. typedef struct _PROPSHEETPAGE;
  128. typedef struct _PROPSHEETPAGE FAR * LPPROPSHEETPAGE;
  129. #endif
  130. // Toolbar adjust info from Windows 95 commctrl.h
  131. #ifndef _INC_COMMCTRL
  132. typedef struct _TBBUTTON;
  133. typedef struct _TBBUTTON FAR * LPTBBUTTON;
  134. #endif
  135. /*
  136. * S u p p o r t I n t e r f a c e s
  137. */
  138. // Forward reference
  139. #ifdef __cplusplus
  140. interface IExchExtModeless;
  141. #else
  142. typedef interface IExchExtModeless IExchExtModeless;
  143. #endif
  144. typedef IExchExtModeless FAR* LPEXCHEXTMODELESS;
  145. /*
  146. * IExchExtModelessCallback
  147. *
  148. * Purpose:
  149. * Interface which may be used by Exchange client
  150. * extensions that create modeless UI.
  151. */
  152. #undef INTERFACE
  153. #define INTERFACE IExchExtModelessCallback
  154. DECLARE_INTERFACE_(IExchExtModelessCallback, IUnknown)
  155. {
  156. BEGIN_INTERFACE
  157. // *** IUnknown methods ***
  158. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
  159. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  160. STDMETHOD_(ULONG,Release) (THIS) PURE;
  161. // *** IExchExtModelessCallback methods ***
  162. STDMETHOD(EnableModeless) (THIS_ HWND hwnd, BOOL fEnable) PURE;
  163. STDMETHOD(AddWindow) (THIS) PURE;
  164. STDMETHOD(ReleaseWindow) (THIS) PURE;
  165. };
  166. typedef IExchExtModelessCallback FAR * LPEXCHEXTMODELESSCALLBACK;
  167. /*
  168. * IExchExtCallback
  169. *
  170. * Purpose:
  171. * Resource interface that may be used by Exchange client extensions.
  172. */
  173. #undef INTERFACE
  174. #define INTERFACE IExchExtCallback
  175. DECLARE_INTERFACE_(IExchExtCallback, IUnknown)
  176. {
  177. BEGIN_INTERFACE
  178. // *** IUnknown methods ***
  179. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
  180. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  181. STDMETHOD_(ULONG,Release) (THIS) PURE;
  182. // *** IExchExtCallback methods ***
  183. STDMETHOD(GetVersion) (THIS_ ULONG FAR * lpulVersion, ULONG ulFlags) PURE;
  184. STDMETHOD(GetWindow) (THIS_ HWND FAR * lphwnd) PURE;
  185. STDMETHOD(GetMenu) (THIS_ HMENU FAR * lphmenu) PURE;
  186. STDMETHOD(GetToolbar) (THIS_ ULONG tbid, HWND FAR * lphwndTb) PURE;
  187. STDMETHOD(GetSession) (THIS_ LPMAPISESSION FAR * lppses,
  188. LPADRBOOK FAR * lppab) PURE;
  189. STDMETHOD(GetObject) (THIS_ LPMDB FAR * lppmdb,
  190. LPMAPIPROP FAR * lppmp) PURE;
  191. STDMETHOD(GetSelectionCount) (THIS_ ULONG FAR * lpceid) PURE;
  192. STDMETHOD(GetSelectionItem) (THIS_ ULONG ieid, ULONG FAR * lpcbEid,
  193. LPENTRYID FAR * lppeid, ULONG FAR * lpulType,
  194. LPTSTR lpszMsgClass, ULONG cbMsgClass,
  195. ULONG FAR * lpulMsgFlags, ULONG ulFlags) PURE;
  196. STDMETHOD(GetMenuPos) (THIS_ ULONG cmdid, HMENU FAR * lphmenu,
  197. ULONG FAR * lpmposMin, ULONG FAR * lpmposMax,
  198. ULONG ulFlags) PURE;
  199. STDMETHOD(GetSharedExtsDir) (THIS_ LPTSTR lpszDir, ULONG cchDir,
  200. ULONG ulFlags) PURE;
  201. STDMETHOD(GetRecipients) (THIS_ LPADRLIST FAR * lppal) PURE;
  202. STDMETHOD(SetRecipients) (THIS_ LPADRLIST lpal) PURE;
  203. STDMETHOD(GetNewMessageSite) (THIS_ ULONG fComposeInFolder,
  204. LPMAPIFOLDER pfldFocus,
  205. LPPERSISTMESSAGE ppermsg,
  206. LPMESSAGE FAR * ppmsg,
  207. LPMAPIMESSAGESITE FAR * ppmms,
  208. LPMAPIVIEWCONTEXT FAR * ppmvc,
  209. ULONG ulFlags) PURE;
  210. STDMETHOD(RegisterModeless) (THIS_ LPEXCHEXTMODELESS peem,
  211. LPEXCHEXTMODELESSCALLBACK FAR * ppeemcb) PURE;
  212. STDMETHOD(ChooseFolder) (THIS_ LPEXCHEXTCHOOSEFOLDER peecf) PURE;
  213. };
  214. typedef IExchExtCallback FAR * LPEXCHEXTCALLBACK;
  215. /*
  216. * E x t e n s i o n I n t e r f a c e s
  217. */
  218. /*
  219. * IExchExt
  220. *
  221. * Purpose:
  222. * Central interface implemented by Exchange client extensions.
  223. */
  224. #undef INTERFACE
  225. #define INTERFACE IExchExt
  226. DECLARE_INTERFACE_(IExchExt, IUnknown)
  227. {
  228. BEGIN_INTERFACE
  229. // *** IUnknown methods ***
  230. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
  231. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  232. STDMETHOD_(ULONG,Release) (THIS) PURE;
  233. // *** IExchExt methods ***
  234. STDMETHOD(Install) (THIS_ LPEXCHEXTCALLBACK lpeecb,
  235. ULONG mecontext, ULONG ulFlags) PURE;
  236. };
  237. typedef IExchExt FAR * LPEXCHEXT;
  238. // Type of function called by the client to load an extension
  239. typedef LPEXCHEXT (CALLBACK * LPFNEXCHEXTENTRY)(VOID);
  240. /*
  241. * IExchExtCommands
  242. *
  243. * Purpose:
  244. * Interface implemented by Exchange client extensions that wish to
  245. * add additional commands to the client's menus.
  246. */
  247. #undef INTERFACE
  248. #define INTERFACE IExchExtCommands
  249. DECLARE_INTERFACE_(IExchExtCommands, IUnknown)
  250. {
  251. BEGIN_INTERFACE
  252. // *** IUnknown methods ***
  253. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
  254. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  255. STDMETHOD_(ULONG,Release) (THIS) PURE;
  256. // *** IExchExtCommands methods ***
  257. STDMETHOD(InstallCommands) (THIS_ LPEXCHEXTCALLBACK lpeecb, HWND hwnd,
  258. HMENU hmenu, UINT FAR * lpcmdidBase,
  259. LPTBENTRY lptbeArray, UINT ctbe,
  260. ULONG ulFlags) PURE;
  261. STDMETHOD_(VOID,InitMenu) (THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
  262. STDMETHOD(DoCommand) (THIS_ LPEXCHEXTCALLBACK lpeecb, UINT cmdid) PURE;
  263. STDMETHOD(Help) (THIS_ LPEXCHEXTCALLBACK lpeecb, UINT cmdid) PURE;
  264. STDMETHOD(QueryHelpText) (THIS_ UINT cmdid, ULONG ulFlags,
  265. LPTSTR lpsz, UINT cch) PURE;
  266. STDMETHOD(QueryButtonInfo) (THIS_ ULONG tbid, UINT itbb, LPTBBUTTON ptbb,
  267. LPTSTR lpsz, UINT cch, ULONG ulFlags) PURE;
  268. STDMETHOD(ResetToolbar) (THIS_ ULONG tbid, ULONG ulFlags) PURE;
  269. };
  270. typedef IExchExtCommands FAR * LPEXCHEXTCOMMANDS;
  271. /*
  272. * IExchExtUserEvents
  273. *
  274. * Purpose:
  275. * Interface implemented by Exchange client extensions that wish to
  276. * take special action when the user does certain actions.
  277. */
  278. #undef INTERFACE
  279. #define INTERFACE IExchExtUserEvents
  280. DECLARE_INTERFACE_(IExchExtUserEvents, IUnknown)
  281. {
  282. BEGIN_INTERFACE
  283. // *** IUnknown methods ***
  284. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
  285. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  286. STDMETHOD_(ULONG,Release) (THIS) PURE;
  287. // *** IExchExtUserEvents methods ***
  288. STDMETHOD_(VOID,OnSelectionChange) (THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
  289. STDMETHOD_(VOID,OnObjectChange) (THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
  290. };
  291. typedef IExchExtUserEvents FAR * LPEXCHEXTUSEREVENTS;
  292. /*
  293. * IExchExtSessionEvents
  294. *
  295. * Purpose:
  296. * Interface implemented by Exchange client extensions that wish to
  297. * take special action when certain events happen in the session.
  298. */
  299. #undef INTERFACE
  300. #define INTERFACE IExchExtSessionEvents
  301. DECLARE_INTERFACE_(IExchExtSessionEvents, IUnknown)
  302. {
  303. BEGIN_INTERFACE
  304. // *** IUnknown methods ***
  305. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
  306. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  307. STDMETHOD_(ULONG,Release) (THIS) PURE;
  308. // *** IExchExtEvents methods ***
  309. STDMETHOD(OnDelivery)(THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
  310. };
  311. typedef IExchExtSessionEvents FAR * LPEXCHEXTSESSIONEVENTS;
  312. /*
  313. * IExchExtMessageEvents
  314. *
  315. * Purpose:
  316. * Interface implemented by Exchange client extensions that wish to
  317. * take special action when certain events happen to messages.
  318. */
  319. #undef INTERFACE
  320. #define INTERFACE IExchExtMessageEvents
  321. DECLARE_INTERFACE_(IExchExtMessageEvents, IUnknown)
  322. {
  323. BEGIN_INTERFACE
  324. // *** IUnknown methods ***
  325. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
  326. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  327. STDMETHOD_(ULONG,Release) (THIS) PURE;
  328. // *** IExchExtMessageEvents methods ***
  329. STDMETHOD(OnRead)(THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
  330. STDMETHOD(OnReadComplete)(THIS_ LPEXCHEXTCALLBACK lpeecb,
  331. ULONG ulFlags) PURE;
  332. STDMETHOD(OnWrite)(THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
  333. STDMETHOD(OnWriteComplete)(THIS_ LPEXCHEXTCALLBACK lpeecb,
  334. ULONG ulFlags) PURE;
  335. STDMETHOD(OnCheckNames)(THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
  336. STDMETHOD(OnCheckNamesComplete)(THIS_ LPEXCHEXTCALLBACK lpeecb,
  337. ULONG ulFlags) PURE;
  338. STDMETHOD(OnSubmit)(THIS_ LPEXCHEXTCALLBACK lpeecb) PURE;
  339. STDMETHOD_(VOID, OnSubmitComplete)(THIS_ LPEXCHEXTCALLBACK lpeecb,
  340. ULONG ulFlags) PURE;
  341. };
  342. typedef IExchExtMessageEvents FAR * LPEXCHEXTMESSAGEEVENTS;
  343. /*
  344. * IExchExtAttachedFileEvents
  345. *
  346. * Purpose:
  347. * Interface implemented by Exchange client extensions that wish to
  348. * take special action when certain events happen to attached files.
  349. */
  350. #undef INTERFACE
  351. #define INTERFACE IExchExtAttachedFileEvents
  352. DECLARE_INTERFACE_(IExchExtAttachedFileEvents, IUnknown)
  353. {
  354. BEGIN_INTERFACE
  355. // *** IUnknown methods ***
  356. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
  357. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  358. STDMETHOD_(ULONG,Release) (THIS) PURE;
  359. // *** IExchExtAttachedFileEvents methods ***
  360. STDMETHOD(OnReadPattFromSzFile)(THIS_ LPATTACH lpatt, LPTSTR lpszFile,
  361. ULONG ulFlags) PURE;
  362. STDMETHOD(OnWritePattToSzFile)(THIS_ LPATTACH lpatt, LPTSTR lpszFile,
  363. ULONG ulFlags) PURE;
  364. STDMETHOD(QueryDisallowOpenPatt)(THIS_ LPATTACH lpatt) PURE;
  365. STDMETHOD(OnOpenPatt)(THIS_ LPATTACH lpatt) PURE;
  366. STDMETHOD(OnOpenSzFile)(THIS_ LPTSTR lpszFile, ULONG ulFlags) PURE;
  367. };
  368. typedef IExchExtAttachedFileEvents FAR * LPEXCHEXTATTACHEDFILEEVENTS;
  369. /*
  370. * IExchExtPropertySheets
  371. *
  372. * Purpose:
  373. * Interface implemented by Exchange client extensions that wish
  374. * to add additional pages to the client's object property sheets.
  375. */
  376. #undef INTERFACE
  377. #define INTERFACE IExchExtPropertySheets
  378. DECLARE_INTERFACE_(IExchExtPropertySheets, IUnknown)
  379. {
  380. BEGIN_INTERFACE
  381. // *** IUnknown methods ***
  382. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
  383. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  384. STDMETHOD_(ULONG,Release) (THIS) PURE;
  385. // *** IExchExtPropertySheet methods ***
  386. STDMETHOD_(ULONG,GetMaxPageCount) (THIS_ ULONG ulFlags) PURE;
  387. STDMETHOD(GetPages) (THIS_ LPEXCHEXTCALLBACK lpeecb, ULONG ulFlags,
  388. LPPROPSHEETPAGE lppsp, ULONG FAR * lpcpsp) PURE;
  389. STDMETHOD_(VOID,FreePages) (THIS_ LPPROPSHEETPAGE lppsp,
  390. ULONG ulFlags, ULONG cpsp) PURE;
  391. };
  392. typedef IExchExtPropertySheets FAR * LPEXCHEXTPROPERTYSHEETS;
  393. /*
  394. * IExchExtAdvancedCriteria
  395. *
  396. * Purpose:
  397. * Interface implemented by Exchange client extensions that wish to
  398. * implement an advanced criteria dialog.
  399. */
  400. #undef INTERFACE
  401. #define INTERFACE IExchExtAdvancedCriteria
  402. DECLARE_INTERFACE_(IExchExtAdvancedCriteria, IUnknown)
  403. {
  404. BEGIN_INTERFACE
  405. // *** IUnknown methods ***
  406. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
  407. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  408. STDMETHOD_(ULONG,Release) (THIS) PURE;
  409. // *** IExchExtAdvancedCriteria methods ***
  410. STDMETHOD(InstallAdvancedCriteria) (THIS_ HWND hwnd, LPSRestriction lpres,
  411. BOOL fNot, LPENTRYLIST lpeidl,
  412. ULONG ulFlags) PURE;
  413. STDMETHOD(DoDialog) (THIS) PURE;
  414. STDMETHOD_(VOID,Clear) (THIS) PURE;
  415. STDMETHOD_(VOID,SetFolders) (THIS_ LPENTRYLIST lpeidl, ULONG ulFlags) PURE;
  416. STDMETHOD(QueryRestriction) (THIS_ LPVOID lpvAllocBase,
  417. LPSRestriction FAR * lppres,
  418. LPSPropTagArray FAR * lppPropTags,
  419. LPMAPINAMEID FAR * FAR * lpppPropNames,
  420. BOOL * lpfNot, LPTSTR lpszDesc, ULONG cchDesc,
  421. ULONG ulFlags) PURE;
  422. STDMETHOD_(VOID,UninstallAdvancedCriteria) (THIS) PURE;
  423. };
  424. typedef IExchExtAdvancedCriteria FAR * LPEXCHEXTADVANCEDCRITERIA;
  425. /*
  426. * IExchExtModeless
  427. *
  428. * Purpose:
  429. * Interface implemented by Exchange client extensions that wish
  430. * to create modeless UI.
  431. */
  432. #undef INTERFACE
  433. #define INTERFACE IExchExtModeless
  434. DECLARE_INTERFACE_(IExchExtModeless, IUnknown)
  435. {
  436. BEGIN_INTERFACE
  437. // *** IUnknown methods ***
  438. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * lppvObj) PURE;
  439. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  440. STDMETHOD_(ULONG,Release) (THIS) PURE;
  441. // *** IExchExtModeless methods ***
  442. STDMETHOD(TranslateAccelerator) (THIS_ LPMSG pmsg) PURE;
  443. STDMETHOD(EnableModeless) (THIS_ BOOL fEnable) PURE;
  444. };
  445. /*
  446. * G U I D s
  447. */
  448. #define DEFINE_EXCHEXTGUID(name, b) \
  449. DEFINE_GUID(name, 0x00020D00 | (b), 0, 0, 0xC0,0,0,0,0,0,0,0x46)
  450. #ifndef NOEXCHEXTGUIDS
  451. DEFINE_EXCHEXTGUID(IID_IExchExtCallback, 0x10);
  452. DEFINE_EXCHEXTGUID(IID_IExchExt, 0x11);
  453. DEFINE_EXCHEXTGUID(IID_IExchExtCommands, 0x12);
  454. DEFINE_EXCHEXTGUID(IID_IExchExtUserEvents, 0x13);
  455. DEFINE_EXCHEXTGUID(IID_IExchExtSessionEvents, 0x14);
  456. DEFINE_EXCHEXTGUID(IID_IExchExtMessageEvents, 0x15);
  457. DEFINE_EXCHEXTGUID(IID_IExchExtAttachedFileEvents, 0x16);
  458. DEFINE_EXCHEXTGUID(IID_IExchExtPropertySheets, 0x17);
  459. DEFINE_EXCHEXTGUID(IID_IExchExtAdvancedCriteria, 0x18);
  460. DEFINE_EXCHEXTGUID(IID_IExchExtModeless, 0x19);
  461. DEFINE_EXCHEXTGUID(IID_IExchExtModelessCallback, 0x1a);
  462. #endif // NOEXCHEXTGUIDS
  463. /*
  464. * C M D I D s
  465. */
  466. // File
  467. #define EECMDID_File 10
  468. #define EECMDID_FileOpen 11
  469. #define EECMDID_FileSend 12
  470. #define EECMDID_FileSave 13
  471. #define EECMDID_FileSaveAs 14
  472. #define EECMDID_FileMove 16
  473. #define EECMDID_FileCopy 17
  474. #define EECMDID_FilePrint 25
  475. #define EECMDID_FileNewEntry 18
  476. #define EECMDID_FileNewMessage 19
  477. #define EECMDID_FileNewFolder 20
  478. #define EECMDID_FileAddToPAB 29
  479. #define EECMDID_FileDelete 21
  480. #define EECMDID_FileRename 22
  481. #define EECMDID_FileProperties 23
  482. #define EECMDID_FilePropertiesRecipients 24
  483. #define EECMDID_FileClose 30
  484. #define EECMDID_FileExit 32
  485. #define EECMDID_FileExitAndLogOff 33
  486. // Edit
  487. #define EECMDID_Edit 40
  488. #define EECMDID_EditUndo 41
  489. #define EECMDID_EditCut 42
  490. #define EECMDID_EditCopy 43
  491. #define EECMDID_EditPaste 44
  492. #define EECMDID_EditPasteSpecial 45
  493. #define EECMDID_EditSelectAll 46
  494. #define EECMDID_EditMarkAsRead 49
  495. #define EECMDID_EditMarkAsUnread 50
  496. #define EECMDID_EditMarkToRetrieve 52
  497. #define EECMDID_EditMarkToRetrieveACopy 53
  498. #define EECMDID_EditMarkToDelete 54
  499. #define EECMDID_EditUnmarkAll 55
  500. #define EECMDID_EditFind 56
  501. #define EECMDID_EditReplace 57
  502. #define EECMDID_EditLinks 59
  503. #define EECMDID_EditObject 60
  504. #define EECMDID_EditObjectConvert 61
  505. #ifdef DBCS
  506. #define EECMDID_EditFullShape 62
  507. #define EECMDID_EditHiraKataAlpha 63
  508. #define EECMDID_EditHangAlpha 64
  509. #define EECMDID_EditHanja 65
  510. #define EECMDID_EditRoman 66
  511. #define EECMDID_EditCode 67
  512. #endif
  513. // View
  514. #define EECMDID_View 70
  515. #define EECMDID_ViewFolders 71
  516. #define EECMDID_ViewToolbar 72
  517. #define EECMDID_ViewFormattingToolbar 73
  518. #define EECMDID_ViewStatusBar 74
  519. #define EECMDID_ViewNewWindow 75
  520. #define EECMDID_ViewColumns 79
  521. #define EECMDID_ViewSort 78
  522. #define EECMDID_ViewFilter 80
  523. #define EECMDID_ViewBccBox 91
  524. #define EECMDID_ViewPrevious 87
  525. #define EECMDID_ViewNext 88
  526. #ifdef DBCS
  527. #define EECMDID_ViewWritingMode 89
  528. #define EECMDID_ViewImeStatus 94
  529. #endif
  530. // Insert
  531. #define EECMDID_Insert 100
  532. #define EECMDID_InsertFile 101
  533. #define EECMDID_InsertMessage 102
  534. #define EECMDID_InsertObject 103
  535. #define EECMDID_InsertInkObject 104
  536. // Format
  537. #define EECMDID_Format 110
  538. #define EECMDID_FormatFont 111
  539. #define EECMDID_FormatParagraph 112
  540. // Tools
  541. #define EECMDID_Tools 120
  542. #define EECMDID_ToolsDeliverNowUsing 121
  543. #define EECMDID_ToolsDeliverNow 122
  544. #define EECMDID_ToolsSpelling 131
  545. #define EECMDID_ToolsAddressBook 123
  546. #define EECMDID_ToolsCheckNames 133
  547. #define EECMDID_ToolsFind 124
  548. #define EECMDID_ToolsConnect 126
  549. #define EECMDID_ToolsUpdateHeaders 127
  550. #define EECMDID_ToolsTransferMail 128
  551. #define EECMDID_ToolsDisconnect 129
  552. #define EECMDID_ToolsRemoteMail 130
  553. #define EECMDID_ToolsCustomizeToolbar 134
  554. #define EECMDID_ToolsServices 135
  555. #define EECMDID_ToolsOptions 136
  556. #ifdef DBCS
  557. #define EECMDID_ToolsWordRegistration 137
  558. #endif
  559. // Compose
  560. #define EECMDID_Compose 150
  561. #define EECMDID_ComposeNewMessage 151
  562. #define EECMDID_ComposeReplyToSender 154
  563. #define EECMDID_ComposeReplyToAll 155
  564. #define EECMDID_ComposeForward 156
  565. // Help
  566. #define EECMDID_Help 160
  567. #define EECMDID_HelpMicrosoftExchangeHelpTopics 161
  568. #define EECMDID_HelpAboutMicrosoftExchange 162
  569. // Header
  570. #define EECMDID_CtxHeader 203
  571. #define EECMDID_CtxHeaderSortAscending 204
  572. #define EECMDID_CtxHeaderSortDescending 205
  573. // In Folder
  574. #define EECMDID_CtxInFolder 206
  575. #define EECMDID_CtxInFolderChoose 207
  576. // Container
  577. #define EECMDID_CtxContainer 208
  578. #define EECMDID_CtxContainerProperties 209
  579. // Standard Toolbar
  580. #define EECMDID_Toolbar 220
  581. #define EECMDID_ToolbarPrint 221
  582. #define EECMDID_ToolbarReadReceipt 222
  583. #define EECMDID_ToolbarImportanceHigh 223
  584. #define EECMDID_ToolbarImportanceLow 224
  585. #define EECMDID_ToolbarFolderList 225
  586. #define EECMDID_ToolbarOpenParent 226
  587. #define EECMDID_ToolbarInbox 76
  588. #define EECMDID_ToolbarOutbox 77
  589. // Formatting Toolbar
  590. #define EECMDID_Formatting 230
  591. #define EECMDID_FormattingFont 231
  592. #define EECMDID_FormattingSize 232
  593. #define EECMDID_FormattingColor 233
  594. #define EECMDID_FormattingColorAuto 234
  595. #define EECMDID_FormattingColor1 235
  596. #define EECMDID_FormattingColor2 236
  597. #define EECMDID_FormattingColor3 237
  598. #define EECMDID_FormattingColor4 238
  599. #define EECMDID_FormattingColor5 239
  600. #define EECMDID_FormattingColor6 240
  601. #define EECMDID_FormattingColor7 241
  602. #define EECMDID_FormattingColor8 242
  603. #define EECMDID_FormattingColor9 243
  604. #define EECMDID_FormattingColor10 244
  605. #define EECMDID_FormattingColor11 245
  606. #define EECMDID_FormattingColor12 246
  607. #define EECMDID_FormattingColor13 247
  608. #define EECMDID_FormattingColor14 248
  609. #define EECMDID_FormattingColor15 249
  610. #define EECMDID_FormattingColor16 250
  611. #define EECMDID_FormattingBold 251
  612. #define EECMDID_FormattingItalic 252
  613. #define EECMDID_FormattingUnderline 253
  614. #define EECMDID_FormattingBullets 254
  615. #define EECMDID_FormattingDecreaseIndent 255
  616. #define EECMDID_FormattingIncreaseIndent 256
  617. #define EECMDID_FormattingLeft 257
  618. #define EECMDID_FormattingCenter 258
  619. #define EECMDID_FormattingRight 259
  620. // Note accelerators
  621. #define EECMDID_Accel 270
  622. #define EECMDID_AccelFont 271
  623. #define EECMDID_AccelSize 272
  624. #define EECMDID_AccelSizePlus1 273
  625. #define EECMDID_AccelSizeMinus1 274
  626. #define EECMDID_AccelBold 275
  627. #define EECMDID_AccelItalic 276
  628. #define EECMDID_AccelUnderline 277
  629. #define EECMDID_AccelLeft 278
  630. #define EECMDID_AccelCenter 279
  631. #define EECMDID_AccelRight 280
  632. #define EECMDID_AccelBullets 281
  633. #define EECMDID_AccelNoFormatting 282
  634. #define EECMDID_AccelRepeatFind 283
  635. #define EECMDID_AccelContextHelp 284
  636. #define EECMDID_AccelNextWindow 285
  637. #define EECMDID_AccelPrevWindow 286
  638. #define EECMDID_AccelCtrlTab 287
  639. #define EECMDID_AccelUndo 288
  640. #define EECMDID_AccelCut 289
  641. #define EECMDID_AccelCopy 290
  642. #define EECMDID_AccelPaste 291
  643. #define EECMDID_AccelSubject 292
  644. #define EECMDID_AccelContextHelpOff 293
  645. #define EECMDID_AccelDecreaseIndent 294
  646. #define EECMDID_AccelIncreaseIndent 295
  647. #define EECMDID_AccelColor 296
  648. // Edit.Object
  649. #define EECMDID_ObjectMin 300
  650. #define EECMDID_ObjectMax 399
  651. // Tools.Remote Mail
  652. #define EECMDID_RemoteMailMin 600
  653. #define EECMDID_RemoteMailMax 699
  654. // Tools.Deliver Now Using
  655. #define EECMDID_DeliverNowUsingMin 700
  656. #define EECMDID_DeliverNowUsingMax 799
  657. // Form verbs
  658. #define EECMDID_FormVerbMin 800
  659. #define EECMDID_FormVerbMax 899
  660. // For backward compatibility with earlier header versions
  661. #define EECMDID_ViewInbox EECMDID_ToolbarInbox
  662. #define EECMDID_ViewOutbox EECMDID_ToolbarOutbox
  663. #define EECMDID_ViewItemAbove EECMDID_ViewPrevious
  664. #define EECMDID_ViewItemBelow EECMDID_ViewNext
  665. #define EECMDID_ToolsFindItem EECMDID_ToolsFind
  666. #define EECMDID_HelpUsersGuideContents EECMDID_HelpMicrosoftExchangeHelpTopics
  667. #define EECMDID_HelpAbout EECMDID_HelpAboutMicrosoftExchange
  668. #endif // EXCHEXT_H