MAPIHook.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /*
  2. * M A P I H O O K . H
  3. *
  4. * Defines the SpoolerMsgHook provider interface.
  5. *
  6. * Copyright 1986-1999 Microsoft Corporation. All Rights Reserved.
  7. */
  8. #ifndef MAPIHOOK_H
  9. #define MAPIHOOK_H
  10. #ifndef MAPIDEFS_H
  11. #include <mapidefs.h>
  12. #include <mapicode.h>
  13. #include <mapiguid.h>
  14. #include <mapitags.h>
  15. #endif
  16. #ifndef BEGIN_INTERFACE
  17. #define BEGIN_INTERFACE
  18. #endif
  19. #ifdef __cplusplus
  20. extern "C" {
  21. #endif
  22. /* ISpoolerHook Interface ------------------------------------------------ */
  23. /* MsgHooks */
  24. #define HOOK_DELETE ((ULONG) 0x00000001)
  25. #define HOOK_CANCEL ((ULONG) 0x00000002)
  26. #define MAPI_ISPOOLERHOOK_METHODS(IPURE) \
  27. MAPIMETHOD(InboundMsgHook) \
  28. (THIS_ LPMESSAGE lpMessage, \
  29. LPMAPIFOLDER lpFolder, \
  30. LPMDB lpMDB, \
  31. ULONG FAR * lpulFlags, \
  32. ULONG FAR * lpcbEntryID, \
  33. LPBYTE FAR * lppEntryID) IPURE; \
  34. MAPIMETHOD(OutboundMsgHook) \
  35. (THIS_ LPMESSAGE lpMessage, \
  36. LPMAPIFOLDER lpFolder, \
  37. LPMDB lpMDB, \
  38. ULONG FAR * lpulFlags, \
  39. ULONG FAR * lpcbEntryID, \
  40. LPBYTE FAR * lppEntryID) IPURE; \
  41. #undef INTERFACE
  42. #define INTERFACE ISpoolerHook
  43. DECLARE_MAPI_INTERFACE_(ISpoolerHook, IUnknown)
  44. {
  45. BEGIN_INTERFACE
  46. MAPI_IUNKNOWN_METHODS(PURE)
  47. MAPI_ISPOOLERHOOK_METHODS(PURE)
  48. };
  49. DECLARE_MAPI_INTERFACE_PTR(ISpoolerHook, LPSPOOLERHOOK);
  50. /* Hook Provider Entry Point */
  51. #define HOOK_INBOUND ((ULONG) 0x00000200)
  52. #define HOOK_OUTBOUND ((ULONG) 0x00000400)
  53. typedef HRESULT (STDMAPIINITCALLTYPE HPPROVIDERINIT)(
  54. LPMAPISESSION lpSession,
  55. HINSTANCE hInstance,
  56. LPALLOCATEBUFFER lpAllocateBuffer,
  57. LPALLOCATEMORE lpAllocateMore,
  58. LPFREEBUFFER lpFreeBuffer,
  59. LPMAPIUID lpSectionUID,
  60. ULONG ulFlags,
  61. LPSPOOLERHOOK FAR * lppSpoolerHook
  62. );
  63. HPPROVIDERINIT HPProviderInit;
  64. #ifdef __cplusplus
  65. } /* extern "C" */
  66. #endif /* __cplusplus */
  67. #endif /* MAPIHOOK_H */