当远程服务器位于缓存模式Outlook访问远程Exchange存储

适用于:Outlook 2013 | Outlook 2016

本主题包含一个 C++ 代码示例,该示例演示如何在 Microsoft Office Outlook 位于缓存模式时,使用 MAPI_NO_CACHE 标志打开远程服务器上邮件存储中的文件夹或Exchange。

缓存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 标志。

另请参阅