/usr/i686-w64-mingw32/include/mapispi.h is in mingw-w64-i686-dev 2.0.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 | /**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef MAPISPI_H
#define MAPISPI_H
#include <mapidefs.h>
#include <mapicode.h>
#include <mapiguid.h>
#include <mapitags.h>
#ifndef BEGIN_INTERFACE
#define BEGIN_INTERFACE
#endif
#ifdef __cplusplus
extern "C" {
#endif
#define CURRENT_SPI_VERSION 0x00010010L
#define PDK1_SPI_VERSION 0x00010000L
#define PDK2_SPI_VERSION 0x00010008L
#define PDK3_SPI_VERSION 0x00010010L
DECLARE_MAPI_INTERFACE_PTR(IMAPISupport,LPMAPISUP);
typedef struct {
ULONG cb;
BYTE ab[MAPI_DIM];
} NOTIFKEY,*LPNOTIFKEY;
#define CbNewNOTIFKEY(_cb) (offsetof(NOTIFKEY,ab) + (_cb))
#define CbNOTIFKEY(_lpkey) (offsetof(NOTIFKEY,ab) + (_lpkey)->cb)
#define SizedNOTIFKEY(_cb,_name) struct _NOTIFKEY_ ## _name { ULONG cb; BYTE ab[_cb]; } _name
#define NOTIFY_SYNC ((ULONG) 0x40000000)
#define NOTIFY_CANCELED ((ULONG) 0x80000000)
#define CALLBACK_DISCONTINUE ((ULONG) 0x80000000)
#define NOTIFY_NEWMAIL ((ULONG) 0x00000001)
#define NOTIFY_READYTOSEND ((ULONG) 0x00000002)
#define NOTIFY_SENTDEFERRED ((ULONG) 0x00000004)
#define NOTIFY_CRITSEC ((ULONG) 0x00001000)
#define NOTIFY_NONCRIT ((ULONG) 0x00002000)
#define NOTIFY_CONFIG_CHANGE ((ULONG) 0x00004000)
#define NOTIFY_CRITICAL_ERROR ((ULONG) 0x10000000)
#define NOTIFY_NEWMAIL_RECEIVED ((ULONG) 0x20000000)
#define STATUSROW_UPDATE ((ULONG) 0x10000000)
#define STGSTRM_RESET ((ULONG) 0x00000000)
#define STGSTRM_CURRENT ((ULONG) 0x10000000)
#define STGSTRM_MODIFY ((ULONG) 0x00000002)
#define STGSTRM_CREATE ((ULONG) 0x00001000)
#define MAPI_NON_READ ((ULONG) 0x00000001)
typedef HRESULT (WINAPI PREPROCESSMESSAGE)(LPVOID lpvSession,LPMESSAGE lpMessage,LPADRBOOK lpAdrBook,LPMAPIFOLDER lpFolder,LPALLOCATEBUFFER AllocateBuffer,LPALLOCATEMORE AllocateMore,LPFREEBUFFER FreeBuffer,ULONG *lpcOutbound,LPMESSAGE **lpppMessage,LPADRLIST *lppRecipList);
typedef HRESULT (WINAPI REMOVEPREPROCESSINFO)(LPMESSAGE lpMessage);
#define MAPI_IMAPISUPPORT_METHODS1(IPURE) MAPIMETHOD(GetLastError) (THIS_ HRESULT hResult,ULONG ulFlags,LPMAPIERROR *lppMAPIError) IPURE; MAPIMETHOD(GetMemAllocRoutines) (THIS_ LPALLOCATEBUFFER *lpAllocateBuffer,LPALLOCATEMORE *lpAllocateMore,LPFREEBUFFER *lpFreeBuffer) IPURE; MAPIMETHOD(Subscribe) (THIS_ LPNOTIFKEY lpKey,ULONG ulEventMask,ULONG ulFlags,LPMAPIADVISESINK lpAdviseSink,ULONG *lpulConnection) IPURE; MAPIMETHOD(Unsubscribe) (THIS_ ULONG ulConnection) IPURE; MAPIMETHOD(Notify) (THIS_ LPNOTIFKEY lpKey,ULONG cNotification,LPNOTIFICATION lpNotifications,ULONG *lpulFlags) IPURE; MAPIMETHOD(ModifyStatusRow) (THIS_ ULONG cValues,LPSPropValue lpColumnVals,ULONG ulFlags) IPURE; MAPIMETHOD(OpenProfileSection) (THIS_ LPMAPIUID lpUid,ULONG ulFlags,LPPROFSECT *lppProfileObj) IPURE; MAPIMETHOD(RegisterPreprocessor) (THIS_ LPMAPIUID lpMuid,LPTSTR lpszAdrType,LPTSTR lpszDLLName,LPSTR lpszPreprocess,LPSTR lpszRemovePreprocessInfo,ULONG ulFlags) IPURE; MAPIMETHOD(NewUID) (THIS_ LPMAPIUID lpMuid) IPURE; MAPIMETHOD(MakeInvalid) (THIS_ ULONG ulFlags,LPVOID lpObject,ULONG ulRefCount,ULONG cMethods) IPURE;
#define MAPI_IMAPISUPPORT_METHODS2(IPURE) MAPIMETHOD(SpoolerYield) (THIS_ ULONG ulFlags) IPURE; MAPIMETHOD(SpoolerNotify) (THIS_ ULONG ulFlags,LPVOID lpvData) IPURE; MAPIMETHOD(CreateOneOff) (THIS_ LPTSTR lpszName,LPTSTR lpszAdrType,LPTSTR lpszAddress,ULONG ulFlags,ULONG *lpcbEntryID,LPENTRYID *lppEntryID) IPURE; MAPIMETHOD(SetProviderUID) (THIS_ LPMAPIUID lpProviderID,ULONG ulFlags) IPURE; MAPIMETHOD(CompareEntryIDs) (THIS_ ULONG cbEntry1,LPENTRYID lpEntry1,ULONG cbEntry2,LPENTRYID lpEntry2,ULONG ulCompareFlags,ULONG *lpulResult) IPURE; MAPIMETHOD(OpenTemplateID) (THIS_ ULONG cbTemplateID,LPENTRYID lpTemplateID,ULONG ulTemplateFlags,LPMAPIPROP lpMAPIPropData,LPCIID lpInterface,LPMAPIPROP *lppMAPIPropNew,LPMAPIPROP lpMAPIPropSibling) IPURE; MAPIMETHOD(OpenEntry) (THIS_ ULONG cbEntryID,LPENTRYID lpEntryID,LPCIID lpInterface,ULONG ulOpenFlags,ULONG *lpulObjType,LPUNKNOWN *lppUnk) IPURE; MAPIMETHOD(GetOneOffTable) (THIS_ ULONG ulFlags,LPMAPITABLE *lppTable) IPURE; MAPIMETHOD(Address) (THIS_ ULONG *lpulUIParam,LPADRPARM lpAdrParms,LPADRLIST *lppAdrList) IPURE; MAPIMETHOD(Details) (THIS_ ULONG *lpulUIParam,LPFNDISMISS lpfnDismiss,LPVOID lpvDismissContext,ULONG cbEntryID,LPENTRYID lpEntryID,LPFNBUTTON lpfButtonCallback,LPVOID lpvButtonContext,LPTSTR lpszButtonText,ULONG ulFlags) IPURE; MAPIMETHOD(NewEntry) (THIS_ ULONG ulUIParam,ULONG ulFlags,ULONG cbEIDContainer,LPENTRYID lpEIDContainer,ULONG cbEIDNewEntryTpl,LPENTRYID lpEIDNewEntryTpl,ULONG *lpcbEIDNewEntry,LPENTRYID *lppEIDNewEntry) IPURE; MAPIMETHOD(DoConfigPropsheet) (THIS_ ULONG ulUIParam,ULONG ulFlags,LPTSTR lpszTitle,LPMAPITABLE lpDisplayTable,LPMAPIPROP lpCOnfigData,ULONG ulTopPage) IPURE; MAPIMETHOD(CopyMessages) (THIS_ LPCIID lpSrcInterface,LPVOID lpSrcFolder,LPENTRYLIST lpMsgList,LPCIID lpDestInterface,LPVOID lpDestFolder,ULONG ulUIParam,LPMAPIPROGRESS lpProgress,ULONG ulFlags) IPURE; MAPIMETHOD(CopyFolder) (THIS_ LPCIID lpSrcInterface,LPVOID lpSrcFolder,ULONG cbEntryID,LPENTRYID lpEntryID,LPCIID lpDestInterface,LPVOID lpDestFolder,LPTSTR lszNewFolderName,ULONG ulUIParam,LPMAPIPROGRESS lpProgress,ULONG ulFlags) IPURE;
#define MAPI_IMAPISUPPORT_METHODS3(IPURE) MAPIMETHOD(DoCopyTo) (THIS_ LPCIID lpSrcInterface,LPVOID lpSrcObj,ULONG ciidExclude,LPCIID rgiidExclude,LPSPropTagArray lpExcludeProps,ULONG ulUIParam,LPMAPIPROGRESS lpProgress,LPCIID lpDestInterface,LPVOID lpDestObj,ULONG ulFlags,LPSPropProblemArray *lppProblems) IPURE; MAPIMETHOD(DoCopyProps) (THIS_ LPCIID lpSrcInterface,LPVOID lpSrcObj,LPSPropTagArray lpIncludeProps,ULONG ulUIParam,LPMAPIPROGRESS lpProgress,LPCIID lpDestInterface,LPVOID lpDestObj,ULONG ulFlags,LPSPropProblemArray *lppProblems) IPURE; MAPIMETHOD(DoProgressDialog) (THIS_ ULONG ulUIParam,ULONG ulFlags,LPMAPIPROGRESS *lppProgress) IPURE; MAPIMETHOD(ReadReceipt) (THIS_ ULONG ulFlags,LPMESSAGE lpReadMessage,LPMESSAGE *lppEmptyMessage) IPURE; MAPIMETHOD(PrepareSubmit) (THIS_ LPMESSAGE lpMessage,ULONG *lpulFlags) IPURE; MAPIMETHOD(ExpandRecips) (THIS_ LPMESSAGE lpMessage,ULONG *lpulFlags) IPURE; MAPIMETHOD(UpdatePAB) (THIS_ ULONG ulFlags,LPMESSAGE lpMessage) IPURE; MAPIMETHOD(DoSentMail) (THIS_ ULONG ulFlags,LPMESSAGE lpMessage) IPURE; MAPIMETHOD(OpenAddressBook) (THIS_ LPCIID lpInterface,ULONG ulFlags,LPADRBOOK *lppAdrBook) IPURE; MAPIMETHOD(Preprocess) (THIS_ ULONG ulFlags,ULONG cbEntryID,LPENTRYID lpEntryID) IPURE; MAPIMETHOD(CompleteMsg) (THIS_ ULONG ulFlags,ULONG cbEntryID,LPENTRYID lpEntryID) IPURE; MAPIMETHOD(StoreLogoffTransports) (THIS_ ULONG *lpulFlags) IPURE; MAPIMETHOD(StatusRecips) (THIS_ LPMESSAGE lpMessage,LPADRLIST lpRecipList) IPURE; MAPIMETHOD(WrapStoreEntryID) (THIS_ ULONG cbOrigEntry,LPENTRYID lpOrigEntry,ULONG *lpcbWrappedEntry,LPENTRYID *lppWrappedEntry) IPURE; MAPIMETHOD(ModifyProfile) (THIS_ ULONG ulFlags) IPURE; MAPIMETHOD(IStorageFromStream) (THIS_ LPUNKNOWN lpUnkIn,LPCIID lpInterface,ULONG ulFlags,LPSTORAGE *lppStorageOut) IPURE; MAPIMETHOD(GetSvcConfigSupportObj) (THIS_ ULONG ulFlags,LPMAPISUP *lppSvcSupport) IPURE;
#undef INTERFACE
#define INTERFACE IMAPISupport
DECLARE_MAPI_INTERFACE_(IMAPISupport,IUnknown) {
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IMAPISUPPORT_METHODS1(PURE)
MAPI_IMAPISUPPORT_METHODS2(PURE)
MAPI_IMAPISUPPORT_METHODS3(PURE)
};
#define FILL_ENTRY ((ULONG) 0x00000001)
DECLARE_MAPI_INTERFACE_PTR(IABProvider,LPABPROVIDER);
DECLARE_MAPI_INTERFACE_PTR(IABLogon,LPABLOGON);
#define MAPI_IABPROVIDER_METHODS(IPURE) MAPIMETHOD(Shutdown) (THIS_ ULONG *lpulFlags) IPURE; MAPIMETHOD(Logon) (THIS_ LPMAPISUP lpMAPISup,ULONG ulUIParam,LPTSTR lpszProfileName,ULONG ulFlags,ULONG *lpulpcbSecurity,LPBYTE *lppbSecurity,LPMAPIERROR *lppMAPIError,LPABLOGON *lppABLogon) IPURE;
#undef INTERFACE
#define INTERFACE IABProvider
DECLARE_MAPI_INTERFACE_(IABProvider,IUnknown) {
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IABPROVIDER_METHODS(PURE)
};
#define MAPI_IABLOGON_METHODS(IPURE) MAPIMETHOD(GetLastError) (THIS_ HRESULT hResult,ULONG ulFlags,LPMAPIERROR *lppMAPIError) IPURE; MAPIMETHOD(Logoff) (THIS_ ULONG ulFlags) IPURE; MAPIMETHOD(OpenEntry) (THIS_ ULONG cbEntryID,LPENTRYID lpEntryID,LPCIID lpInterface,ULONG ulFlags,ULONG *lpulObjType,LPUNKNOWN *lppUnk) IPURE; MAPIMETHOD(CompareEntryIDs) (THIS_ ULONG cbEntryID1,LPENTRYID lpEntryID1,ULONG cbEntryID2,LPENTRYID lpEntryID2,ULONG ulFlags,ULONG *lpulResult) IPURE; MAPIMETHOD(Advise) (THIS_ ULONG cbEntryID,LPENTRYID lpEntryID,ULONG ulEventMask,LPMAPIADVISESINK lpAdviseSink,ULONG *lpulConnection) IPURE; MAPIMETHOD(Unadvise) (THIS_ ULONG ulConnection) IPURE; MAPIMETHOD(OpenStatusEntry) (THIS_ LPCIID lpInterface,ULONG ulFlags,ULONG *lpulObjType,LPMAPISTATUS *lppEntry) IPURE; MAPIMETHOD(OpenTemplateID) (THIS_ ULONG cbTemplateID,LPENTRYID lpTemplateID,ULONG ulTemplateFlags,LPMAPIPROP lpMAPIPropData,LPCIID lpInterface,LPMAPIPROP *lppMAPIPropNew,LPMAPIPROP lpMAPIPropSibling) IPURE; MAPIMETHOD(GetOneOffTable) (THIS_ ULONG ulFlags,LPMAPITABLE *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 (__cdecl ABPROVIDERINIT)(HINSTANCE hInstance,LPMALLOC lpMalloc,LPALLOCATEBUFFER lpAllocateBuffer,LPALLOCATEMORE lpAllocateMore,LPFREEBUFFER lpFreeBuffer,ULONG ulFlags,ULONG ulMAPIVer,ULONG *lpulProviderVer,LPABPROVIDER *lppABProvider);
ABPROVIDERINIT ABProviderInit;
#define DEINIT_NORMAL ((ULONG) 0x00000001)
#define DEINIT_HURRY ((ULONG) 0x80000000)
#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 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 *lpulFlags) IPURE; MAPIMETHOD(TransportLogon) (THIS_ LPMAPISUP lpMAPISup,ULONG ulUIParam,LPTSTR lpszProfileName,ULONG *lpulFlags,LPMAPIERROR *lppMAPIError,LPXPLOGON *lppXPLogon) IPURE;
#undef INTERFACE
#define INTERFACE IXPProvider
DECLARE_MAPI_INTERFACE_(IXPProvider,IUnknown) {
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IXPPROVIDER_METHODS(PURE)
};
#define OPTION_TYPE_RECIPIENT ((ULONG) 0x00000001)
#define OPTION_TYPE_MESSAGE ((ULONG) 0x00000002)
typedef struct _OPTIONDATA {
ULONG ulFlags;
LPGUID lpRecipGUID;
LPTSTR lpszAdrType;
LPTSTR lpszDLLName;
ULONG ulOrdinal;
ULONG cbOptionsData;
LPBYTE lpbOptionsData;
ULONG cOptionsProps;
LPSPropValue lpOptionsProps;
} OPTIONDATA,*LPOPTIONDATA;
typedef SCODE (__cdecl OPTIONCALLBACK)(HINSTANCE hInst,LPMALLOC lpMalloc,ULONG ulFlags,ULONG cbOptionData,LPBYTE lpbOptionData,LPMAPISUP lpMAPISup,LPMAPIPROP lpDataSource,LPMAPIPROP *lppWrappedSource,LPMAPIERROR *lppMAPIError);
#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)
#define LOGOFF_NORMAL ((ULONG) 0x00000001)
#define LOGOFF_HURRY ((ULONG) 0x80000000)
#define BEGIN_DEFERRED ((ULONG) 0x00000001)
#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 *lpulFlags,ULONG *lpcAdrType,LPTSTR **lpppAdrTypeArray,ULONG *lpcMAPIUID,LPMAPIUID **lpppUIDArray) IPURE; MAPIMETHOD(RegisterOptions) (THIS_ ULONG *lpulFlags,ULONG *lpcOptions,LPOPTIONDATA *lppOptions) IPURE; MAPIMETHOD(TransportNotify) (THIS_ ULONG *lpulFlags,LPVOID *lppvData) IPURE; MAPIMETHOD(Idle) (THIS_ ULONG ulFlags) IPURE; MAPIMETHOD(TransportLogoff) (THIS_ ULONG ulFlags) IPURE; MAPIMETHOD(SubmitMessage) (THIS_ ULONG ulFlags,LPMESSAGE lpMessage,ULONG *lpulMsgRef,ULONG *lpulReturnParm) IPURE; MAPIMETHOD(EndMessage) (THIS_ ULONG ulMsgRef,ULONG *lpulFlags) IPURE; MAPIMETHOD(Poll) (THIS_ ULONG *lpulIncoming) IPURE; MAPIMETHOD(StartMessage) (THIS_ ULONG ulFlags,LPMESSAGE lpMessage,ULONG *lpulMsgRef) IPURE; MAPIMETHOD(OpenStatusEntry) (THIS_ LPCIID lpInterface,ULONG ulFlags,ULONG *lpulObjType,LPMAPISTATUS *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)
};
typedef HRESULT (__cdecl XPPROVIDERINIT)(HINSTANCE hInstance,LPMALLOC lpMalloc,LPALLOCATEBUFFER lpAllocateBuffer,LPALLOCATEMORE lpAllocateMore,LPFREEBUFFER lpFreeBuffer,ULONG ulFlags,ULONG ulMAPIVer,ULONG *lpulProviderVer,LPXPPROVIDER *lppXPProvider);
XPPROVIDERINIT XPProviderInit;
#define LOGON_SP_TRANSPORT ((ULONG) 0x00000001)
#define LOGON_SP_PROMPT ((ULONG) 0x00000002)
#define LOGON_SP_NEWPW ((ULONG) 0x00000004)
#define LOGON_CHANGED ((ULONG) 0x00000008)
#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)
#define NEEDS_PREPROCESSING ((ULONG) 0x00000001)
#define NEEDS_SPOOLER ((ULONG) 0x00000002)
#define CHECK_SENDER ((ULONG) 0x00000001)
#define NON_STANDARD ((ULONG) 0x00010000)
DECLARE_MAPI_INTERFACE_PTR(IMSLogon,LPMSLOGON);
DECLARE_MAPI_INTERFACE_PTR(IMSProvider,LPMSPROVIDER);
#define MAPI_IMSPROVIDER_METHODS(IPURE) MAPIMETHOD(Shutdown) (THIS_ ULONG *lpulFlags) IPURE; MAPIMETHOD(Logon) (THIS_ LPMAPISUP lpMAPISup,ULONG ulUIParam,LPTSTR lpszProfileName,ULONG cbEntryID,LPENTRYID lpEntryID,ULONG ulFlags,LPCIID lpInterface,ULONG *lpcbSpoolSecurity,LPBYTE *lppbSpoolSecurity,LPMAPIERROR *lppMAPIError,LPMSLOGON *lppMSLogon,LPMDB *lppMDB) IPURE; MAPIMETHOD(SpoolerLogon) (THIS_ LPMAPISUP lpMAPISup,ULONG ulUIParam,LPTSTR lpszProfileName,ULONG cbEntryID,LPENTRYID lpEntryID,ULONG ulFlags,LPCIID lpInterface,ULONG cbSpoolSecurity,LPBYTE lpbSpoolSecurity,LPMAPIERROR *lppMAPIError,LPMSLOGON *lppMSLogon,LPMDB *lppMDB) IPURE; MAPIMETHOD(CompareStoreIDs) (THIS_ ULONG cbEntryID1,LPENTRYID lpEntryID1,ULONG cbEntryID2,LPENTRYID lpEntryID2,ULONG ulFlags,ULONG *lpulResult) IPURE;
#undef INTERFACE
#define INTERFACE IMSProvider
DECLARE_MAPI_INTERFACE_(IMSProvider,IUnknown) {
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IMSPROVIDER_METHODS(PURE)
};
#define MAPI_IMSLOGON_METHODS(IPURE) MAPIMETHOD(GetLastError) (THIS_ HRESULT hResult,ULONG ulFlags,LPMAPIERROR *lppMAPIError) IPURE; MAPIMETHOD(Logoff) (THIS_ ULONG *lpulFlags) IPURE; MAPIMETHOD(OpenEntry) (THIS_ ULONG cbEntryID,LPENTRYID lpEntryID,LPCIID lpInterface,ULONG ulFlags,ULONG *lpulObjType,LPUNKNOWN *lppUnk) IPURE; MAPIMETHOD(CompareEntryIDs) (THIS_ ULONG cbEntryID1,LPENTRYID lpEntryID1,ULONG cbEntryID2,LPENTRYID lpEntryID2,ULONG ulFlags,ULONG *lpulResult) IPURE; MAPIMETHOD(Advise) (THIS_ ULONG cbEntryID,LPENTRYID lpEntryID,ULONG ulEventMask,LPMAPIADVISESINK lpAdviseSink,ULONG *lpulConnection) IPURE; MAPIMETHOD(Unadvise) (THIS_ ULONG ulConnection) IPURE; MAPIMETHOD(OpenStatusEntry) (THIS_ LPCIID lpInterface,ULONG ulFlags,ULONG *lpulObjType,LPVOID *lppEntry) IPURE;
#undef INTERFACE
#define INTERFACE IMSLogon
DECLARE_MAPI_INTERFACE_(IMSLogon,IUnknown) {
BEGIN_INTERFACE
MAPI_IUNKNOWN_METHODS(PURE)
MAPI_IMSLOGON_METHODS(PURE)
};
typedef HRESULT (__cdecl MSPROVIDERINIT)(HINSTANCE hInstance,LPMALLOC lpMalloc,LPALLOCATEBUFFER lpAllocateBuffer,LPALLOCATEMORE lpAllocateMore,LPFREEBUFFER lpFreeBuffer,ULONG ulFlags,ULONG ulMAPIVer,ULONG *lpulProviderVer,LPMSPROVIDER *lppMSProvider);
MSPROVIDERINIT MSProviderInit;
#define MSG_SERVICE_UI_READ_ONLY 0x00000008
#define SERVICE_LOGON_FAILED 0x00000020
#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
typedef HRESULT (WINAPI MSGSERVICEENTRY)(HINSTANCE hInstance,LPMALLOC lpMalloc,LPMAPISUP lpMAPISup,ULONG ulUIParam,ULONG ulFlags,ULONG ulContext,ULONG cValues,LPSPropValue lpProps,LPPROVIDERADMIN lpProviderAdmin,LPMAPIERROR *lppMapiError);
typedef MSGSERVICEENTRY *LPMSGSERVICEENTRY;
#ifdef __cplusplus
}
#endif
#endif
|