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, |