Поделиться через


Использование поставщика упакованного PST-хранилища

Область применения: Outlook 2013 | Outlook 2016

Прежде чем использовать поставщик хранилища PST-файлов в оболочке, необходимо инициализировать и настроить поставщик хранилища PST с оболочкой. После настройки поставщика хранилища PST в оболочке необходимо реализовать функции, чтобы MAPI и диспетчер очереди MAPI могли войти в поставщик хранилища сообщений. Дополнительные сведения об инициализации поставщика хранилища PST с оболочкой и входе в нее см. в разделах Инициализация поставщика упакованого хранилища PST и Вход в поставщик упакованого хранилища PST.

Интерфейс IMAPISupport::IUnknown предоставляет реализации задач, которые обычно выполняются поставщиками хранилища сообщений. Этот интерфейс должен быть заключен в оболочку, чтобы поставщик хранилища PST с оболочкой работал. Функция IMAPISupport::OpenProfileSection требует специальной реализации. Все остальные функции могут передавать свои параметры базовому объекту оболочки.

В этом разделе функция IMAPISupport::OpenProfileSection демонстрируется с помощью примера кода из примера поставщика хранилища PST в оболочке. В этом примере реализуется поставщик PST в оболочке, который предназначен для использования в сочетании с API репликации. Дополнительные сведения о скачивании и установке поставщика хранилища PST в оболочке см. в разделе Установка поставщика хранилища PST в оболочке. Дополнительные сведения об API репликации см. в разделе Сведения об API репликации.

После завершения работы с поставщиком упакованого PST-хранилища необходимо правильно завершить работу поставщика упакованого хранилища PST. Дополнительные сведения см. в разделе Завершение работы поставщика хранилища PST с оболочкой.

Открытие раздела профиля

Функция 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); 
}

См. также