Estrutura MapiFileDescW (mapi.h)

Uma estrutura MapiFileDescW contém informações sobre um arquivo que contém um anexo de mensagem armazenado como um arquivo temporário. Esse arquivo pode conter um objeto OLE estático, um objeto OLE inserido, uma mensagem inserida e outros tipos de arquivos.

Sintaxe

typedef struct {
  ULONG ulReserved;
  ULONG flFlags;
  ULONG nPosition;
  PWSTR lpszPathName;
  PWSTR lpszFileName;
  PVOID lpFileType;
} MapiFileDescW, *lpMapiFileDescW;

Membros

ulReserved

Tipo: ULONG

Reservados; deve ser 0.

flFlags

Tipo: ULONG

Máscara de bits de sinalizadores de anexo. Os sinalizadores a seguir podem ser definidos.

Valor Significado
MAPI_OLE
0x00000001
O anexo é um objeto OLE. Se MAPI_OLE_STATIC também estiver definido, o anexo será um objeto OLE estático. Se MAPI_OLE_STATIC não estiver definido, o anexo será um objeto OLE inserido.
MAPI_OLE_STATIC
0x00000002
O anexo é um objeto OLE estático.
 

Se nenhum sinalizador for definido, o anexo será tratado como um arquivo de dados.

nPosition

Tipo: ULONG

Um inteiro usado para indicar onde o anexo é renderizado no texto da mensagem. O texto da mensagem é armazenado no membro NoteText da estrutura MapiMessageW e o inteiro é usado como um índice para identificar um caractere específico na cadeia de caracteres de mensagem, NoteText[nPosition], que é substituído pelo anexo.

Um valor de -1 (0xFFFFFFFF) significa que a posição do anexo não é indicada e o aplicativo cliente deve fornecer uma maneira de o usuário acessar o anexo.

lpszPathName

Tipo: PWSTR

Ponteiro para o caminho totalmente qualificado do arquivo anexado. Esse caminho deve incluir a letra da unidade de disco e o nome do diretório.

lpszFileName

Tipo: PWSTR

Ponteiro para o nome do arquivo do anexo, conforme visto pelo destinatário. O nome do arquivo que é visto pelo destinatário pode ser diferente do nome do arquivo no membro lpszPathName se arquivos temporários estiverem sendo usados.

Se o membro lpszFileName estiver vazio ou NULL, o nome do arquivo de lpszPathName será usado.

lpFileType

Tipo: PVOID

Ponteiro para o tipo de arquivo de anexo, que pode ser representado com uma estrutura MapiFileTagExt .

Um valor nulo indica um tipo de arquivo desconhecido ou um tipo de arquivo determinado pelo sistema operacional.

Comentários

O MAPI simples funciona com três tipos de anexos inseridos:

  • Anexos de arquivo de dados
  • Anexos de arquivo de objeto OLE editável
  • Anexos de arquivo de objeto OLE estático
Anexos de arquivo de dados são simplesmente arquivos de dados. Anexos de arquivo de objeto OLE são objetos OLE exibidos no texto da mensagem. Se o anexo OLE for editável, o destinatário poderá clicar duas vezes nele e seu aplicativo de origem será iniciado para manipular a sessão de edição. Se o anexo OLE for estático, o objeto não poderá ser editado. O sinalizador definido no membro flFlags da estrutura MapiFileDescW determina o tipo de um anexo específico. As mensagens inseridas podem ser identificadas por um . Extensão MSG no membro lpszFileName .

Arquivos de objeto OLE são representações de arquivo de fluxos de objeto OLE. O aplicativo cliente pode recriar um objeto OLE do arquivo chamando a função OleLoadFromStream OLE com um objeto OLESTREAM que lê o conteúdo do arquivo. Se um anexo de arquivo OLE estiver incluído em uma mensagem de saída, o fluxo de objeto OLE deverá ser gravado diretamente no arquivo usado como anexo.

Ao usar o membro mapiFileDescWnPosition, o aplicativo cliente não deve colocar dois anexos no mesmo local. Os aplicativos cliente podem não exibir anexos de arquivo em posições além do final do texto da mensagem.

Requisitos

   
Cliente mínimo com suporte Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Cabeçalho mapi.h

Confira também

MAPISendMailW

MapiFileDesc

MapiMessageW