Partilhar via


Operações de metarquivo aprimoradas

Você pode usar o identificador para um metarquivo avançado para realizar as seguintes tarefas:

  • Exiba a imagem armazenada em um metarquivo avançado.
  • Crie cópias de um metarquivo avançado.
  • Edite um metarquivo avançado.
  • Recupere a descrição opcional armazenada em um metarquivo avançado.
  • Recupere uma cópia de um cabeçalho de metarquivo aprimorado.
  • Recupere uma versão binária de um metarquivo avançado.
  • Enumere as cores na paleta opcional.

Essas tarefas são discutidas nas seções no restante deste tópico.

Exibir a imagem armazenada em um metarquivo avançado

Você pode exibir a imagem armazenada em um metarquivo avançado usando a funçãoPlayEnhMetaFile. Passe um identificador da função para o metarquivo avançado, sem se preocupar com o formato dos registros de metarquivo avançados. No entanto, às vezes é desejável enumerar os registros no metarquivo aprimorado para procurar uma função GDI específica e modificar os parâmetros da função de alguma maneira. Para fazer isso, você pode usar EnumEnhMetaFile e fornecer uma função de retorno de chamada, EnhMetaFileProc, para processar os registros de metarquivo avançados. Para modificar os parâmetros de um registro de metarquivo avançado, você deve saber o formato dos parâmetros dentro do registro.

Criar cópias de um metarquivo avançado

Alguns aplicativos criam cópias temporárias de backup (ou duplicadas) de um arquivo antes de permitir que o usuário altere o original. Um aplicativo pode criar uma cópia de backup de um metarquivo avançado chamando a funçãoCopyEnhMetaFile, fornecendo um identificador que identifica o metarquivo avançado e fornecendo um ponteiro para o nome do novo arquivo.

Para criar um metarquivo de formato avançado baseado em memória, chame a funçãoSetEnhMetaFileBits.

Editar um metarquivo avançado

A maioria dos aplicativos de desenho, ilustração e desenho assistido por computador (CAD) requer um meio de editar uma imagem armazenada em um metarquivo aprimorado. Embora a edição de um metarquivo avançado seja uma tarefa complexa, você pode usar a funçãoEnumEnhMetaFileem combinação com outras funções para fornecer esse recurso em seu aplicativo. A função EnumEnhMetaFile e sua função de retorno de chamada associada, EnhMetaFileProc, permitem que o aplicativo processe registros individuais em um metarquivo aprimorado.

Recuperar a descrição opcional armazenada em um metarquivo avançado

Alguns aplicativos exibem a descrição de texto de um metarquivo avançado com o nome de arquivo correspondente na caixa de diálogo Abrir. Você pode determinar se essa cadeia de caracteres existe em um metarquivo avançado recuperando o cabeçalho do metarquivo com a funçãoGetEnhMetaFileHeadere examinando um de seus membros. Se a cadeia de caracteres existir, o aplicativo a recuperará chamando a funçãoGetEnhMetaFileDescription.

Recuperar uma versão binária de um metarquivo avançado

Você pode recuperar o conteúdo de um metarquivo chamando a funçãoGetEnhMetaFileBits; No entanto, antes de recuperar o conteúdo, você deve especificar o tamanho do arquivo. Para obter o tamanho, você pode usar a função GetEnhMetaFileHeader e examinar o membro apropriado.

Enumerar as cores na paleta opcional

Para obter cores consistentes quando uma imagem é exibida em vários dispositivos de saída, você pode chamar a funçãoCreatePalette e armazenar uma paleta lógica em um metarquivo avançado. Um aplicativo que exibe a imagem armazenada no metarquivo avançado recupera essa paleta e chama a função RealizePalette antes de exibir a imagem. Para determinar se uma paleta está armazenada em um metarquivo avançado, recupere o cabeçalho do metarquivo e examine o membro apropriado. Se existir uma paleta, você pode chamar o função GetEnhMetaFilePaletteEntries para recuperar a paleta lógica.