📄 mapispi.h
字号:
typedef HRESULT (STDMAPIINITCALLTYPE XPPROVIDERINIT)(
HINSTANCE hInstance,
LPMALLOC lpMalloc,
LPALLOCATEBUFFER lpAllocateBuffer,
LPALLOCATEMORE lpAllocateMore,
LPFREEBUFFER lpFreeBuffer,
ULONG ulFlags,
ULONG ulMAPIVer,
ULONG FAR * lpulProviderVer,
LPXPPROVIDER FAR * lppXPProvider);
XPPROVIDERINIT XPProviderInit;
/********************************************************************/
/* */
/* MESSAGE STORE SPI */
/* */
/********************************************************************/
/* Flags and enums */
/* For Logon() */
/*#define MAPI_UNICODE ((ULONG) 0x80000000) in mapidefs.h */
/*#define MDB_NO_DIALOG ((ULONG) 0x00000001) in mapidefs.h */
/*#define MDB_WRITE ((ULONG) 0x00000004) in mapidefs.h */
/*#define MAPI_DEFERRED_ERRORS ((ULONG) 0x00000008) in mapidefs.h */
/*#define MDB_TEMPORARY ((ULONG) 0x00000020) in mapidefs.h */
/*#define MDB_NO_MAIL ((ULONG) 0x00000080) in mapidefs.h */
/* For SpoolerLogon() */
/*#define MAPI_UNICODE ((ULONG) 0x80000000) in mapidefs.h */
/*#define MDB_NO_DIALOG ((ULONG) 0x00000001) in mapidefs.h */
/*#define MDB_WRITE ((ULONG) 0x00000004) in mapidefs.h */
/*#define MAPI_DEFERRED_ERRORS ((ULONG) 0x00000008) in mapidefs.h */
/* GetCredentials, SetCredentials */
#define LOGON_SP_TRANSPORT ((ULONG) 0x00000001)
#define LOGON_SP_PROMPT ((ULONG) 0x00000002)
#define LOGON_SP_NEWPW ((ULONG) 0x00000004)
#define LOGON_CHANGED ((ULONG) 0x00000008)
/* DoMCDialog */
#define DIALOG_FOLDER ((ULONG) 0x00000001)
#define DIALOG_MESSAGE ((ULONG) 0x00000002)
#define DIALOG_PROP ((ULONG) 0x00000004)
#define DIALOG_ATTACH ((ULONG) 0x00000008)
#define DIALOG_MOVE ((ULONG) 0x00000010)
#define DIALOG_COPY ((ULONG) 0x00000020)
#define DIALOG_DELETE ((ULONG) 0x00000040)
#define DIALOG_ALLOW_CANCEL ((ULONG) 0x00000080)
#define DIALOG_CONFIRM_CANCEL ((ULONG) 0x00000100)
/* ExpandRecips */
#define NEEDS_PREPROCESSING ((ULONG) 0x00000001)
#define NEEDS_SPOOLER ((ULONG) 0x00000002)
/* PrepareSubmit */
#define CHECK_SENDER ((ULONG) 0x00000001)
#define NON_STANDARD ((ULONG) 0x00010000)
DECLARE_MAPI_INTERFACE_PTR(IMSLogon, LPMSLOGON);
DECLARE_MAPI_INTERFACE_PTR(IMSProvider, LPMSPROVIDER);
/* Message Store Provider Interface (IMSPROVIDER) */
#define MAPI_IMSPROVIDER_METHODS(IPURE) \
MAPIMETHOD(Shutdown) \
(THIS_ ULONG FAR * lpulFlags) IPURE; \
MAPIMETHOD(Logon) \
(THIS_ LPMAPISUP lpMAPISup, \
ULONG ulUIParam, \
LPTSTR lpszProfileName, \
ULONG cbEntryID, \
LPENTRYID lpEntryID, \
ULONG ulFlags, \
LPCIID lpInterface, \
ULONG FAR * lpcbSpoolSecurity, \
LPBYTE FAR * lppbSpoolSecurity, \
LPMAPIERROR FAR * lppMAPIError, \
LPMSLOGON FAR * lppMSLogon, \
LPMDB FAR * lppMDB) IPURE; \
MAPIMETHOD(SpoolerLogon) \
(THIS_ LPMAPISUP lpMAPISup, \
ULONG ulUIParam, \
LPTSTR lpszProfileName, \
ULONG cbEntryID, \
LPENTRYID lpEntryID, \
ULONG ulFlags, \
LPCIID lpInterface, \
ULONG cbSpoolSecurity, \
LPBYTE lpbSpoolSecurity, \
LPMAPIERROR FAR * lppMAPIError, \
LPMSLOGON FAR * lppMSLogon, \
LPMDB FAR * lppMDB) IPURE; \
MAPIMETHOD(CompareStoreIDs) \
(THIS_ ULONG cbEntryID1, \
LPENTRYID lpEntryID1, \
ULONG cbEntryID2, \
LPENTRYID lpEntryID2, \
ULONG ulFlags, \
ULONG FAR * lpulResult) IPURE; \
#undef INTERFACE
#define INTERFACE IMSProvider
DECLARE_MAPI_INTERFACE_(IMSProvider, IUnknown)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IMSPROVIDER_METHODS(PURE)
};
/* The MSLOGON object is returned by the Logon() method of the
* MSPROVIDER interface. This object is for use by MAPIX.DLL.
*/
#define MAPI_IMSLOGON_METHODS(IPURE) \
MAPIMETHOD(GetLastError) \
(THIS_ HRESULT hResult, \
ULONG ulFlags, \
LPMAPIERROR FAR * lppMAPIError) IPURE; \
MAPIMETHOD(Logoff) \
(THIS_ ULONG FAR * lpulFlags) IPURE; \
MAPIMETHOD(OpenEntry) \
(THIS_ ULONG cbEntryID, \
LPENTRYID lpEntryID, \
LPCIID lpInterface, \
ULONG ulFlags, \
ULONG FAR * lpulObjType, \
LPUNKNOWN FAR * lppUnk) IPURE; \
MAPIMETHOD(CompareEntryIDs) \
(THIS_ ULONG cbEntryID1, \
LPENTRYID lpEntryID1, \
ULONG cbEntryID2, \
LPENTRYID lpEntryID2, \
ULONG ulFlags, \
ULONG FAR * lpulResult) IPURE; \
MAPIMETHOD(Advise) \
(THIS_ ULONG cbEntryID, \
LPENTRYID lpEntryID, \
ULONG ulEventMask, \
LPMAPIADVISESINK lpAdviseSink, \
ULONG FAR * lpulConnection) IPURE; \
MAPIMETHOD(Unadvise) \
(THIS_ ULONG ulConnection) IPURE; \
MAPIMETHOD(OpenStatusEntry) \
(THIS_ LPCIID lpInterface, \
ULONG ulFlags, \
ULONG FAR * lpulObjType, \
LPVOID FAR * lppEntry) IPURE; \
#undef INTERFACE
#define INTERFACE IMSLogon
DECLARE_MAPI_INTERFACE_(IMSLogon, IUnknown)
{
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IMSLOGON_METHODS(PURE)
};
/* Message Store Provider Entry Point */
typedef HRESULT (STDMAPIINITCALLTYPE MSPROVIDERINIT)(
HINSTANCE hInstance,
LPMALLOC lpMalloc, /* AddRef() if you keep it */
LPALLOCATEBUFFER lpAllocateBuffer, /* -> AllocateBuffer */
LPALLOCATEMORE lpAllocateMore, /* -> AllocateMore */
LPFREEBUFFER lpFreeBuffer, /* -> FreeBuffer */
ULONG ulFlags,
ULONG ulMAPIVer,
ULONG FAR * lpulProviderVer,
LPMSPROVIDER FAR * lppMSProvider
);
MSPROVIDERINIT MSProviderInit;
/********************************************************************/
/* */
/* MESSAGE SERVICE CONFIGURATION */
/* */
/********************************************************************/
/* Flags for service configuration entry point */
/* #define MAPI_UNICODE 0x80000000 */
/* #define SERVICE_UI_ALWAYS 0x00000002 */
/* #define SERVICE_UI_ALLOWED 0x00000010 */
#define MSG_SERVICE_UI_READ_ONLY 0x00000008 /* display parameters only */
#define SERVICE_LOGON_FAILED 0x00000020 /* reconfigure provider */
/* Contexts for service configuration entry point */
#define MSG_SERVICE_INSTALL 0x00000001
#define MSG_SERVICE_CREATE 0x00000002
#define MSG_SERVICE_CONFIGURE 0x00000003
#define MSG_SERVICE_DELETE 0x00000004
#define MSG_SERVICE_UNINSTALL 0x00000005
#define MSG_SERVICE_PROVIDER_CREATE 0x00000006
#define MSG_SERVICE_PROVIDER_DELETE 0x00000007
/* Prototype for service configuration entry point */
typedef HRESULT (STDAPICALLTYPE MSGSERVICEENTRY)(
HINSTANCE hInstance,
LPMALLOC lpMalloc,
LPMAPISUP lpMAPISup,
ULONG ulUIParam,
ULONG ulFlags,
ULONG ulContext,
ULONG cValues,
LPSPropValue lpProps,
LPPROVIDERADMIN lpProviderAdmin,
LPMAPIERROR FAR *lppMapiError
);
typedef MSGSERVICEENTRY FAR *LPMSGSERVICEENTRY;
#ifdef __cplusplus
}
#endif
#endif /* MAPISPI_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -