Tabelas de anexos
Aplica-se a: Outlook 2013 | Outlook 2016
Uma tabela de anexo contém informações sobre todos os objetos de anexo associados a uma mensagem enviada ou uma mensagem em composição.
Somente anexos salvos por meio de uma chamada para o método IMAPIProp::SaveChanges da mensagem são incluídos na tabela. As tabelas de anexo são implementadas por provedores de repositório de mensagens e usadas por aplicativos cliente e provedores de transporte.
Uma tabela de anexo pode ser acessada chamando um dos seguintes:
IMAPIProp::OpenProperty, solicitando a propriedade PR_MESSAGE_ATTACHMENTS (PidTagMessageAttachments).
As tabelas de anexo são dinâmicas.
Os provedores do repositório de mensagens não são necessários para dar suporte à classificação em suas tabelas de anexo. Se não houver suporte para classificação, a tabela deverá ser apresentada em ordem renderizando a posição – a propriedade PR_RENDERING_POSITION (PidTagRenderingPosition).
Os provedores do repositório de mensagens também não são necessários para dar suporte a restrições em suas tabelas de anexo. Provedores que não dão suporte a restrições retornam MAPI_E_NO_SUPPORT de suas implementações de IMAPITable::Restrict e IMAPITable::FindRow.
As tabelas de anexo podem ser pequenas; há apenas quatro colunas no conjunto de colunas necessário:
PR_ATTACH_NUM (PidTagAttachNumber)
PR_INSTANCE_KEY (PidTagInstanceKey)
PR_RECORD_KEY (PidTagRecordKey)
PR_RENDERING_POSITION
PR_ATTACH_NUM não étransmittable e contém um valor para identificar exclusivamente um anexo dentro de uma mensagem. Essa propriedade geralmente é usada como um índice nas linhas da tabela. PR_ATTACH_NUM tem uma vida útil curta; ela só é válida enquanto a mensagem que contém o anexo está aberta. Seu valor é garantido para permanecer constante enquanto a tabela de anexo estiver aberta.
PR_INSTANCE_KEY é necessário em quase todas as tabelas. Ele é usado para identificar exclusivamente uma linha específica.
PR_RECORD_KEY é comumente usado para identificar exclusivamente um objeto para fins de comparação. Ao contrário de PR_ATTACH_NUM, PR_RECORD_KEY tem o mesmo escopo de um identificador de entrada de longo prazo; ela permanece disponível e válida mesmo depois que a mensagem é fechada e reaberta. Para obter mais informações sobre o uso de chaves de registro no MAPI, consulte Mapi Record e Search Keys.
PR_RENDERING_POSITION indica como um anexo deve ser exibido em uma mensagem de texto avançada. Ele pode ser definido como um deslocamento em caracteres, com o primeiro caractere do conteúdo da mensagem armazenado na propriedade PR_BODY (PidTagBody) sendo deslocamento 0 ou para -1 (0xFFFFFFFF), indicando que o anexo não deve ser renderizado dentro do texto da mensagem. Não definir PR_RENDERING_POSITION também é uma opção.
Quando uma tabela de anexo é classificada pela posição de renderização, o provedor do repositório de mensagens a trata como um valor assinado (PT_LONG). Portanto, anexos com posições de renderização de -1 são classificados antes de anexos com posições de renderização que refletem deslocamentos válidos.
Para obter mais informações sobre como renderizar um anexo em uma mensagem de texto simples, consulte Renderizando um Anexo em Texto Sem Formatação.
Para obter informações sobre como renderizar um anexo em texto formatado, como Formato de Texto Avançado (RTF), consulte Renderizando um Anexo no Texto RTF.
Algumas das propriedades que os provedores do repositório de mensagens geralmente incluem em uma tabela de anexo porque são fáceis de calcular ou recuperar são:
Propriedade | ... |
---|---|
PR_ATTACH_ENCODING (PidTagAttachEncoding) |
PR_ATTACH_EXTENSION (PidTagAttachExtension) |
PR_ATTACH_FILENAME (PidTagAttachFilename) |
PR_ATTACH_LONG_FILENAME (PidTagAttachLongFilename) |
PR_ATTACH_PATHNAME (PidTagAttachPathname) |
PR_ATTACH_LONG_PATHNAME (PidTagAttachLongPathname) |
PR_ATTACH_METHOD (PidTagAttachMethod) |
PR_ATTACH_TAG (PidTagAttachTag) |
PR_CREATION_TIME (PidTagCreationTime) |
PR_ATTACH_TRANSPORT_NAME (PidTagAttachTransportName) |
PR_DISPLAY_NAME (PidTagDisplayName) |
PR_LAST_MODIFICATION_TIME (PidTagLastModificationTime) |