IMAPISupport::OpenTemplateID
Hace referencia a: Outlook 2013 | Outlook 2016
Abre una entrada de destinatario en un proveedor de libreta de direcciones externa.
HRESULT OpenTemplateID(
ULONG cbTemplateID,
LPENTRYID lpTemplateID,
ULONG ulTemplateFlags,
LPMAPIPROP lpMAPIPropData,
LPCIID lpInterface,
LPMAPIPROP FAR * lppMAPIPropNew,
LPMAPIPROP lpMAPIPropSibling
);
Parameters
cbTemplateID
[in] Recuento de bytes en el identificador de plantilla al que apunta lpTemplateID.
lpTemplateID
[in] Puntero al identificador de plantilla PR_TEMPLATEID propiedad (PidTagTemplateid) de la entrada de destinatario que se va a abrir.
ulTemplateFlags
[in] Máscara de bits de marcas usadas para describir cómo abrir la entrada. Se puede establecer la marca siguiente:
FILL_ENTRY
Se está creando una nueva entrada. Cuando el proveedor externo recibe la llamada IABLogon::OpenTemplateID posterior desde MAPI, puede controlar cómo se crea la entrada modificando las propiedades a las que apunta el parámetro lpMAPIPropData o devolviendo una implementación de interfaz específica en lppMAPIPropNew para controlar cómo se establecen las propiedades de la nueva entrada.
lpMAPIPropData
[in] Puntero a la implementación de la interfaz que el autor de la llamada usa para acceder a la entrada. Esta es la implementación que el proveedor externo puede encapsular con su propia implementación y devolver en el parámetro lppMAPIPropNew . El parámetro lpMAPIPropData debe apuntar a una implementación de interfaz de lectura y escritura que deriva de IMAPIProp: IUnknown y admite la interfaz que se solicita en el parámetro lpInterface .
lpInterface
[in] Puntero al identificador de interfaz (IID) que representa la interfaz que se va a usar para acceder a la entrada. El parámetro lppMAPIPropNew apunta a una interfaz del tipo especificado por lpInterface. Pasar NULL devuelve la interfaz estándar de un usuario de mensajería, IID_IMailUser.
lppMAPIPropNew
[out] Puntero a la implementación de interfaz que el proveedor externo proporciona para acceder a la entrada.
lpMAPIPropSibling
Reservados; debe ser NULL.
Valor devuelto
S_OK
El proceso de enlace se realizó correctamente.
MAPI_E_UNKNOWN_ENTRYID
El proveedor de la libreta de direcciones externa no existe.
Comentarios
El método IMAPISupport::OpenTemplateID solo se implementa para los objetos de compatibilidad del proveedor de libretas de direcciones. OpenTemplateID solo lo llaman los proveedores de libreta de direcciones que pueden actuar como hosts para entradas que pertenecen a otros proveedores de libreta de direcciones, también conocidos como proveedores extranjeros. Los proveedores de hosts llaman a OpenTemplateID para abrir una entrada externa, que se produce cuando los datos del proveedor host están enlazados al código del proveedor externo.
Notas para los llamadores
Llame a OpenTemplateID solo si admite el almacenamiento de entradas con identificadores de plantilla de proveedores de libretas de direcciones externas. Este tipo de compatibilidad establece requisitos adicionales en las implementaciones de IABContainer::CreateEntry e IABLogon::OpenEntry . Para obtener más información, vea las descripciones de estos métodos y Actuar como proveedor de libreta de direcciones de host.
Si la llamada a OpenTemplateID devuelve como interfaz enlazada la misma implementación de objeto de propiedad que ha pasado, puede liberar la referencia al objeto de propiedad. Esto se debe a que el proveedor externo ha llamado al método AddRef del objeto para mantener su propia referencia. Si el proveedor externo no necesita mantener una referencia al objeto de propiedad, OpenTemplateID devolverá el objeto de propiedad sin enlazar.
Si Se produce un error en OpenTemplateID con MAPI_E_UNKNOWN_ENTRYID, intente continuar tratando la entrada como de solo lectura.