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


IMAPISupport::OpenTemplateID

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

Открывает запись получателя в поставщике внешней адресной книги.

HRESULT OpenTemplateID(
ULONG cbTemplateID,
LPENTRYID lpTemplateID,
ULONG ulTemplateFlags,
LPMAPIPROP lpMAPIPropData,
LPCIID lpInterface,
LPMAPIPROP FAR * lppMAPIPropNew,
LPMAPIPROP lpMAPIPropSibling
);

Параметры

cbTemplateID

[в] Число байтов в идентификаторе шаблона, на который указывает lpTemplateID.

lpTemplateID

[в] Указатель на идентификатор шаблона PR_TEMPLATEID (PidTagTemplateid) открываемой записи получателя.

ulTemplateFlags

[в] Битовая маска флагов, используемая для описания способа открытия записи. Можно задать следующий флаг:

FILL_ENTRY

Создается новая запись. Когда внешний поставщик получает последующий вызов IABLogon::OpenTemplateID из MAPI, он может управлять созданием записи, изменяя свойства, на которые указывает параметр lpMAPIPropData , или возвращая определенную реализацию интерфейса в lppMAPIPropNew , чтобы управлять настройкой свойств для новой записи.

lpMAPIPropData

[в] Указатель на реализацию интерфейса, которую вызывающий объект использует для доступа к записи. Это реализация, которую внешний поставщик может обертывать с помощью собственной реализации и возвращать в параметре lppMAPIPropNew . Параметр lpMAPIPropData должен указывать на реализацию интерфейса чтения и записи, которая является производным от IMAPIProp: IUnknown и поддерживает интерфейс, запрашиваемый в параметре lpInterface .

lpInterface

[в] Указатель на идентификатор интерфейса (IID), представляющий интерфейс, используемый для доступа к записи. Параметр lppMAPIPropNew указывает на интерфейс типа, заданного lpInterface. Передача NULL возвращает стандартный интерфейс для пользователя обмена сообщениями, IID_IMailUser.

lppMAPIPropNew

[out] Указатель на реализацию интерфейса, которую внешний поставщик предоставляет для доступа к записи.

lpMAPIPropSibling

Защищены; значение должно иметь значение NULL.

Возвращаемое значение

S_OK

Процесс привязки выполнен успешно.

MAPI_E_UNKNOWN_ENTRYID

Поставщик внешней адресной книги не существует.

Замечания

Метод IMAPISupport::OpenTemplateID реализован только для объектов поддержки поставщика адресных книг. OpenTemplateID вызывается только поставщиками адресных книг, которые могут выступать в качестве узлов для записей, принадлежащих другим поставщикам адресных книг, также известным как иностранные поставщики. Поставщики узлов вызывают OpenTemplateID , чтобы открыть внешнюю запись, которая возникает, когда данные в поставщике узла привязаны к коду внешнего поставщика.

Примечания для вызывающих методов

Вызов openTemplateID только в том случае, если поддерживается хранение записей с идентификаторами шаблонов от внешних поставщиков адресных книг. Такая поддержка предъявляет дополнительные требования к реализации IABContainer::CreateEntry и IABLogon::OpenEntry . Дополнительные сведения см. в описании этих методов и в качестве поставщика адресной книги узла.

Если вызов OpenTemplateID возвращает в качестве привязанного интерфейса ту же реализацию объекта свойства, которую вы передали, можно освободить ссылку на объект свойства. Это связано с тем, что внешний поставщик вызвал метод AddRef объекта для сохранения собственной ссылки. Если внешнему поставщику не нужно сохранять ссылку на объект свойства, OpenTemplateID вернет объект свойства без привязки.

Если OpenTemplateID завершается сбоем с MAPI_E_UNKNOWN_ENTRYID, попробуйте продолжить обработку записи как доступную только для чтения.

См. также

IABLogon::OpenTemplateID

IPropData : IMAPIProp

Каноническое свойство PidTagTemplateid

IMAPISupport: IUnknown