📄 mapispi.h
字号:
ULONG ulEventMask, \
LPMAPIADVISESINK lpAdviseSink, \
ULONG FAR * lpulConnection) IPURE; \
MAPIMETHOD(Unadvise) \
(THIS_ ULONG ulConnection) IPURE; \
MAPIMETHOD(OpenStatusEntry) \
(THIS_ LPCIID lpInterface, \
ULONG ulFlags, \
ULONG FAR * lpulObjType, \
LPMAPISTATUS FAR * lppEntry) IPURE; \
MAPIMETHOD(OpenTemplateID) \
(THIS_ ULONG cbTemplateID, \
LPENTRYID lpTemplateID, \
ULONG ulTemplateFlags, \
LPMAPIPROP lpMAPIPropData, \
LPCIID lpInterface, \
LPMAPIPROP FAR * lppMAPIPropNew, \
LPMAPIPROP lpMAPIPropSibling) IPURE; \
MAPIMETHOD(GetOneOffTable) \
(THIS_ ULONG ulFlags, \
LPMAPITABLE FAR * lppTable) IPURE; \
MAPIMETHOD(PrepareRecips) \
(THIS_ ULONG ulFlags, \
LPSPropTagArray lpPropTagArray, \
LPADRLIST lpRecipList) IPURE; \
#undef INTERFACE
#define INTERFACE IABLogon
DECLARE_MAPI_INTERFACE_(IABLogon, IUnknown)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IABLOGON_METHODS(PURE)
};
typedef HRESULT (STDMAPIINITCALLTYPE ABPROVIDERINIT)(
HINSTANCE hInstance,
LPMALLOC lpMalloc,
LPALLOCATEBUFFER lpAllocateBuffer,
LPALLOCATEMORE lpAllocateMore,
LPFREEBUFFER lpFreeBuffer,
ULONG ulFlags,
ULONG ulMAPIVer,
ULONG FAR * lpulProviderVer,
LPABPROVIDER FAR * lppABProvider
);
ABPROVIDERINIT ABProviderInit;
/********************************************************************/
/* */
/* TRANSPORT SPI */
/* */
/********************************************************************/
/* For DeinitTransport */
#define DEINIT_NORMAL ((ULONG) 0x00000001)
#define DEINIT_HURRY ((ULONG) 0x80000000)
/* For TransportLogon */
/* Flags that the Spooler may pass to the transport: */
#define LOGON_NO_DIALOG ((ULONG) 0x00000001)
#define LOGON_NO_CONNECT ((ULONG) 0x00000004)
#define LOGON_NO_INBOUND ((ULONG) 0x00000008)
#define LOGON_NO_OUTBOUND ((ULONG) 0x00000010)
/*#define MAPI_UNICODE ((ULONG) 0x80000000) in mapidefs.h */
/* Flags that the transport may pass to the Spooler: */
#define LOGON_SP_IDLE ((ULONG) 0x00010000)
#define LOGON_SP_POLL ((ULONG) 0x00020000)
#define LOGON_SP_RESOLVE ((ULONG) 0x00040000)
DECLARE_MAPI_INTERFACE_PTR(IXPProvider, LPXPPROVIDER);
DECLARE_MAPI_INTERFACE_PTR(IXPLogon, LPXPLOGON);
#define MAPI_IXPPROVIDER_METHODS(IPURE) \
MAPIMETHOD(Shutdown) \
(THIS_ ULONG FAR * lpulFlags) IPURE; \
MAPIMETHOD(TransportLogon) \
(THIS_ LPMAPISUP lpMAPISup, \
ULONG ulUIParam, \
LPTSTR lpszProfileName, \
ULONG FAR * lpulFlags, \
LPMAPIERROR FAR * lppMAPIError, \
LPXPLOGON FAR * lppXPLogon) IPURE; \
#undef INTERFACE
#define INTERFACE IXPProvider
DECLARE_MAPI_INTERFACE_(IXPProvider, IUnknown)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IXPPROVIDER_METHODS(PURE)
};
/* OptionData returned from call to RegisterOptions */
#define OPTION_TYPE_RECIPIENT ((ULONG) 0x00000001)
#define OPTION_TYPE_MESSAGE ((ULONG) 0x00000002)
typedef struct _OPTIONDATA
{
ULONG ulFlags; /* MAPI_RECIPIENT, MAPI_MESSAGE */
LPGUID lpRecipGUID; /* Same as returned by AddressTypes() */
LPTSTR lpszAdrType; /* Same as returned by AddressTypes() */
LPTSTR lpszDLLName; /* Options DLL */
ULONG ulOrdinal; /* Ordinal in that DLL */
ULONG cbOptionsData; /* Count of bytes in lpbOptionsData */
LPBYTE lpbOptionsData; /* Providers per [recip|message] option data */
ULONG cOptionsProps; /* Count of Options default prop values */
LPSPropValue lpOptionsProps; /* Default Options property values */
} OPTIONDATA, FAR *LPOPTIONDATA;
typedef SCODE (STDMAPIINITCALLTYPE OPTIONCALLBACK)(
HINSTANCE hInst,
LPMALLOC lpMalloc,
ULONG ulFlags,
ULONG cbOptionData,
LPBYTE lpbOptionData,
LPMAPISUP lpMAPISup,
LPMAPIPROP lpDataSource,
LPMAPIPROP FAR * lppWrappedSource,
LPMAPIERROR FAR * lppMAPIError);
/* For XP_AddressTypes */
/*#define MAPI_UNICODE ((ULONG) 0x80000000) in mapidefs.h */
/* For XP_RegisterRecipOptions */
/*#define MAPI_UNICODE ((ULONG) 0x80000000) in mapidefs.h */
/* For XP_RegisterMessageOptions */
/*#define MAPI_UNICODE ((ULONG) 0x80000000) in mapidefs.h */
/* For TransportNotify */
#define NOTIFY_ABORT_DEFERRED ((ULONG) 0x40000000)
#define NOTIFY_CANCEL_MESSAGE ((ULONG) 0x80000000)
#define NOTIFY_BEGIN_INBOUND ((ULONG) 0x00000001)
#define NOTIFY_END_INBOUND ((ULONG) 0x00010000)
#define NOTIFY_BEGIN_OUTBOUND ((ULONG) 0x00000002)
#define NOTIFY_END_OUTBOUND ((ULONG) 0x00020000)
#define NOTIFY_BEGIN_INBOUND_FLUSH ((ULONG) 0x00000004)
#define NOTIFY_END_INBOUND_FLUSH ((ULONG) 0x00040000)
#define NOTIFY_BEGIN_OUTBOUND_FLUSH ((ULONG) 0x00000008)
#define NOTIFY_END_OUTBOUND_FLUSH ((ULONG) 0x00080000)
/* For TransportLogoff */
#define LOGOFF_NORMAL ((ULONG) 0x00000001)
#define LOGOFF_HURRY ((ULONG) 0x80000000)
/* For SubmitMessage */
#define BEGIN_DEFERRED ((ULONG) 0x00000001)
/* For EndMessage */
/* Flags that the Spooler may pass to the Transport: */
/* Flags that the transport may pass to the Spooler: */
#define END_RESEND_NOW ((ULONG) 0x00010000)
#define END_RESEND_LATER ((ULONG) 0x00020000)
#define END_DONT_RESEND ((ULONG) 0x00040000)
#define MAPI_IXPLOGON_METHODS(IPURE) \
MAPIMETHOD(AddressTypes) \
(THIS_ ULONG FAR * lpulFlags, \
ULONG FAR * lpcAdrType, \
LPTSTR FAR * FAR * lpppAdrTypeArray, \
ULONG FAR * lpcMAPIUID, \
LPMAPIUID FAR * FAR * lpppUIDArray) IPURE; \
MAPIMETHOD(RegisterOptions) \
(THIS_ ULONG FAR * lpulFlags, \
ULONG FAR * lpcOptions, \
LPOPTIONDATA FAR * lppOptions) IPURE; \
MAPIMETHOD(TransportNotify) \
(THIS_ ULONG FAR * lpulFlags, \
LPVOID FAR * lppvData) IPURE; \
MAPIMETHOD(Idle) \
(THIS_ ULONG ulFlags) IPURE; \
MAPIMETHOD(TransportLogoff) \
(THIS_ ULONG ulFlags) IPURE; \
MAPIMETHOD(SubmitMessage) \
(THIS_ ULONG ulFlags, \
LPMESSAGE lpMessage, \
ULONG FAR * lpulMsgRef, \
ULONG FAR * lpulReturnParm) IPURE; \
MAPIMETHOD(EndMessage) \
(THIS_ ULONG ulMsgRef, \
ULONG FAR * lpulFlags) IPURE; \
MAPIMETHOD(Poll) \
(THIS_ ULONG FAR * lpulIncoming) IPURE; \
MAPIMETHOD(StartMessage) \
(THIS_ ULONG ulFlags, \
LPMESSAGE lpMessage, \
ULONG FAR * lpulMsgRef) IPURE; \
MAPIMETHOD(OpenStatusEntry) \
(THIS_ LPCIID lpInterface, \
ULONG ulFlags, \
ULONG FAR * lpulObjType, \
LPMAPISTATUS FAR * lppEntry) IPURE; \
MAPIMETHOD(ValidateState) \
(THIS_ ULONG ulUIParam, \
ULONG ulFlags) IPURE; \
MAPIMETHOD(FlushQueues) \
(THIS_ ULONG ulUIParam, \
ULONG cbTargetTransport, \
LPENTRYID lpTargetTransport, \
ULONG ulFlags) IPURE; \
#undef INTERFACE
#define INTERFACE IXPLogon
DECLARE_MAPI_INTERFACE_(IXPLogon, IUnknown)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IXPLOGON_METHODS(PURE)
};
/* Transport Provider Entry Point */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -