使用包装的 PST 存储区提供程序

适用于:Outlook 2013 | Outlook 2016

必须先初始化并配置包装的 PST 存储提供程序,然后才能 (PST) 存储提供程序使用包装的个人文件夹文件。 配置包装的 PST 存储提供程序后,必须实现函数,以便 MAPI 和 MAPI 后台处理程序可以登录到消息存储提供程序。 有关初始化和登录到包装的 PST 存储提供程序的详细信息,请参阅 初始化包装的 PST 存储提供程序登录到包装的 PST 存储提供程序

IMAPISupport::IUnknown 接口为通常由消息存储提供程序执行的任务提供实现。 必须包装此接口,示例包装的 PST 存储提供程序才能正常工作。 IMAPISupport::OpenProfileSection 函数需要特殊实现。 所有其他函数都可以将其参数传递给基础包装对象。

在本主题中,通过使用示例包装 PST 存储提供程序中的代码示例演示 IMAPISupport::OpenProfileSection 函数。 此示例实现一个包装的 PST 提供程序,该提供程序旨在与复制 API 结合使用。 有关下载和安装示例包装 PST 存储提供程序的详细信息,请参阅 安装示例包装 PST 存储提供程序。 有关复制 API 的详细信息,请参阅 关于复制 API

使用完包装的 PST 存储提供程序后,必须正确关闭包装的 PST 存储提供程序。 有关详细信息,请参阅 关闭包装的 PST 存储提供程序

打开 Profile Section 例程

IMAPISupport::OpenProfileSection 函数将打开当前配置文件的一部分。 函数需要在包装的 PST 存储提供程序实现中进行特殊处理。 pgNSTGlobalProfileSectionGuid请求 时,函数返回缓存的配置文件部分。

CSupport::OpenProfileSection () 示例

STDMETHODIMP CSupport::OpenProfileSection( 
    LPMAPIUID lpUid, 
    ULONG ulFlags, 
    LPPROFSECT * lppProfileObj) 
{ 
    Log(true,"CSupport::OpenProfileSection\n"); 
    if (lpUid &&  
        IsEqualMAPIUID(lpUid, (void *)&pbNSTGlobalProfileSectionGuid) &&  
        m_lpProfSect) 
    {      
        // Allow the opening of the Global Section 
        if (m_lpProfSect) 
        { 
            *lppProfileObj = m_lpProfSect; 
            (*lppProfileObj)->AddRef(); 
            return S_OK; 
        } 
    } 
    return m_pMAPISup->OpenProfileSection(lpUid, ulFlags, lppProfileObj); 
}

另请参阅