#ifndef _XTP_INCLUDE_CALENDAR_MAPI # error Use _XTP_INCLUDE_CALENDAR_MAPI to enable Calendar MAPI support. #endif #if _MSC_VER < 1700 || defined(_USING_V110_SDK71_) # include #else /* * M A P I X . H * * Definitions of objects/flags, etc used by Extended MAPI. * * Copyright 1986-1999 Microsoft Corporation. All Rights Reserved. */ # ifndef MAPIX_H # define MAPIX_H # if _MSC_VER > 1000 # pragma once # endif # ifdef __cplusplus extern "C" { # endif # ifndef BEGIN_INTERFACE # define BEGIN_INTERFACE # endif /* Forward interface declarations */ DECLARE_MAPI_INTERFACE_PTR(IProfAdmin, LPPROFADMIN); DECLARE_MAPI_INTERFACE_PTR(IMsgServiceAdmin, LPSERVICEADMIN); DECLARE_MAPI_INTERFACE_PTR(IMAPISession, LPMAPISESSION); /* ------------------------------------------------------ */ /* shared with simple mapi */ typedef ULONG FLAGS; /* MAPILogon() flags. */ # define MAPI_LOGON_UI 0x00000001 /* Display logon UI */ # define MAPI_NEW_SESSION 0x00000002 /* Don't use shared session */ # define MAPI_ALLOW_OTHERS 0x00000008 /* Make this a shared session */ # define MAPI_EXPLICIT_PROFILE 0x00000010 /* Don't use default profile */ # define MAPI_EXTENDED 0x00000020 /* Extended MAPI Logon */ # define MAPI_FORCE_DOWNLOAD 0x00001000 /* Get new mail before return */ # define MAPI_SERVICE_UI_ALWAYS 0x00002000 /* Do logon UI in all providers */ # define MAPI_NO_MAIL 0x00008000 /* Do not activate transports */ /* #define MAPI_NT_SERVICE 0x00010000 Allow logon from an NT service */ # ifndef MAPI_PASSWORD_UI # define MAPI_PASSWORD_UI 0x00020000 /* Display password UI only */ # endif # define MAPI_TIMEOUT_SHORT 0x00100000 /* Minimal wait for logon resources */ # define MAPI_SIMPLE_DEFAULT (MAPI_LOGON_UI | MAPI_FORCE_DOWNLOAD | MAPI_ALLOW_OTHERS) # define MAPI_SIMPLE_EXPLICIT \ (MAPI_NEW_SESSION | MAPI_FORCE_DOWNLOAD | MAPI_EXPLICIT_PROFILE) /* Structure passed to MAPIInitialize(), and its ulFlags values */ typedef struct { ULONG ulVersion; ULONG ulFlags; } MAPIINIT_0, FAR* LPMAPIINIT_0; typedef MAPIINIT_0 MAPIINIT; typedef MAPIINIT FAR* LPMAPIINIT; # define MAPI_INIT_VERSION 0 # define MAPI_MULTITHREAD_NOTIFICATIONS 0x00000001 /* Reserved for MAPI 0x40000000 */ /* #define MAPI_NT_SERVICE 0x00010000 Use from NT service */ /* MAPI base functions */ typedef HRESULT(STDAPICALLTYPE MAPIINITIALIZE)(LPVOID lpMapiInit); typedef MAPIINITIALIZE FAR* LPMAPIINITIALIZE; typedef void(STDAPICALLTYPE MAPIUNINITIALIZE)(void); typedef MAPIUNINITIALIZE FAR* LPMAPIUNINITIALIZE; MAPIINITIALIZE MAPIInitialize; MAPIUNINITIALIZE MAPIUninitialize; /* Extended MAPI Logon function */ typedef HRESULT(STDMETHODCALLTYPE MAPILOGONEX)( ULONG_PTR ulUIParam, LPTSTR lpszProfileName, LPTSTR lpszPassword, ULONG ulFlags, /* ulFlags takes all that SimpleMAPI does + MAPI_UNICODE */ LPMAPISESSION FAR* lppSession); typedef MAPILOGONEX FAR* LPMAPILOGONEX; MAPILOGONEX MAPILogonEx; typedef SCODE(STDMETHODCALLTYPE MAPIALLOCATEBUFFER)(ULONG cbSize, LPVOID FAR* lppBuffer); typedef SCODE(STDMETHODCALLTYPE MAPIALLOCATEMORE)(ULONG cbSize, LPVOID lpObject, LPVOID FAR* lppBuffer); typedef ULONG(STDAPICALLTYPE MAPIFREEBUFFER)(LPVOID lpBuffer); typedef MAPIALLOCATEBUFFER FAR* LPMAPIALLOCATEBUFFER; typedef MAPIALLOCATEMORE FAR* LPMAPIALLOCATEMORE; typedef MAPIFREEBUFFER FAR* LPMAPIFREEBUFFER; MAPIALLOCATEBUFFER MAPIAllocateBuffer; MAPIALLOCATEMORE MAPIAllocateMore; MAPIFREEBUFFER MAPIFreeBuffer; typedef HRESULT(STDMETHODCALLTYPE MAPIADMINPROFILES)(ULONG ulFlags, LPPROFADMIN FAR* lppProfAdmin); typedef MAPIADMINPROFILES FAR* LPMAPIADMINPROFILES; MAPIADMINPROFILES MAPIAdminProfiles; /* IMAPISession Interface -------------------------------------------------- */ /* Flags for OpenEntry and others */ /*#define MAPI_MODIFY ((ULONG) 0x00000001) */ /* Flags for Logoff */ # define MAPI_LOGOFF_SHARED 0x00000001 /* Close all shared sessions */ # define MAPI_LOGOFF_UI 0x00000002 /* It's OK to present UI */ /* Flags for SetDefaultStore. They are mutually exclusive. */ # define MAPI_DEFAULT_STORE 0x00000001 /* for incoming messages */ # define MAPI_SIMPLE_STORE_TEMPORARY 0x00000002 /* for simple MAPI and CMC */ # define MAPI_SIMPLE_STORE_PERMANENT 0x00000003 /* for simple MAPI and CMC */ # define MAPI_PRIMARY_STORE 0x00000004 /* Used by some clients */ # define MAPI_SECONDARY_STORE 0x00000005 /* Used by some clients */ /* Flags for ShowForm. */ # define MAPI_POST_MESSAGE 0x00000001 /* Selects post/send semantics */ # define MAPI_NEW_MESSAGE 0x00000002 /* Governs copying during submission */ /* MessageOptions */ /****** MAPI_UNICODE ((ULONG) 0x80000000) */ /* QueryDefaultMessageOpt */ /****** MAPI_UNICODE ((ULONG) 0x80000000) */ # define MAPI_IMAPISESSION_METHODS(IPURE) \ MAPIMETHOD(GetLastError) \ (THIS_ HRESULT hResult, ULONG ulFlags, LPMAPIERROR FAR * lppMAPIError) IPURE; \ MAPIMETHOD(GetMsgStoresTable) \ (THIS_ ULONG ulFlags, LPMAPITABLE FAR * lppTable) IPURE; \ MAPIMETHOD(OpenMsgStore) \ (THIS_ ULONG_PTR ulUIParam, ULONG cbEntryID, LPENTRYID lpEntryID, LPCIID lpInterface, \ ULONG ulFlags, LPMDB FAR * lppMDB) IPURE; \ MAPIMETHOD(OpenAddressBook) \ (THIS_ ULONG_PTR ulUIParam, LPCIID lpInterface, ULONG ulFlags, \ LPADRBOOK FAR * lppAdrBook) IPURE; \ MAPIMETHOD(OpenProfileSection) \ (THIS_ LPMAPIUID lpUID, LPCIID lpInterface, ULONG ulFlags, \ LPPROFSECT FAR * lppProfSect) IPURE; \ MAPIMETHOD(GetStatusTable) \ (THIS_ ULONG ulFlags, LPMAPITABLE FAR * lppTable) 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(MessageOptions) \ (THIS_ ULONG_PTR ulUIParam, ULONG ulFlags, LPTSTR lpszAdrType, LPMESSAGE lpMessage) \ IPURE; \ MAPIMETHOD(QueryDefaultMessageOpt) \ (THIS_ LPTSTR lpszAdrType, ULONG ulFlags, ULONG FAR * lpcValues, \ LPSPropValue FAR * lppOptions) IPURE; \ MAPIMETHOD(EnumAdrTypes) \ (THIS_ ULONG ulFlags, ULONG FAR * lpcAdrTypes, LPTSTR FAR * FAR * lpppszAdrTypes) \ IPURE; \ MAPIMETHOD(QueryIdentity) \ (THIS_ ULONG FAR * lpcbEntryID, LPENTRYID FAR * lppEntryID) IPURE; \ MAPIMETHOD(Logoff) \ (THIS_ ULONG_PTR ulUIParam, ULONG ulFlags, ULONG ulReserved) IPURE; \ MAPIMETHOD(SetDefaultStore) \ (THIS_ ULONG ulFlags, ULONG cbEntryID, LPENTRYID lpEntryID) IPURE; \ MAPIMETHOD(AdminServices) \ (THIS_ ULONG ulFlags, LPSERVICEADMIN FAR * lppServiceAdmin) IPURE; \ MAPIMETHOD(ShowForm) \ (THIS_ ULONG_PTR ulUIParam, LPMDB lpMsgStore, LPMAPIFOLDER lpParentFolder, \ LPCIID lpInterface, ULONG ulMessageToken, LPMESSAGE lpMessageSent, ULONG ulFlags, \ ULONG ulMessageStatus, ULONG ulMessageFlags, ULONG ulAccess, LPSTR lpszMessageClass) \ IPURE; \ MAPIMETHOD(PrepareForm) \ (THIS_ LPCIID lpInterface, LPMESSAGE lpMessage, ULONG FAR * lpulMessageToken) IPURE; # undef INTERFACE # define INTERFACE IMAPISession DECLARE_MAPI_INTERFACE_(IMAPISession, IUnknown){ BEGIN_INTERFACE MAPI_IUNKNOWN_METHODS(PURE) MAPI_IMAPISESSION_METHODS(PURE) }; /*DECLARE_MAPI_INTERFACE_PTR(IMAPISession, LPMAPISESSION);*/ /* IAddrBook Interface ----------------------------------------------------- */ /* CreateOneOff */ /****** MAPI_UNICODE ((ULONG) 0x80000000) */ /****** MAPI_SEND_NO_RICH_INFO ((ULONG) 0x00010000) */ /* RecipOptions */ /****** MAPI_UNICODE ((ULONG) 0x80000000) */ /* QueryDefaultRecipOpt */ /****** MAPI_UNICODE ((ULONG) 0x80000000) */ /* GetSearchPath */ /****** MAPI_UNICODE ((ULONG) 0x80000000) */ # define MAPI_IADDRBOOK_METHODS(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(CreateOneOff) \ (THIS_ LPTSTR lpszName, LPTSTR lpszAdrType, LPTSTR lpszAddress, ULONG ulFlags, \ ULONG FAR * lpcbEntryID, LPENTRYID FAR * lppEntryID) IPURE; \ MAPIMETHOD(NewEntry) \ (THIS_ ULONG_PTR ulUIParam, ULONG ulFlags, ULONG cbEIDContainer, \ LPENTRYID lpEIDContainer, ULONG cbEIDNewEntryTpl, LPENTRYID lpEIDNewEntryTpl, \ ULONG FAR * lpcbEIDNewEntry, LPENTRYID FAR * lppEIDNewEntry) IPURE; \ MAPIMETHOD(ResolveName) \ (THIS_ ULONG_PTR ulUIParam, ULONG ulFlags, LPTSTR lpszNewEntryTitle, \ LPADRLIST lpAdrList) IPURE; \ MAPIMETHOD(Address) \ (THIS_ ULONG_PTR FAR * lpulUIParam, LPADRPARM lpAdrParms, LPADRLIST FAR * lppAdrList) \ IPURE; \ MAPIMETHOD(Details) \ (THIS_ ULONG FAR * lpulUIParam, LPFNDISMISS lpfnDismiss, LPVOID lpvDismissContext, \ ULONG cbEntryID, LPENTRYID lpEntryID, LPFNBUTTON lpfButtonCallback, \ LPVOID lpvButtonContext, LPTSTR lpszButtonText, ULONG ulFlags) IPURE; \ MAPIMETHOD(RecipOptions) \ (THIS_ ULONG_PTR ulUIParam, ULONG ulFlags, LPADRENTRY lpRecip) IPURE; \ MAPIMETHOD(QueryDefaultRecipOpt) \ (THIS_ LPTSTR lpszAdrType, ULONG ulFlags, ULONG FAR * lpcValues, \ LPSPropValue FAR * lppOptions) IPURE; \ MAPIMETHOD(GetPAB) \ (THIS_ ULONG FAR * lpcbEntryID, LPENTRYID FAR * lppEntryID) IPURE; \ MAPIMETHOD(SetPAB) \ (THIS_ ULONG cbEntryID, LPENTRYID lpEntryID) IPURE; \ MAPIMETHOD(GetDefaultDir) \ (THIS_ ULONG FAR * lpcbEntryID, LPENTRYID FAR * lppEntryID) IPURE; \ MAPIMETHOD(SetDefaultDir) \ (THIS_ ULONG cbEntryID, LPENTRYID lpEntryID) IPURE; \ MAPIMETHOD(GetSearchPath) \ (THIS_ ULONG ulFlags, LPSRowSet FAR * lppSearchPath) IPURE; \ MAPIMETHOD(SetSearchPath) \ (THIS_ ULONG ulFlags, LPSRowSet lpSearchPath) IPURE; \ MAPIMETHOD(PrepareRecips) \ (THIS_ ULONG ulFlags, LPSPropTagArray lpPropTagArray, LPADRLIST lpRecipList) IPURE; # undef INTERFACE # define INTERFACE IAddrBook DECLARE_MAPI_INTERFACE_(IAddrBook, IMAPIProp){ BEGIN_INTERFACE MAPI_IUNKNOWN_METHODS(PURE) MAPI_IMAPIPROP_METHODS(PURE) MAPI_IADDRBOOK_METHODS(PURE) }; DECLARE_MAPI_INTERFACE_PTR(IAddrBook, LPADRBOOK); /* IProfAdmin Interface ---------------------------------------------------- */ /* Flags for CreateProfile */ # define MAPI_DEFAULT_SERVICES 0x00000001 /* GetProfileTable */ /****** MAPI_UNICODE ((ULONG) 0x80000000) */ # define MAPI_IPROFADMIN_METHODS(IPURE) \ MAPIMETHOD(GetLastError) \ (THIS_ HRESULT hResult, ULONG ulFlags, LPMAPIERROR FAR * lppMAPIError) IPURE; \ MAPIMETHOD(GetProfileTable) \ (THIS_ ULONG ulFlags, LPMAPITABLE FAR * lppTable) IPURE; \ MAPIMETHOD(CreateProfile) \ (THIS_ LPTSTR lpszProfileName, LPTSTR lpszPassword, ULONG_PTR ulUIParam, \ ULONG ulFlags) IPURE; \ MAPIMETHOD(DeleteProfile) \ (THIS_ LPTSTR lpszProfileName, ULONG ulFlags) IPURE; \ MAPIMETHOD(ChangeProfilePassword) \ (THIS_ LPTSTR lpszProfileName, LPTSTR lpszOldPassword, LPTSTR lpszNewPassword, \ ULONG ulFlags) IPURE; \ MAPIMETHOD(CopyProfile) \ (THIS_ LPTSTR lpszOldProfileName, LPTSTR lpszOldPassword, LPTSTR lpszNewProfileName, \ ULONG_PTR ulUIParam, ULONG ulFlags) IPURE; \ MAPIMETHOD(RenameProfile) \ (THIS_ LPTSTR lpszOldProfileName, LPTSTR lpszOldPassword, LPTSTR lpszNewProfileName, \ ULONG_PTR ulUIParam, ULONG ulFlags) IPURE; \ MAPIMETHOD(SetDefaultProfile) \ (THIS_ LPTSTR lpszProfileName, ULONG ulFlags) IPURE; \ MAPIMETHOD(AdminServices) \ (THIS_ LPTSTR lpszProfileName, LPTSTR lpszPassword, ULONG_PTR ulUIParam, \ ULONG ulFlags, LPSERVICEADMIN FAR * lppServiceAdmin) IPURE; # undef INTERFACE # define INTERFACE IProfAdmin DECLARE_MAPI_INTERFACE_(IProfAdmin, IUnknown){ BEGIN_INTERFACE MAPI_IUNKNOWN_METHODS(PURE) MAPI_IPROFADMIN_METHODS(PURE) }; /* IMsgServiceAdmin Interface ---------------------------------------------- */ /* Values for PR_RESOURCE_FLAGS in message service table */ # define SERVICE_DEFAULT_STORE 0x00000001 # define SERVICE_SINGLE_COPY 0x00000002 # define SERVICE_CREATE_WITH_STORE 0x00000004 # define SERVICE_PRIMARY_IDENTITY 0x00000008 # define SERVICE_NO_PRIMARY_IDENTITY 0x00000020 /* GetMsgServiceTable */ /****** MAPI_UNICODE ((ULONG) 0x80000000) */ /* GetProviderTable */ /****** MAPI_UNICODE ((ULONG) 0x80000000) */ # define MAPI_IMSGSERVICEADMIN_METHODS(IPURE) \ MAPIMETHOD(GetLastError) \ (THIS_ HRESULT hResult, ULONG ulFlags, LPMAPIERROR FAR * lppMAPIError) IPURE; \ MAPIMETHOD(GetMsgServiceTable) \ (THIS_ ULONG ulFlags, LPMAPITABLE FAR * lppTable) IPURE; \ MAPIMETHOD(CreateMsgService) \ (THIS_ LPTSTR lpszService, LPTSTR lpszDisplayName, ULONG_PTR ulUIParam, ULONG ulFlags) \ IPURE; \ MAPIMETHOD(DeleteMsgService) \ (THIS_ LPMAPIUID lpUID) IPURE; \ MAPIMETHOD(CopyMsgService) \ (THIS_ LPMAPIUID lpUID, LPTSTR lpszDisplayName, LPCIID lpInterfaceToCopy, \ LPCIID lpInterfaceDst, LPVOID lpObjectDst, ULONG_PTR ulUIParam, ULONG ulFlags) IPURE; \ MAPIMETHOD(RenameMsgService) \ (THIS_ LPMAPIUID lpUID, ULONG ulFlags, LPTSTR lpszDisplayName) IPURE; \ MAPIMETHOD(ConfigureMsgService) \ (THIS_ LPMAPIUID lpUID, ULONG_PTR ulUIParam, ULONG ulFlags, ULONG cValues, \ LPSPropValue lpProps) IPURE; \ MAPIMETHOD(OpenProfileSection) \ (THIS_ LPMAPIUID lpUID, LPCIID lpInterface, ULONG ulFlags, \ LPPROFSECT FAR * lppProfSect) IPURE; \ MAPIMETHOD(MsgServiceTransportOrder) \ (THIS_ ULONG cUID, LPMAPIUID lpUIDList, ULONG ulFlags) IPURE; \ MAPIMETHOD(AdminProviders) \ (THIS_ LPMAPIUID lpUID, ULONG ulFlags, LPPROVIDERADMIN FAR * lppProviderAdmin) IPURE; \ MAPIMETHOD(SetPrimaryIdentity) \ (THIS_ LPMAPIUID lpUID, ULONG ulFlags) IPURE; \ MAPIMETHOD(GetProviderTable) \ (THIS_ ULONG ulFlags, LPMAPITABLE FAR * lppTable) IPURE; # undef INTERFACE # define INTERFACE IMsgServiceAdmin DECLARE_MAPI_INTERFACE_(IMsgServiceAdmin, IUnknown){ BEGIN_INTERFACE MAPI_IUNKNOWN_METHODS(PURE) MAPI_IMSGSERVICEADMIN_METHODS(PURE) }; # ifdef __cplusplus } /* extern "C" */ # endif # endif /* MAPIX_H */ #endif /*_MSC_VER < 1700 || defined(_USING_V110_SDK71_)*/