PreprocessMessage
Область применения: Outlook 2013 | Outlook 2016
Определяет функцию, которая предварительно обрабатывает содержимое сообщения или формат сообщения.
Свойство | Значение |
---|---|
Файл заголовка: |
Mapispi.h |
Определена функция, реализованная: |
Поставщики транспорта |
Определенная функция, вызываемая: |
Диспетчер очереди MAPI |
HRESULT PreprocessMessage(
LPVOID lpvSession,
LPMESSAGE lpMessage,
LPADRBOOK lpAdrBook,
LPMAPIFOLDER lpFolder,
LPALLOCATEBUFFER AllocateBuffer,
LPALLOCATEMORE AllocateMore,
LPFREEBUFFER FreeBuffer,
ULONG FAR * lpcOutbound,
LPMESSAGE FAR * FAR * lpppMessage,
LPADRLIST FAR * lppRecipList
);
Параметры
lpvSession
[в] Указатель на используемый сеанс.
lpMessage
[в] Указатель на сообщение для предварительной обработки.
lpAdrBook
[в] Указатель на адресную книгу, из которой пользователь должен выбрать получателей сообщения.
lpFolder
[вход, выход] Указатель на папку. Во входных данных параметр lpFolder указывает на папку, содержащую сообщения для предварительной обработки. В выходных данных lpFolder указывает на папку, в которой были помещены предварительно обработанные сообщения.
lpAllocateBuffer
[в] Указатель на функцию MAPIAllocateBuffer , используемую для выделения памяти.
lpAllocateMore
[в] Указатель на функцию MAPIAllocateMore , которая будет использоваться для выделения дополнительной памяти при необходимости.
lpFreeBuffer
[в] Указатель на функцию MAPIFreeBuffer , которая будет использоваться для освобождения памяти.
lpcOutbound
[out] Указатель на количество сообщений в массиве, на который указывает параметр lpppMessage .
lpppMessage
[out] Указатель на указатель на массив указателей на предварительно обработанные или иным образом созданные сообщения.
lppRecipList
[out] Указатель на необязательную возвращаемую структуру ADRLIST , в которой перечислены получатели, обнаруженные препроцессором, для которых сообщение недоступен. Дополнительные сведения о содержимом этого списка см. в методе IMAPISupport::StatusRecips .
Возвращаемое значение
S_OK
Содержимое сообщения было успешно обработано.
Замечания
Препроцессор сообщений поставщика транспорта может представить индикатор хода выполнения во время предварительной обработки сообщений. Однако в нем никогда не должно быть диалогового окна, требующего взаимодействия с пользователем во время предварительной обработки сообщений.
Когда препроцессор добавляет большие объемы данных в исходящее сообщение, следует соблюдать определенные процедуры. Этот тип сообщения может храниться в серверном хранилище сообщений, что приводит к тому, что препроцессор обращается к удаленному хранилищу, что занимает много времени. Чтобы избежать необходимости делать это, препроцессор должен иметь параметр, позволяющий хранить данные, которые занимают большое количество места в локальном хранилище сообщений, и предоставлять ссылку на это локальное хранилище в сообщении.
Препроцессор не должен освобождать объекты, первоначально переданные функции на основе PreprocessMessage .
Прежде чем диспетчер очереди MAPI сможет вызвать функцию PreprocessMessage , поставщик транспорта должен зарегистрировать функцию в вызове метода IMAPISupport::RegisterPreprocessor . После вызова функции PreprocessMessage диспетчер очереди не может продолжать отправку сообщения до тех пор, пока функция не вернет.
Диспетчер очереди MAPI владеет задачей отправки сообщений. Это означает, что исходное сообщение никогда не помещается в массив указателей сообщений и что вызов методов SubmitMessage никогда не требуется.
См. также
IAddrBook : IMAPIProp
IMAPIFolder : IMAPIContainer
IMAPISupport: IUnknown