Поделиться через


Константы MAPI

Область применения: Outlook 2013 | Outlook 2016

Эта статья содержит определения констант, объявления интерфейсов MAPI, идентификаторы классов и интерфейсов, используемые API-интерфейсами MAPI.

Идентификаторы классов и интерфейсов

Связывайте символьные имена глобальных уникальных идентификаторов (GUID) с их значениями с помощью макроса DEFINE_GUID, заданного в файле заголовка guiddef.h пакета средств разработки программного обеспечения (SDK) Microsoft Windows, если не указано иное.

API преобразования безопасности вложений

Этот раздел содержит определения констант и идентификаторы интерфейсов для API безопасности вложений.

// {b2533636-c3f3-416f-bf04-aefe41abaae2}
DEFINE_GUID(IID_IAttachmentSecurity, 0xb2533636, 0xc3f3, 0x416f, 0xbf, 0x04, 0xae, 0xfe, 0x41, 0xab, 0xaa, 0xe2);

Используйте макрос MAPIMETHOD, заданный в файле заголовка mapidefs.h пакета Windows SDK, чтобы определить истинную виртуальную функцию IsAttachmentBlocked.

#define MAPI_IATTACHMENTSECURITY_METHODS(IPURE)         MAPIMETHOD(IsAttachmentBlocked)         (LPCWSTR pwszFileName, BOOL *pfBlocked) IPURE;

Используйте макрос DECLARE_MAPI_INTERFACE_, заданный в файле заголовка mapidefs.h пакета Windows SDK, чтобы определить таблицу виртуальных методов для интерфейса IAttachmentSecurity.

DECLARE_MAPI_INTERFACE_(IAttachmentSecurity, IUnknown) 
{ 
    BEGIN_INTERFACE 
    MAPI_IUNKNOWN_METHODS(PURE) 
    MAPI_IATTACHMENTSECURITY_METHODS(PURE) 
};

API преобразования MAPI-MIME

Этот раздел содержит определения констант, а также идентификаторы классов и интерфейсов для API преобразования MAPI-MIME.

Константа Определение
CCSF_SMTP
0x0002
CCSF_NOHEADERS
0x0004
CCSF_USE_TNEF
0x0010
CCSF_INCLUDE_BCC
0x0020
CCSF_8BITHEADERS
0x0040
CCSF_USE_RTF
0x0080
CCSF_PLAIN_TEXT_ONLY
0x1000
CCSF_NO_MSGID
0x4000
CCSF_GLOBAL_MESSAGE
0x00200000
E_INVALIDARG
Определено в файле заголовка winerror.h пакета Microsoft Windows SDK

Идентификаторы классов

// {4e3a7680-b77a-11d0-9da5-00c04fd65685}
DEFINE_GUID(CLSID_IConverterSession, 0x4e3a7680, 0xb77a, 0x11d0, 0x9d, 0xa5, 0x0, 0xc0, 0x4f, 0xd6, 0x56, 0x85);

Идентификаторы интерфейсов

// {4b401570-b77b-11d0-9da5-00c04fd65685}
DEFINE_GUID(IID_IConverterSession, 0x4b401570, 0xb77b, 0x11d0, 0x9d, 0xa5, 0x0, 0xc0, 0x4f, 0xd6, 0x56, 0x85);

API автономного состояния

Этот раздел содержит определения констант, а также идентификаторы классов и интерфейсов для API автономного состояния.

Константа Определение
E_INVALIDARG
Определено в файле заголовка winerror.h пакета Microsoft Windows SDK
E_NOINTERFACE
Определено в файле заголовка winerror.h пакета Windows SDK
MAPIOFFLINE_ADVISE_DEFAULT
(ULONG) 0
MAPIOFFLINE_UNADVISE_DEFAULT
(ULONG) 0
MAPIOFFLINE_ADVISE_TYPE_STATECHANGE
1
MAPIOFFLINE_CAPABILITY_OFFLINE
0x1
MAPIOFFLINE_CAPABILITY_ONLINE
0x2
MAPIOFFLINE_FLAG_BLOCK
0x00002000
MAPIOFFLINE_FLAG_DEFAULT
0x00000000
MAPIOFFLINE_STATE_ALL
0x003f037f
В сети или автономном режиме
MAPIOFFLINE_STATE_OFFLINE_MASK
0x00000003
MAPIOFFLINE_STATE_OFFLINE
0x00000001
MAPIOFFLINE_STATE_ONLINE
0x00000002

Идентификаторы классов

//{fbeffd93-b11f-4094-842b-96dcd31e63d1}
DEFINE_GUID(GUID_GlobalState, 0xfbeffd93, 0xb11f, 0x4094, 0x84, 0x2b, 0x96, 0xdc, 0xd3, 0x1e, 0x63, 0xd1);

Идентификаторы интерфейсов

//{000672B5-0000-0000-c000-000000000046}
DEFINE_GUID(IID_IMAPIOffline, 0x000672B5, 0x0000, 0x0000, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x46);
//{0317bde5-fc29-44cd-8dcd-36125a3be9ec}
DEFINE_GUID(IID_IMAPIOfflineNotify, 0x0317bde5, 0xfc29, 0x44cd, 0x8d, 0xcd, 0x36, 0x12, 0x5a, 0x3b, 0xe9, 0xec);
//{42175607-ff3e-4790-bc18-66c8643e6424
DEFINE_GUID(IID_IMAPIOfflineMgr, 0x42175607, 0xFF3E, 0x4790, 0xbc, 0x18, 0x66, 0xc8, 0x64, 0x3e, 0x64, 0x24);

Именованные свойства Outlook

Этот раздел содержит определения констант для именованных свойств и их пространств имен, а также другие связанные константы.

Определения для именованных свойств

#define dispidMeetingType0x0026 
#define dispidFileUnder0x8005 
#define dispidYomiFirstName 0x802C 
#define dispidYomiLastName 0x802D 
#define dispidYomiCompanyName 0x802E 
#define dispidWorkAddressStreet 0x8045 
#define dispidWorkAddressCity 0x8046 
#define dispidWorkAddressState 0x8047 
#define dispidWorkAddressPostalCode 0x8048 
#define dispidWorkAddressCountry 0x8049 
#define dispidWorkAddressPostOfficeBox 0x804A 
#define dispidInstMsg 0x8062 
#define dispidEmailDisplayName 0x8080 
#define dispidEmailAddrType 0x8082 
#define dispidEmailEmailAddress 0x8083 
#define dispidEmailOriginalDisplayName 0x8084 
#define dispidEmail1OriginalEntryID0x8085 
#define dispidEmail2DisplayName 0x8090 
#define dispidEmail2AddrType 0x8092 
#define dispidEmail2EmailAddress 0x8093 
#define dispidEmail2OriginalDisplayName 0x8094 
#define dispidEmail2OriginalEntryID0x8095 
#define dispidEmail3DisplayName 0x80A0 
#define dispidEmail3AddrType 0x80A2 
#define dispidEmail3EmailAddress 0x80A3 
#define dispidEmail3OriginalDisplayName 0x80A4 
#define dispidEmail3OriginalEntryID0x80A5 
#define dispidTaskStatus 0x8101 
#define dispidTaskStartDate 0x8104 
#define dispidTaskDueDate 0x8105 
#define dispidTaskActualEffort 0x8110 
#define dispidTaskEstimatedEffort 0x8111 
#define dispidTaskFRecur 0x8126 
#define dispidBusyStatus0x8205 
#define dispidLocation 0x8208 
#define dispidApptStartWhole 0x820D 
#define dispidApptEndWhole 0x820E 
#define dispidApptDuration 0x8213 
#define dispidRecurring 0x8223 
#define dispidTimeZoneStruct0x8233 
#define dispidAllAttendeesString 0x8238 
#define dispidToAttendeesString 0x823B 
#define dispidCCAttendeesString 0x823C 
#define dispidConfCheck0x8240 
#define dispidApptCounterProposal 0x8257 
#define dispidApptTZDefStartDisplay0x825E 
#define dispidApptTZDefEndDisplay0x825F 
#define dispidApptTZDefRecur0x8260 
#define dispidReminderTime0x8502 
#define dispidReminderSet 0x8503 
#define dispidFormStorage0x850F 
#define dispidPageDirStream0x8513 
#define dispidSmartNoAttach 0x8514 
#define dispidCommonStart 0x8516 
#define dispidCommonEnd 0x8517 
#define dispidFormPropStream0x851B 
#define dispidRequest 0x8530 
#define dispidCompanies 0x8539 
#define dispidContacts0x853A 
#define dispidPropDefStream0x8540 
#define dispidScriptStream0x8541 
#define dispidCustomFlag0x8542 
#define dispidReminderNextTime 0x8560 
#define dispidHeaderItem0x8578 
#define dispidUseTNEF0x8582 
#define dispidToDoTitle0x85A4 
#define dispidLogType 0x8700 
#define dispidLogStart 0x8706 
#define dispidLogDuration 0x8707 
#define dispidLogEnd 0x8708 

Определения для пространств имен

Указанные ниже глобальные уникальные идентификаторы (GUID) представляют пространства имен для именованных свойств.

const GUID PS_INTERNET_HEADERS  = {0x00020386, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; 
const GUID PS_PUBLIC_STRINGS    = {0x00020329, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; 
const GUID PSETID_Appointment= {0x00062002, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; 
const GUID PSETID_Address       = {0x00062004, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; 
const GUID PSETID_Common        = {0x00062008, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; 
const GUID PSETID_Log           = {0x0006200A, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; 
const GUID PSETID_Meeting = {0x6ED8DA90, 0x450B, 0x101B, {0x98, 0xDA, 0x00, 0xAA, 0x00, 0x3F, 0x13, 0x05}}; 
const GUID PSETID_Task          = {0x00062003, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; 

Определения PSETID см. в разделе "Хранилище MAPI".

Другие константы

Константа Определение
INSP_ONEOFFFLAGS
0xD000000
INSP_PROPDEFINITION
0x2000000
MNID_ID
Определено в файле заголовка mapidefs.h.
MNID_STRING
Определено в файле заголовка mapidefs.h.
mtgNone
0x0
mtgRequest
0x00000001
mtgFullUpdate
0x00010000
mtgInfoUpdate
0x00020000
mtgOutofDate
0x00080000
mtgDelegated
0x00100000

API репликации

Этот раздел содержит определения констант, объявления интерфейсов MAPI, идентификаторы классов и интерфейсов для API репликации.

Структура MAPIUID, определяющая поставщика службы MAPI:

const MAPIUID g_muidProvPrvNST = 
 { 0xE9, 0x2F, 0xEB, 0x75, 0x96, 0x50, 0x44, 0x86, 
      0x83, 0xB8, 0x7D, 0xE5, 0x22, 0xAA, 0x49, 0x48 };
Константа Определение
DNH_OK
0x00010000
DNT_OK
0x00010000
HSF_LOCAL
0x00000008
HSF_COPYDESTRUCTIVE
0x00000010
HSF_OK
0x00010000
MDB_OST_LOGON_UNICODE
((ULONG) 0x00000800)
MDB_OST_LOGON_ANSI
((ULONG) 0x00001000)
SHOW_SOFT_DELETES
((ULONG) 0x00000002)
SS_ACTIVE
0
SS_SUSPENDED
1
SYNC_UPLOAD_HIERARCHY
0x00000001
SYNC_DOWNLOAD_HIERARCHY
0x00000002
SYNC_UPLOAD_CONTENTS
0x00000040
SYNC_DOWNLOAD_CONTENTS
0x00000080
SYNC_OUTGOING_MAIL
0x00000200
SYNC_BACKGROUND
0x00001000
SYNC_THESE_FOLDERS
0x00020000
SYNC_HEADERS
0x02000000
UPC_OK
0x00010000
UPD_ASSOC
0x00000001
UPD_MOV
0x00000002
UPD_OK
0x00010000
UPD_MOVED
0x00020000
UPD_UPDATE
0x00040000
UPD_COMMIT
0x00080000
UPF_NEW
0x00000001
UPF_MOD_PARENT
0x00000002
UPF_MOD_PROPS
0x00000004
UPF_DEL
0x00000008
UPF_OK
0x00010000
UPH_OK
0x00010000
UPM_ASSOC
0x00000001
UPM_NEW
0x00000002
UPM_MOV
0x00000004
UPM_MOD_PROPS
0x00000008
UPM_HEADER
0x00000010
UPM_OK
0x00010000
UPM_MOVED
0x00020000
UPM_COMMIT
0x00040000
UPM_DELETE
0x00080000
UPM_SAVE
0x00100000
UPR_ASSOC
0x00000001
UPR_READ
0x00000002
UPR_OK
0x00010000
UPR_COMMIT
0x00020000
UPS_UPLOAD_ONLY
0x00000001
UPS_DNLOAD_ONLY
0x00000002
UPS_ONE_FOLDER
0x00000004
UPS_THESE_FOLDERS
0x00000080
UPS_OK
0x00010000
UPT_OK
0x00010000
UPT_PUBLIC
0x00000001
UPV_ERROR
0x00010000
UPV_DIRTY
0x00020000
UPV_COMMIT
0x00040000

Декларации интерфейсов

DECLARE_MAPI_INTERFACE_PTR(IExchangeImportHierarchyChanges,PXIHC);
DECLARE_MAPI_INTERFACE_PTR(IExchangeImportContentsChanges,PXICC);

Идентификаторы интерфейсов

//{4FDEEFF0-0319-11CF-B4CF-00AA0DBBB6E6}
DEFINE_GUID (IID_IPSTX, 0x4FDEEFF0, 0x0319, 0x11CF, 0xB4, 0xCF, 0x00, 0xAA, 0x0D, 0xBB, 0xB6, 0xE6)
//{2067A790-2A45-11D1-EB86-00A0C90DCA6D}
DEFINE_GUID (IID_IPSTX2, 0x2067A790, 0x2A45, 0x11D1, 0xEB, 0x86, 0x00, 0xA0, 0xC9, 0x0D, 0xCA, 0x6D)
//{55f15320-111b-11d2-a999-006008b05aa7}
DEFINE_GUID (IID_IPSTX3, 0x55f15320, 0x111b, 0x11d2, 0xa9, 0x99, 0x00, 0x60, 0x08, 0xb0, 0x5a, 0xa7)
//{aa2e2092-ac08-11d2-a2f9-0060b0ec3d4f}
DEFINE_GUID (IID_IPSTX4, 0xaa2e2092, 0xac08, 0x11d2, 0xa2, 0xf9, 0x00, 0x60, 0xb0, 0xec, 0x3d, 0x4f)
//{55f15322-111b-11d2-a999-006008b05aa7}
DEFINE_GUID (IID_IPSTX5, 0x55f15322, 0x111b, 0x11d2, 0xa9, 0x99, 0x00, 0x60, 0x08, 0xb0, 0x5a, 0xa7)
//{55f15323-111b-11d2-a999-006008b05aa7}
DEFINE_GUID (IID_IPSTX6, 0x55f15323, 0x111b, 0x11d2, 0xa9, 0x99, 0x00, 0x60, 0x08, 0xb0, 0x5a, 0xa7)
//{d2d85db4-840f-49b8-9982-07d2405ec6b7}
DEFINE_GUID (IID_IOSTX, 0xd2d85db4,  0x840f, 0x49b8, 0x99, 0x82, 0x07, 0xd2, 0x40, 0x5e, 0xc6, 0xb7)

Используйте два следующих идентификатора интерфейса с методом IMAPIContainer::OpenEntry, IMAPISession::OpenEntry или IMsgStore::OpenEntry, чтобы открыть и пропустить любую проверку поставщика для объекта папки или объекта сообщения соответственно.

//{57D333A0-F589-4b23-A3F9-85F82FEC153C}
DEFINE_GUID (IID_IMAPIFolderNoProvChk, 0x57D333A0, 0xF589, 0x4b23, 0xA3, 0xF9, 0x85, 0xF8, 0x2F, 0xEC, 0x15, 0x3C)
//{C3505457-7B2E-4c3b-A8D6-6DD949BB97A1}
DEFINE_GUID (IID_IMessageNoProvChk, 0xC3505457, 0x7B2E, 0x4c3b, 0xA8, 0xD6, 0x6D, 0xD9, 0x49, 0xBB, 0x97, 0xA1)

Хранилище MAPI

Этот раздел содержит определения констант и идентификаторы интерфейсов, которые используются API, взаимодействующими с хранилищем MAPI.

Константа Определение Описание
fnevIndexing
((ULONG) 0x00010000)
Поставщик хранилища может указать fnevIndexing в элементе ulEventType структуры NOTIFICATION, чтобы уведомлять индексатора о готовности объекта для индексации. Элемент info структуры NOTIFICATION содержит структуру EXTENDED_NOTIFICATION.
FS_NONE
0x00
Клиент может вызвать IFolderSupport::GetSupportMask и проверить возвращенную битовую маску. Параметр FS_NONE указывает, что папка не поддерживает общий доступ.
FS_SUPPORTS_SHARING
0x01
Клиент может вызвать IFolderSupport::GetSupportMask и проверить возвращенную битовую маску. Параметр FS_SUPPORTS_SHARING указывает, что папка поддерживает общий доступ.
INDEXING_SEARCH_OWNER
((ULONG) 0x00000001)
Определяет процесс отправки индексатору уведомления о готовности объекта для индексации.
MNID_ID
Определено в файле заголовка mapidefs.h пакета Microsoft Windows SDK
Значение для поля ulKind структуры MAPINAMEID.
MNID_STRING
Определено в файле заголовка mapidefs.h пакета Microsoft Windows SDK. Значение для поля ulKind структуры MAPINAMEID.
MSCAP_RES_ANNOTATION
((ULONG) 0x00000001)
Если клиент указывает MSCAP_SEL_RESTRICTION в mscapSelector для IMSCapabilities::GetCapabilities, GetCapabilities может вернуть это значение, если хранилище игнорирует недопустимые параметры в ограничении.
MSCAP_SECURE_FOLDER_HOMEPAGES
((ULONG) 0x00000001)
Если клиент указывает MSCAP_SEL_FOLDER в mscapSelector для IMSCapabilities::GetCapabilities, GetCapabilities может вернуть это значение, если хранилище не является хранилищем по умолчанию, которое поддерживает домашние страницы папок.
STORE_PUSHER_OK
((ULONG) 0X00800000)
Клиент может использовать свойство PR_SUPPORT_MASK для определения характеристики хранилища сообщений. Установка поставщиком хранилища флага STORE_PUSHER_OK в битовой маске означает, что обработчик протокола MAPI не выполняет обход хранилища, и хранилище отвечает за отправку всех изменений в виде уведомлений индексатору для индексации сообщений.

Определения для пространств имен

Указанные ниже глобальные уникальные идентификаторы (GUID) представляют пространства имен для именованных свойств. Они индексируются с помощью обработчика протокола MAPI и предназначаются только для чтения.

Предостережение

Именованные свойства не должны использоваться для создания или изменения элементов.

const GUID PS_INTERNET_HEADERS  = {0x00020386, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; 
const GUID PS_PUBLIC_STRINGS    = {0x00020329, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; 
const GUID PSETID_Address       = {0x00062004, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; 
const GUID PSETID_Appointment   = {0x00062002, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; 
const GUID PSETID_Common        = {0x00062008, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; 
const GUID PSETID_Log           = {0x0006200A, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; 
const GUID PSETID_Meeting       = {0x6ED8DA90, 0x450B, 0x101B, {0x98, 0xDA, 0x00, 0xAA, 0x00, 0x3F, 0x13, 0x05}}; 
const GUID PSETID_Task          = {0x00062003, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; 

Свойства MNID_ID

// In PSETID_Address
#define dispidWorkAddressStreet 0x8045
#define dispidWorkAddressCity 0x8046
#define dispidWorkAddressState 0x8047
#define dispidWorkAddressPostalCode 0x8048
#define dispidWorkAddressCountry 0x8049
#define dispidInstMsg 0x8062
#define dispidEmailDisplayName 0x8080
#define dispidEmailOriginalDisplayName 0x8084
// In PSETID_Appointment
#define dispidLocation 0x8208
#define dispidApptStartWhole 0x820D
#define dispidApptEndWhole 0x820E
#define dispidApptDuration 0x8213
#define dispidRecurring 0x8223
#define dispidAllAttendeesString 0x8238
#define dispidToAttendeesString 0x823B
#define dispidCCAttendeesString 0x823C
// In PSETID_Common
#define dispidReminderSet 0x8503
#define dispidSmartNoAttach 0x8514
#define dispidCommonStart 0x8516
#define dispidCommonEnd 0x8517
#define dispidRequest 0x8530
#define dispidCompanies 0x8539
#define dispidReminderNextTime 0x8560
// In PSETID_Log (also known as Journal)
#define dispidLogType 0x8700
#define dispidLogStart 0x8706
#define dispidLogDuration 0x8707
#define dispidLogEnd 0x8708MNID_STRING properties
// In PSETID_Task
#define dispidTaskStartDate 0x8104
#define dispidTaskDueDate 0x8105
#define dispidTaskActualEffort 0x8110
#define dispidTaskEstimatedEffort 0x8111
#define dispidTaskFRecur 0x8126

Свойства MNID_STRING

// In PS_PUBLIC_STRINGS 
"Keywords"
// In PS_INTERNET_HEADERS
"return-path"

Идентификаторы интерфейсов

//{00375ac3-ecaf-4ef8-a527-34f452fa9c67}
DEFINE_GUID(IID_IFolderSupport, 0x00375ac3, 0xecaf, 0x4ef8, 0xa5, 0x27, 0x34, 0xf4, 0x52, 0xfa, 0x9c, 0x67);

//{29F3AB10-554d-11d0-a97c-00a0c911f50a}
#define DEFINE_PRXGUID(_name, _l) DEFINE_GUID(_name, (0x29f3ab10 + _l), 0x554d, 0x11d0, 0xa9, 0x7c, 0x00, 0xa0, 0xc9, 0x11, 0xf5, 0x0a) 
DEFINE_PRXGUID(IID_IProxyStoreObject, 0x00000000L);

Используйте макрос, DEFINE_OLEGUID определенный в файле заголовка Windows SDK guiddef.h, чтобы связать с его значением следующее символическое имя GUID.

//{00020393-0000-0000-C000-000000000046}
DEFINE_OLEGUID(IID_IMSCapabilities, 0x00020393, 0, 0)

Константы адресной книги MAPI

Этот раздел содержит определения констант для адресной книги MAPI.

Константа Определение Описание
CONTAB_ROOT
((ULONG) 0x00000001)
Корневая папка для объекта адресной книги MAPI.
CONTAB_SUBROOT
((ULONG) 0x00000002)
Вложенная папка, находящаяся в корневой папке объекта адресной книги MAPI.
CONTAB_CONTAINER
((ULONG) 0x00000003)
Объект-контейнер адресной книги.
CONTAB_USER
((ULONG) 0x00000004)
Объект пользователя, отправляющего сообщение.
CONTAB_DISTLIST
((ULONG) 0x00000005)
Объект списка рассылки.

Дополнительные константы MAPI

Этот раздел содержит определения констант, включая коды ошибок, и идентификаторы интерфейсов, используемые API-интерфейсами MAPI, которые ранее не описывались.

Константа Определение Описание
DIALOG_MODAL
((ULONG) 0x00000001)
Когда клиент вызывает метод IAddrBook::D etails , клиент должен задать флаг DIALOG_MODAL в параметре ulFlags , чтобы отобразить модальное диалоговое окно с подробными сведениями о конкретной записи адресной книги. Константа определена в mapidefs.h.
ITEMPROC_FORCE
0x00000800
В Outlook 2007 упакованные PST-хранилища применяют правила и фильтрацию спама для новых сообщений до уведомления о них клиентов MAPI. Поставщик или клиент, использующий метод IMAPIFolder::CreateMessage для создания нового сообщения в PST-хранилищах, должен задать флаг ITEMPROC_FORCE в параметре ulFlags метода IMAPIProp::SaveChanges , чтобы указать PST-хранилищу, что сообщение подходит для обработки правил, прежде чем хранилище уведомляет любого прослушивающего клиента о поступлении нового сообщения. Обратите внимание, что такое применение правил относится только к новым сообщениям, созданным на сервере, не являющимся Microsoft Exchange Server, так как Exchange Server применяет правила для сообщений на сервере. Поэтому поставщик или клиент, создающий сообщение, должен передать этот флаг вместе с NON_EMS_XP_SAVE, что указывает на применение сервера, отличного от сервера Exchange.
MAPI_BG_SESSION
0x00200000
Клиент может вызвать функцию MAPILogonEx , установив флаг MAPI_BG_SESSION в параметре flFlags для входа в сеанс и выполнения любых операций в фоновом режиме. Как правило, если клиент собирается выполнять обработку в фоновом потоке или отдельном процессе, чтобы он не мешал потоку переднего плана, следует вызвать функцию MAPILogonEx с флагом MAPI_BG_SESSION. Примером такого использования является клиентское приложение, например подсистема индексирования, открывающая файл личных папок (PST) для доступа в фоновом режиме.
MAPI_CACHE_ONLY
0x00004000
Клиент может вызвать метод IAddrBook::OpenEntry , установив флаг MAPI_CACHE_ONLY в параметре ulFlags , чтобы открыть запись адресной книги и получить к ней доступ только из кэша. Примером такого использования является клиентское приложение, открывающее глобальный список адресов в режиме кэширования Exchange и получающее доступ к записи в этой адресной книге из кэша, не создавая трафик между клиентом и сервером.
MAPI_DIALOG_MODELESS
0x0000000C
Это значение можно передать в функцию Simple MAPI MAPISendMail в параметре ulFlags , чтобы указать, что в почтовом приложении по умолчанию отображается диалоговое окно без режима. Если ни этот флаг, ни MAPI_DIALOG (0x00000008) не установлены, никакое диалоговое окно не отображается.
MAPI_NO_CACHE
0x00000200
Если Microsoft Office Outlook находится в режиме кэширования Exchange и хранилище открыто в кэшированном режиме, клиент или поставщик служб может вызвать IMsgStore::OpenEntry, установив флаг MAPI_NO_CACHE в параметре ulFlags , чтобы открыть элемент или папку в удаленном хранилище. Обратите внимание, что при открытии хранилища сообщений с флагом MDB_ONLINE на удаленном сервере вам не потребуется использовать флаг MAPI_NO_CACHE.
MAPI_UNICODE
0x80000000
Клиент или поставщик услуг может вызвать функцию OpenIMsgOnIStg , установив флаг MAPI_UNICODE в параметре ulFlags для создания юникода .msg файлов. Итоговый файл IMessage: IMAPIProp отображает флаг STORE_UNICODE_OK в каноническом свойстве PidTagStoreSupportMask и поддерживает свойства Юникода. Константа определена в mapidefs.h.
MDB_ONLINE
0x00000100
Если Outlook находится в режиме кэширования Exchange, клиент или поставщик услуг может вызвать метод IMAPISession::OpenMsgStore , установив флаг MDB_ONLINE в параметре ulFlags , чтобы переопределить подключение к локальному хранилищу сообщений и открыть хранилище на удаленном сервере. Обратите внимание, что в одном сеансе MAPI невозможно одновременно открыть хранилище Exchange в режиме кэширования и режиме без использования кэша. Если вы уже открыли хранилище кэшированных сообщений, потребуется его закрыть перед открытием с этим флагом или открыть новый сеанс MAPI, в котором можно будет открыть хранилище Exchange на удаленном сервере с использованием этого флага.
NON_EMS_XP_SAVE
0x00001000
Клиент может вызвать метод IMAPIProp::SaveChanges , установив флаг NON_EMS_XP_SAVE в параметре ulFlags , чтобы указать, что сообщение не было доставлено с сервера Exchange Server. Этот флаг следует использовать в сочетании с флагом ITEMPROC_FORCE в параметре ulFlags , чтобы указать PST-хранилищу, что сообщение может обрабатываться правилами до того, как PST-хранилище уведомит любого прослушивающего клиента о поступлении сообщения. Такое применение правил относится только к новым сообщениям, созданным с помощью метода IMAPIFolder::CreateMessage на сервере, не являющимся сервером Exchange (поскольку в случае сервера Exchange для сообщения уже применены правила).
SPAMFILTER_ONSAVE
0x00000080
Клиент может вызвать IMAPIProp::SaveChanges, установив флаг SPAMFILTER_ONSAVE в параметре ulFlags , чтобы включить фильтрацию нежелательной почты в сохраняемом сообщении. Поддержка фильтрации нежелательной почты доступна только в том случае, если тип адреса электронной почты отправителя соответствует протоколу SMTP, а сообщение сохранено в хранилище для файлов личных папок (PST).
STORE_ITEMPROC
0x00200000
Если этот флаг установлен в каноническом свойстве PidTagStoreSupportMask упакованного PST-хранилища, это означает, что при поступлении в хранилище нового сообщения правила и фильтрация спама применяются для сообщения отдельно. Затем хранилище вызывает метод IMAPISupport::Notify, задавая передаваемый параметр fnevNewMail в структуре NOTIFICATION, с отправкой сведений о новом сообщении прослушивающему клиенту. Впоследствии, когда прослушивающий клиент получает уведомление, к сообщению не применяются правила.
STORE_UNICODE_OK
0x00040000
Если этот флаг включен в каноническое свойство PidTagStoreSupportMask, это значит, что хранилище поддерживает хранилище Юникод. Клиент можно проверить наличие флага, чтобы принять решение о запросе или сохранении сведений Юникода в хранилище.

Определения для архивации элементов в папке

Следующие определения констант — это значения, используемые для задания канонического свойства PidTagAgingGranularity.

#define AG_MONTHS 0 
#define AG_WEEKS  1 
#define AG_DAYS   2 

Определения для отображения удаленных объектов

Следующие определения констант и макросов предназначены для отображения удаленных объектов. Дополнительные сведения см. в статье Каноническое свойство PidTagDisplayTypeEx.

#define DTE_FLAG_REMOTE_VALID0x80000000 
#define DTE_FLAG_ACL_CAPABLE    0x40000000 
#define DTE_MASK_REMOTE        0x0000ff00 
#define DTE_MASK_LOCAL        0x000000ff 
  
#define DTE_IS_REMOTE_VALID(v)(!!((v) & DTE_FLAG_REMOTE_VALID)) 
#define DTE_IS_ACL_CAPABLE(v)(!!((v) & DTE_FLAG_ACL_CAPABLE)) 
#define DTE_REMOTE(v)(((v) & DTE_MASK_REMOTE) >> 8) 
#define DTE_LOCAL(v)((v) & DTE_MASK_LOCAL) 
  
#define DT_ROOM((ULONG) 0x00000007) 
#define DT_EQUIPMENT((ULONG) 0x00000008) 
#define DT_SEC_DISTLIST((ULONG) 0x00000009)

Определения для кодов ошибок адресной книги Exchange и хранилища сообщений

Ниже указаны определения кодов ошибок для адресной книги Exchange и хранилища сообщений с возможностью повторного подключения. Последний вызов отключенного глобального каталога (GC) может привести к ошибке MAPI_E_END_OF_SESSION, требующей выполнения повторных попыток.

MAPI Outlook поддерживает повторное подключение к серверу GC без специальной перенастройки, но клиенту могут быть возвращены некоторые другие коды ошибок.

Константа Определение Описание
MAPI_E_END_OF_SESSION
0x80040200
Возвращается, если соединение отключено.
MAPI_E_RECONNECTED
0x80040125
Возвращается, если устарел маркер подключения удаленного вызова процедур (RPC). Если маркер текущей транзакции отличается от маркера подключения, то это означает, что оно повторно подключено, то возвращается MAPI_E_RECONNECTEDи может обрабатываться так же, какMAPI_E_END_OF_SESSION. Требуется повторная попытка вызова.
MAPI_E_OFFLINE
0x80040126
Возвращается при отсутствии подключения. Обычно это означает какое-то происшествие в среде, например сбой сервера или отсутствие возможности подключения. Эта ошибка чаще всего случается при использовании профиля в режиме кэширования и попытке обойти кэш для связи с сервером. Если изначально отсутствовала возможность установки соединения кэша с сервером, он может быть в автономном состоянии, при котором может возникать ошибка MAPI_E_OFFLINE.

Никакая из предыдущих двух ошибок не возвращается в сценариях, в которых они подходят для применения. В большинстве случаев возвращаются MAPI_E_NETWORK_ERROR или MAPI_E_CALL_FAILED . Ни одна из них не появляется при использовании загрузки для клиента MAPI Microsoft Exchange Server и объектов данных совместной работы 1.2.1.

Определения для квот режима кэширования почтовых ящиков Exchange Server

Следующие определения констант используются в Microsoft Outlook 2010 и Microsoft Outlook 2013, чтобы задавать квоты профиля в режиме кэширования Exchange, аналогичные квотам почтового ящика Exchange, которые в противном случае доступны только для профиля в сети.

#define PR_QUOTA_WARNING PROP_TAG( PT_LONG, 0x341A)
#define PR_QUOTA_SEND    PROP_TAG( PT_LONG, 0x341B)
#define PR_QUOTA_RECEIVE PROP_TAG( PT_LONG, 0x341C)

Эти свойства сопоставляются с соответствующими сетевыми свойствами и содержат такие же значения в килобайтах. PR_QUOTA_WARNING сопоставляется с PR_STORAGE_QUOTA_LIMIT PR_QUOTA_SEND с PR_QUOTA_PROHIBIT_SEND_QUOTA и PR_QUOTA_RECEIVE с PR_PROHIBIT_RECEIVE_QUOTA.

Определения для формата сообщения

Следующие определения констант — это значения, которые используются для задания канонического свойства PidTagMessageEditorFormat.

#define EDITOR_FORMAT_DONTKNOW  ((ULONG) 0) 
#define EDITOR_FORMAT_PLAINTEXT ((ULONG) 1) 
#define EDITOR_FORMAT_HTML      ((ULONG) 2) 
#define EDITOR_FORMAT_RTF       ((ULONG) 3)

Определения для использования протокола RPC через HTTP

Определения констант, используемые в качестве флагов для задания свойства, см. в разделе Каноническое свойство PidTagRpcOverHttpFlags.

Определения констант, используемые для задания свойства, см. в разделе Каноническое свойство PidTagRpcOverHttpProxyAuthScheme.

Идентификаторы

Используйте макрос, DEFINE_OLEGUID определенный в файле заголовка Microsoft пакет средств разработки программного обеспечения для Windows (SDK) guiddef.h, чтобы связать следующие символические имена GUID со значениями.

//{0002038A-0000-0000-C000-000000000046}
#if !defined(INITGUID) || defined(USES_IID_IMessageRaw) 
DEFINE_OLEGUID(IID_IMessageRaw,0x0002038A, 0, 0); 
#endif

Следующий идентификатор предназначен для раздела профиля Capone адресной книги, который для поддержки нескольких почтовых ящиков Exchange (MultiEx) содержит свойство PR_AB_CHOOSE_DIRECTORY_AUTOMATICALLY, эффективно отключающее контейнер по умолчанию, заданный с помощью SetDefaultDir.

// {00020D0A-0000-0000-C000-000000000046}
DEFINE_OLEGUID(IID_CAPONE_PROF, 0x00020d0a, 0, 0);

Идентификаторы интерфейсов

IMAPISync

DEFINE_GUID(IID_IMAPISync, 0x5024a385, 0x2d44, 0x486a,  0x81, 0xa8, 0x8f, 0xe, 0xcb, 0x60, 0x71, 0xdd);

IMAPISyncProgressCallback

DEFINE_GUID(IID_IMAPISyncProgressCallback, 0x5024a386, 0x2d44, 0x486a,  0x81, 0xa8, 0x8f, 0xe, 0xcb, 0x60, 0x71, 0xdd);

IID_IContabAdmin

// {CC6A3BA9-E7F5-4769-887B-34E190817BFC}
DEFINE_GUID(IID_IContabAdmin, 0xcc6a3ba9, 0xe7f5, 0x4769, 0x88, 0x7b, 0x34, 0xe1, 0x90, 0x81, 0x7b, 0xfc);

IID_IMAPISECUREMESSAGE

DEFINE_GUID(IID_IMAPISecureMessage, 0x253cc320, 0xeab6, 0x11d0, 0x82, 0x22, 0, 0x60, 0x97, 0x93, 0x87, 0xea);

IID_IMAPIGetSession

DEFINE_GUID(IID_IMAPIGetSession, 0x614ab435, 0x491d, 0x4f5b, 0xa8, 0xb4, 0x60, 0xeb, 0x3, 0x10, 0x30, 0xc6);

Идентификаторы интерфейсов обработчика переопределения PST-файлов

IID_IPSTOVERRIDEREQ

// {892EBC6D-24DC-4d90-BA48-C6CBEC14A86A}
DEFINE_GUID(IID_IPSTOVERRIDEREQ, 0x892ebc6d, 0x24dc, 0x4d90, 0xba, 0x48, 0xc6, 0xcb, 0xec, 0x14, 0xa8, 0x6a);

IID_IPSTOVERRIDE1

// {FBB68D34-F561-44fb-A8CA-AE36696342CA}
DEFINE_GUID(IID_IPSTOVERRIDE1, 0xfbb68d34, 0xf561, 0x44fb, 0xa8, 0xca, 0xae, 0x36, 0x69, 0x63, 0x42, 0xca);

См. также