当 Outlook 处于缓存 Exchange 模式时访问远程服务器上的存储
适用于:Outlook 2013 | Outlook 2016
本主题包含 C++ 中的代码示例,该示例演示如何在 Microsoft Office Outlook 处于缓存 Exchange 模式时使用 MAPI_NO_CACHE 标志在远程服务器上的邮件存储中打开文件夹或邮件。
缓存 Exchange 模式允许 Outlook 使用用户邮箱的本地副本,而 Outlook 则与远程 Exchange 服务器上的用户邮箱远程副本保持联机连接。 当 Outlook 在缓存 Exchange 模式下运行时,默认情况下,登录到同一会话的任何 MAPI 解决方案也会连接到缓存的邮件存储区。 访问的任何数据和所做的任何更改都是针对邮箱的本地副本进行的。
客户端或服务提供商可以在调用 IMsgStore::OpenEntry 时,通过在 ulFlags 参数中设置MAPI_NO_CACHE位来覆盖到本地消息存储的连接,并在远程存储中打开邮件或文件夹。
下面的代码示例演示如何使用 ulFlags 参数中设置的 MAPI_NO_CACHE 标志调用 IMsgStore::OpenEntry 以打开远程邮件存储中的根文件夹。
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 标志。