IAddrBook::NewEntry
Область применения: Outlook 2013 | Outlook 2016
Добавляет нового получателя в контейнер адресной книги или в список получателей исходящего сообщения.
HRESULT NewEntry(
ULONG_PTR ulUIParam,
ULONG ulFlags,
ULONG cbEIDContainer,
LPENTRYID lpEIDContainer,
ULONG cbEIDNewEntryTpl,
LPENTRYID lpEIDNewEntryTpl,
ULONG FAR * lpcbEIDNewEntry,
LPENTRYID FAR * lppEIDNewEntry
);
Параметры
ulUIParam
[в] Дескриптор родительского окна диалогового окна.
ulFlags
[в] Битовая маска флагов, управляющая типом используемого текста. Можно задать следующий флаг:
MAPI_UNICODE
Переданные строки имеют формат Юникода. Если флаг MAPI_UNICODE не задан, строки имеют формат ANSI.
cbEIDContainer
[в] Число байтов в идентификаторе записи, на который указывает параметр lpEIDContainer .
lpEIDContainer
[в] Указатель на идентификатор записи контейнера, в который добавляется новый получатель. Если параметр cbEIDContainer равен нулю, метод NewEntry возвращает идентификатор записи получателя и список шаблонов, как если бы был вызван метод IAddrBook::CreateOneOff .
cbEIDNewEntryTpl
[в] Число байтов в идентификаторе записи, на который указывает параметр lpEIDNewEntryTpl .
lpEIDNewEntryTpl
[в] Указатель на одноразовый шаблон, который будет использоваться для создания нового получателя. Если cbEIDNewEntryTpl равно нулю, а lpEIDNewEntryTpl — NULL, NewEntry отображает диалоговое окно, с помощью которого пользователь может выбрать из списка шаблонов для добавления новых записей.
lpcbEIDNewEntry
[out] Указатель на число байтов в идентификаторе записи, на который указывает параметр lppEIDNewEntry .
lppEIDNewEntry
[out] Указатель на указатель на идентификатор записи нового получателя.
Возвращаемое значение
S_OK
Новая запись адресной книги успешно создана.
Замечания
Метод NewEntry создает новую запись адресной книги, которая добавляется непосредственно в контейнер или используется для обращения к исходящему сообщению.
Примечания для вызывающих методов
Если вы хотите добавить новую запись в конкретный контейнер, задайте для lpEIDContainer значение идентификатора записи контейнера, а cbEIDContainer — число байтов в идентификаторе записи.
Если вы хотите добавить новую запись в список получателей исходящего сообщения, задайте для параметра lpEIDContainer значение NULL, а cbEIDContainer — ноль.
Если вы хотите разрешить пользователю клиентского приложения выбрать тип создаваемой записи, передайте ноль в cbEIDNewEntryTpl и NULL в lpEIDNewEntryTpl. Метод NewEntry отображает разовую таблицу MAPI, список шаблонов, поддерживаемых MAPI и каждым поставщиком адресной книги в сеансе. Каждый шаблон может создать запись получателя для одного или нескольких типов адресов.
Если вы хотите сохранить идентификатор новой записи, передайте допустимые указатели в параметры lpcbEIDNewEntry и lppEIDNewEntry . Вы несете ответственность за освобождение этого идентификатора записи после завершения работы с ним путем вызова функции MAPIFreeBuffer .
Чтобы использовать определенный шаблон для добавления новой записи в изменяемый контейнер, выполните следующую процедуру:
Вызовите метод IMAPISession::OpenEntry , чтобы открыть целевой контейнер, и задайте для параметра lpEntryID идентификатор записи контейнера.
Вызовите метод IMAPIProp::OpenProperty целевого контейнера и задайте для параметра ulPropTagзначение PR_CREATE_TEMPLATES (PidTagCreateTemplates), а для параметра lpiid — IID_IMAPITable. Контейнер вернет разовую таблицу со списком всех шаблонов, которые он поддерживает для создания новых записей.
Получите строку, представляющую шаблон для определенного типа записи, которую вы хотите создать. Столбец PR_ADDRTYPE (PidTagAddressType) указывает тип адреса, поддерживаемый шаблоном.
Вызовите метод NewEntry и задайте для lpEIDNewEntryTpl идентификатор записи выбранного шаблона. Идентификатором записи будет столбец PR_ENTRYID (PidTagEntryId) из строки шаблона в одноразовой таблице. Передайте ноль в cbEIDContainer и NULL в lpEIDContainer. Передайте допустимый указатель в параметре lppEIDNewEntry , если вы хотите сохранить идентификатор записи.