Доступ к хранилищу на удаленном сервере, когда Outlook находится в режиме кэширования Exchange
Область применения: Outlook 2013 | Outlook 2016
В этом разделе содержится пример кода на C++, в котором показано, как использовать флаг MAPI_NO_CACHE для открытия папки или сообщения в хранилище сообщений на удаленном сервере, когда Microsoft Office Outlook находится в режиме кэширования Exchange.
Режим кэширования Exchange позволяет Outlook использовать локальную копию почтового ящика пользователя, в то время как Outlook поддерживает подключение к удаленной копии почтового ящика пользователя на удаленном сервере Exchange Server. Если Outlook работает в режиме кэширования Exchange, по умолчанию все решения MAPI, которые входят в тот же сеанс, также подключаются к кэшированному хранилищу сообщений. Все данные, к которым осуществляется доступ, и внесенные изменения вносятся в локальную копию почтового ящика.
Клиент или поставщик услуг может переопределить подключение к локальному хранилищу сообщений и открыть сообщение или папку в удаленном хранилище, задав бит для MAPI_NO_CACHE в параметре ulFlags при вызове IMsgStore::OpenEntry.
В следующем примере кода показано, как вызвать IMsgStore::OpenEntry с флагом MAPI_NO_CACHE , заданным в параметре ulFlags , чтобы открыть корневую папку в удаленном хранилище сообщений.
HRESULT HrOpenRootFolder (
LPMDB lpMDB,
LPMESSAGE* lpRootFolder)
{
ULONG ulObjType = NULL;
HRESULT hRes = lpMDB->OpenEntry(
0,// size of entry ID
NULL, // Pointer to entry ID
NULL, // Use default interface (IMAPIFolder)
MAPI_BEST_ACCESS | MAPI_NO_CACHE, // Flags
&ulObjType,
// Output parameter indicates the type of object returned
(LPUNKNOWN *) lpRootFolder)); // Pointer to put the opened folder in
return hRes;
}
Если вы открыли хранилище сообщений с флагом MDB_ONLINE на удаленном сервере, вам не нужно использовать флаг MAPI_NO_CACHE .