Compartilhar via


IMessage::OpenAttach

Aplica-se a: Outlook 2013 | Outlook 2016

Abre um anexo.

HRESULT OpenAttach(
  ULONG ulAttachmentNum,
  LPCIID lpInterface,
  ULONG ulFlags,
  LPATTACH FAR * lppAttach
);

Parâmetros

ulAttachmentNum

[in] Número de índice do anexo a ser aberto, conforme armazenado na propriedade PR_ATTACH_NUM do anexo (PidTagAttachNumber). Esse número de índice identifica exclusivamente o anexo na mensagem e é válido apenas no contexto da mensagem.

lpInterface

[in] Ponteiro para o IID (identificador de interface) que representa a interface a ser usada para acessar o anexo. Passar NULL resulta no retorno da interface padrão do anexo ou IAttach.

ulFlags

[in] Bitmask de sinalizadores que controla como o anexo é aberto. Os seguintes sinalizadores podem ser definidos:

MAPI_BEST_ACCESS

Solicita que o anexo seja aberto com as permissões máximas de rede permitidas para o usuário e o acesso máximo do aplicativo cliente. Por exemplo, se o cliente tiver permissão de leitura/gravação, o anexo deverá ser aberto com permissão de leitura/gravação; se o cliente tiver acesso somente leitura, o anexo deverá ser aberto com acesso somente leitura.

MAPI_DEFERRED_ERRORS

Permite que o OpenAttach retorne com êxito, possivelmente antes que o anexo esteja totalmente disponível para o cliente de chamada. Se o anexo não estiver disponível, fazer uma chamada subsequente a ele poderá causar um erro.

MAPI_MODIFY

Solicita permissão de leitura/gravação. Por padrão, os anexos são abertos com acesso somente leitura e os clientes não devem trabalhar na suposição de que a permissão de leitura/gravação foi concedida.

lppAttach

[out] Ponteiro para um ponteiro para o anexo aberto.

Valor de retorno

S_OK

O anexo foi aberto com êxito.

Comentários

O método IMessage::OpenAttach abre o anexo de uma mensagem.

Notas para chamadores

Para abrir um anexo, você deve ter acesso ao número de anexo ou à propriedade PR_ATTACH_NUM . Chame IMessage::GetAttachmentTable para recuperar a tabela de anexo da mensagem e localizar a linha que representa o anexo a ser aberto. Consulte Abrir um Anexo para obter mais informações.

Não tente abrir um anexo várias vezes; os resultados são indefinidos e dependentes do provedor do repositório de mensagens.

Você pode solicitar que o anexo seja aberto no modo de leitura/gravação, em vez do modo padrão somente leitura. No entanto, se o anexo será realmente aberto no modo de leitura/gravação, cabe ao provedor do repositório de mensagens. Você pode tentar modificar o anexo, preparar-se para lidar com possíveis falhas ou marcar o nível de acesso que foi concedido recuperando a propriedade PR_ACCESS_LEVEL (PidTagAccessLevel) do anexo, se ela estiver disponível.

Referência do MFCMAPI

Para ver códigos de exemplo do MFCMAPI, confira a tabela a seguir.

Arquivo Função Comentário
AttachmentsDlg.cpp usado para
CAttachmentsDlg::OpenItemProp
O MFCMAPI usa o método IMessage::OpenAttach para abrir objetos de anexo,

Confira também

IMessage : IMAPIPropMFCMAPI como exemplo de código