A estrutura FORMATETC

A estrutura FORMATETC é um formato generalizado da área de transferência, aprimorado para abranger um dispositivo de destino, um aspecto ou visualização dos dados e um meio de armazenamento. Um consumidor de dados, como um aplicativo de contêiner OLE, passa a estrutura FORMATETC como um argumento em chamadas para IDataObject para indicar o tipo de dados que deseja de uma fonte de dados, como um objeto de documento composto. A fonte usa a estrutura FORMATETC para descrever quais formatos ela pode fornecer.

FORMATETC pode descrever praticamente todos os dados, incluindo outros objetos, como apelidos. Um contêiner pode pedir a um de seus objetos incorporados para listar seus formatos de dados chamando IDataObject::EnumFormatEtc, que retorna um objeto enumerador que implementa a interface IEnumFORMATETC. Em vez de responder apenas que tem "texto e um bitmap", o objeto pode fornecer uma descrição detalhada dos dados, incluindo o dispositivo (normalmente tela ou impressora) para o qual é renderizado, o aspecto a ser apresentado ao usuário (conteúdo completo, miniatura, ícone ou formatado para impressão) e o meio de armazenamento que contém os dados (memória global, arquivo de disco, objeto de armazenamento ou fluxo). Essa capacidade de descrever dados rigorosamente resultará, com o tempo, em uma impressora de maior qualidade e saída de tela, bem como mais eficiência na navegação de dados, onde um esboço em miniatura é muito mais rápido de recuperar e exibir do que uma renderização totalmente detalhada.

A tabela a seguir lista os campos da estrutura de dados FORMATETC e as informações que eles especificam.

Campo Especifica
cfFormat
O formato no qual os dados devem ser renderizados, que pode ser um formato de área de transferência padrão, um formato proprietário ou um formato OLE. Para obter mais informações sobre formatos OLE, consulte Documentos compostos.
ptd
Uma estrutura DVTARGETDEVICE, que contém informações suficientes sobre um dispositivo de destino do Windows, como uma tela ou impressora, para que um identificador para seu contexto de dispositivo (hDC) possa ser criado usando a função CreateDC.
dwAspect
O aspecto ou a exibição dos dados a serem renderizados; pode ser o conteúdo completo, um esboço em miniatura, um ícone ou formatado para impressão.
lindex
A parte do aspecto que interessa; Para o presente, o valor deve ser -1, indicando que toda a vista é de interesse.
tymed
A mídia de armazenamento de dados, que pode ser memória global, arquivo de disco ou uma instância de uma das interfaces de armazenamento estruturado do COM.

Formatos de dados e mídia de transferência