当 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 标志。

另请参阅