MAPIHook.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:3k
源码类别:

模拟服务器

开发平台:

C/C++

  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.     
  42. #undef       INTERFACE
  43. #define      INTERFACE  ISpoolerHook
  44. DECLARE_MAPI_INTERFACE_(ISpoolerHook, IUnknown)
  45. {
  46.     BEGIN_INTERFACE 
  47.     MAPI_IUNKNOWN_METHODS(PURE)
  48.     MAPI_ISPOOLERHOOK_METHODS(PURE)
  49. };
  50. DECLARE_MAPI_INTERFACE_PTR(ISpoolerHook, LPSPOOLERHOOK);
  51. /* Hook Provider Entry Point */
  52. #define HOOK_INBOUND        ((ULONG) 0x00000200)
  53. #define HOOK_OUTBOUND       ((ULONG) 0x00000400)
  54. typedef HRESULT (STDMAPIINITCALLTYPE HPPROVIDERINIT)(
  55.     LPMAPISESSION           lpSession,
  56.     HINSTANCE               hInstance,
  57.     LPALLOCATEBUFFER        lpAllocateBuffer,
  58.     LPALLOCATEMORE          lpAllocateMore,
  59.     LPFREEBUFFER            lpFreeBuffer,
  60.     LPMAPIUID               lpSectionUID,
  61.     ULONG                   ulFlags,
  62.     LPSPOOLERHOOK FAR *     lppSpoolerHook
  63. );
  64. HPPROVIDERINIT HPProviderInit;
  65. #ifdef __cplusplus
  66. }      /* extern "C"  */
  67. #endif /* __cplusplus */
  68. #endif /* MAPIHOOK_H  */