| 1 |
/** |
| 2 |
* This file has no copyright assigned and is placed in the Public Domain. |
| 3 |
* This file is part of the mingw-w64 runtime package. |
| 4 |
* No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| 5 |
*/ |
| 6 |
#ifndef MAPIHOOK_H |
| 7 |
#define MAPIHOOK_H |
| 8 |
|
| 9 |
#include <mapidefs.h> |
| 10 |
#include <mapicode.h> |
| 11 |
#include <mapiguid.h> |
| 12 |
#include <mapitags.h> |
| 13 |
|
| 14 |
#ifndef BEGIN_INTERFACE |
| 15 |
#define BEGIN_INTERFACE |
| 16 |
#endif |
| 17 |
|
| 18 |
#ifdef __cplusplus |
| 19 |
extern "C" { |
| 20 |
#endif |
| 21 |
|
| 22 |
#define HOOK_DELETE ((ULONG) 0x00000001) |
| 23 |
#define HOOK_CANCEL ((ULONG) 0x00000002) |
| 24 |
|
| 25 |
#define MAPI_ISPOOLERHOOK_METHODS(IPURE) MAPIMETHOD(InboundMsgHook) (THIS_ LPMESSAGE lpMessage,LPMAPIFOLDER lpFolder,LPMDB lpMDB,ULONG *lpulFlags,ULONG *lpcbEntryID,LPBYTE *lppEntryID) IPURE; MAPIMETHOD(OutboundMsgHook) (THIS_ LPMESSAGE lpMessage,LPMAPIFOLDER lpFolder,LPMDB lpMDB,ULONG *lpulFlags,ULONG *lpcbEntryID,LPBYTE *lppEntryID) IPURE; |
| 26 |
#undef INTERFACE |
| 27 |
#define INTERFACE ISpoolerHook |
| 28 |
DECLARE_MAPI_INTERFACE_(ISpoolerHook,IUnknown) { |
| 29 |
BEGIN_INTERFACE |
| 30 |
MAPI_IUNKNOWN_METHODS(PURE) |
| 31 |
MAPI_ISPOOLERHOOK_METHODS(PURE) |
| 32 |
}; |
| 33 |
|
| 34 |
DECLARE_MAPI_INTERFACE_PTR(ISpoolerHook,LPSPOOLERHOOK); |
| 35 |
|
| 36 |
#define HOOK_INBOUND ((ULONG) 0x00000200) |
| 37 |
#define HOOK_OUTBOUND ((ULONG) 0x00000400) |
| 38 |
|
| 39 |
typedef HRESULT (__cdecl HPPROVIDERINIT)(LPMAPISESSION lpSession,HINSTANCE hInstance,LPALLOCATEBUFFER lpAllocateBuffer,LPALLOCATEMORE lpAllocateMore,LPFREEBUFFER lpFreeBuffer,LPMAPIUID lpSectionUID,ULONG ulFlags,LPSPOOLERHOOK *lppSpoolerHook); |
| 40 |
|
| 41 |
HPPROVIDERINIT HPProviderInit; |
| 42 |
|
| 43 |
#ifdef __cplusplus |
| 44 |
} |
| 45 |
#endif |
| 46 |
#endif |