Criação aprimorada de metarquivos
Você cria um metarquivo avançado usando a funçãoCreateEnhMetaFile, fornecendo os argumentos apropriados. O sistema usa esses argumentos para manter as dimensões da imagem, determinar se o metarquivo deve ser armazenado em um disco ou na memória, e assim por diante.
Para manter as dimensões da imagem entre dispositivos de saída, CreateEnhMetaFile requer a resolução do dispositivo de referência. Este dispositivo de referência é o dispositivo no qual a imagem apareceu pela primeira vez e o DC de referência é o contexto do dispositivo associado ao dispositivo de referência. Ao chamar a função CreateEnhMetaFile, você deve fornecer um identificador que identifique esse DC. Você pode obter esse identificador chamando o GetDC ou função CreateDC. Você também pode especificar NULL como o identificador para usar o dispositivo de exibição atual para o dispositivo de referência.
A maioria dos aplicativos armazena imagens permanentemente e, portanto, cria um metarquivo aprimorado que é armazenado em um disco; no entanto, há alguns casos em que isso não é necessário. Por exemplo, um aplicativo de processamento de texto que fornece recursos de desenho de gráficos pode armazenar um gráfico definido pelo usuário na memória como um metarquivo aprimorado e, em seguida, copiar os bits de metarquivo aprimorados da memória para o arquivo de documento do usuário. Um aplicativo que requer um metarquivo armazenado permanentemente em um disco deve fornecer o nome do arquivo quando ele chama CreateEnhMetaFile. Se você não fornecer um nome de arquivo, o sistema automaticamente trata o metarquivo como um arquivo temporário e o armazena na memória.
Você pode adicionar uma descrição de texto opcional a um metarquivo contendo informações sobre a imagem e o autor. Um aplicativo pode exibir essas cadeias de caracteres na caixa de diálogo Abrir arquivo para fornecer ao usuário informações sobre o conteúdo do metarquivo que ajudarão na seleção do arquivo apropriado. Se um aplicativo incluir a descrição de texto, ele deve fornecer um ponteiro para a cadeia de caracteres quando ele chama CreateEnhMetaFile.
Quando CreateEnhMetaFile bem-sucedido, ele retorna um identificador que identifica um contexto de dispositivo de metarquivo especial. Um contexto de dispositivo de metarquivo é exclusivo na medida em que está associado a um arquivo em vez de a um dispositivo de saída. Quando o sistema processa uma função GDI que recebeu um identificador para um contexto de dispositivo de metaarquivo, ele converte a função GDI em um registro de metarquivo aprimorado e acrescenta o registro ao final do metarquivo avançado.
Depois que uma imagem estiver completa e o último registro for anexado ao metarquivo avançado, o aplicativo poderá fechá-lo chamando a funçãoCloseEnhMetaFile. Esta função fecha e exclui o contexto do dispositivo de metarquivo especial e retorna um identificador que identifica o metarquivo avançado.
Para excluir um metarquivo de formato avançado ou um identificador de metarquivo de formato aprimorado, chame a funçãoDeleteEnhMetaFile.