MAPIX.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:18k
- /*
- * 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
- /* Include common MAPI header files if they haven't been already. */
- #ifndef MAPIDEFS_H
- #include <mapidefs.h>
- #endif
- #ifndef MAPICODE_H
- #include <mapicode.h>
- #endif
- #ifndef MAPIGUID_H
- #include <mapiguid.h>
- #endif
- #ifndef MAPITAGS_H
- #include <mapitags.h>
- #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 */