Compartilhar via


IMAPISupport::OpenTemplateID

Aplica-se a: Outlook 2013 | Outlook 2016

Abre uma entrada de destinatário em um provedor de catálogo de endereços estrangeiro.

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

Parâmetros

cbTemplateID

[in] A contagem de bytes no identificador de modelo apontado por lpTemplateID.

lpTemplateID

[in] Um ponteiro para a propriedade do identificador de modelo PR_TEMPLATEID (PidTagTemplateid) da entrada do destinatário a ser aberta.

ulTemplateFlags

[in] Um bitmask de sinalizadores usado para descrever como abrir a entrada. O seguinte sinalizador pode ser definido:

FILL_ENTRY

Uma nova entrada está sendo criada. Quando o provedor estrangeiro recebe a chamada IABLogon::OpenTemplateID subsequente da MAPI, ele pode controlar como a entrada é criada modificando propriedades apontadas pelo parâmetro lpMAPIPropData ou retornando uma implementação de interface específica em lppMAPIPropNew para controlar como as propriedades da nova entrada são definidas.

lpMAPIPropData

[in] Um ponteiro para a implementação da interface que o chamador usa para acessar a entrada. Essa é a implementação que o provedor estrangeiro pode concluir com sua própria implementação e retornar no parâmetro lppMAPIPropNew . O parâmetro lpMAPIPropData deve apontar para uma implementação de interface de leitura/gravação que deriva de IMAPIProp : IUnknown e dá suporte à interface que está sendo solicitada no parâmetro lpInterface .

lpInterface

[in] Um ponteiro para o IID (identificador de interface) que representa a interface a ser usada para acessar a entrada. O parâmetro lppMAPIPropNew aponta para uma interface do tipo especificada por lpInterface. Passar NULL retorna a interface padrão de um usuário de mensagens, IID_IMailUser.

lppMAPIPropNew

[out] Um ponteiro para a implementação da interface que o provedor estrangeiro fornece para acessar a entrada.

lpMAPIPropSibling

Reservados; deve ser NULL.

Valor de retorno

S_OK

O processo de associação foi bem-sucedido.

MAPI_E_UNKNOWN_ENTRYID

O provedor de catálogo de endereços estrangeiro não existe.

Comentários

O método IMAPISupport::OpenTemplateID é implementado apenas para objetos de suporte do provedor de catálogo de endereços. OpenTemplateID é chamado apenas por provedores de catálogo de endereços que podem atuar como hosts para entradas que pertencem a outros provedores de catálogo de endereços, também conhecidos como provedores estrangeiros. Os provedores de host chamam OpenTemplateID para abrir uma entrada estrangeira, que ocorre quando os dados no provedor de host são vinculados ao código no provedor estrangeiro.

Notas para chamadores

Chame OpenTemplateID somente se você oferecer suporte ao armazenamento de entradas com identificadores de modelo de provedores de catálogo de endereços estrangeiros. Esse suporte coloca requisitos adicionais em suas implementações IABContainer::CreateEntry e IABLogon::OpenEntry . Para obter mais informações, consulte as descrições desses métodos e agindo como um provedor de catálogo de endereços de host.

Se a chamada OpenTemplateID retornar como a interface vinculada a mesma implementação de objeto de propriedade que você passou, você poderá liberar sua referência ao objeto de propriedade. Isso ocorre porque o provedor estrangeiro chamou o método AddRef do objeto para manter sua própria referência. Se o provedor estrangeiro não precisar manter uma referência ao objeto de propriedade, o OpenTemplateID retornará o objeto de propriedade desvinculado.

Se OpenTemplateID falhar com MAPI_E_UNKNOWN_ENTRYID, tente continuar tratando a entrada como somente leitura.

Confira também

IABLogon::OpenTemplateID

IPropData: IMAPIProp

Propriedade Canônica PidTagTemplateid

IMAPISupport: IUnknown