Сохранить свойства сообщения только локально (Outlook) - PullRequest
4 голосов
/ 13 февраля 2010

Как надстройка Outlook может установить свойство MAPI (например, содержимое тела) для сообщения, но сохранить его только в локальном кэше (и не отправить обратно на сервер обмена)? Я видел это сделано с несколькими надстройками шифрования.

Я открыт для использования практически любого API, который может добиться цели.

Спасибо!

1 Ответ

1 голос
/ 28 сентября 2011

Итак, я обнаружил это в MSDN. Как: управлять сообщением в OST без вызова синхронизации в режиме кэширования Exchange Стивен Гриффин впервые говорил об этом еще в 2005 году здесь .

У меня еще не было возможности протестировать его, но похоже, что вы можете изменить OST и не запускать синхронизацию. Хитрость заключается в запросе сообщения с использованием IID_IMessageRaw, а не IID_IMessage, как обычно делается.

Единственная проблема, с которой вы можете столкнуться, это то, что она требует использования Extended MAPI и, следовательно, C ++. Теги в списке вопросов VSTO, поэтому я не уверен, какие требования все еще могут быть.

Приведенный пример:

HRESULT HrOpenRawMessage (
    LPMDB lpMSB, 
    ULONG cbEntryID, 
    LPENTRYID lpEntryID, 
    ULONG ulFlags, 
    LPMESSAGE* lpMessage)
{
    ULONG ulObjType = NULL;

    HRESULT hRes = lpMDB->OpenEntry(
        cbEntryID,
        lpEntryID,
        IID_IMessageRaw,
        ulFlags,
        &ulObjType,
        (LPUNKNOWN*) lpMessage));

   return hRes;
}
...