Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo explica os componentes e a implementação de arquivos compostos e as vantagens e desvantagens do uso de arquivos compostos em seus aplicativos OLE.
Os arquivos compostos são parte integrante do OLE. Eles são usados para facilitar a transferência de dados e o armazenamento de documentos OLE. Arquivos compostos são uma implementação do modelo de armazenamento estruturado ativo. Existem interfaces consistentes que dão suporte à serialização para um armazenamento, um fluxo ou um objeto de arquivo. Há suporte para arquivos compostos na Biblioteca de Classes do Microsoft Foundation pelas classes COleStreamFile e COleDocument.
Observação
O uso de um arquivo composto não implica que as informações sejam provenientes de um documento OLE ou de um documento composto. Arquivos compostos são apenas uma das maneiras de armazenar documentos compostos, documentos OLE e outros dados.
Componentes de um arquivo composto
A implementação OLE de arquivos compostos usa três tipos de objeto: objetos de fluxo, objetos de armazenamento e ILockBytes objetos. Esses objetos são semelhantes aos componentes de um sistema de arquivos padrão das seguintes maneiras:
Objetos de fluxo, como arquivos, armazenam dados de qualquer tipo.
Objetos de armazenamento, como diretórios, podem conter outros objetos de armazenamento e fluxo.
LockBytesos objetos representam a interface entre os objetos de armazenamento e o hardware físico. Eles determinam como os bytes reais são gravados em qualquer dispositivo de armazenamento que oLockBytesobjeto está acessando, como um disco rígido ou uma área de memória global. Para obter mais informações sobreLockBytesobjetos e aILockBytesinterface, consulte a Referência do Programador OLE.
Vantagens e desvantagens de arquivos compostos
Os arquivos compostos fornecem benefícios não disponíveis com métodos anteriores de armazenamento de arquivos. Elas incluem:
Acesso incremental a arquivos.
Modos de acesso a arquivos.
Padronização da estrutura de arquivos.
As possíveis desvantagens dos arquivos compostos – grandes problemas de tamanho e desempenho relacionados ao armazenamento em discos disquetes – devem ser consideradas ao decidir se devem usá-los em seu aplicativo.
Acesso incremental a arquivos
O acesso incremental aos arquivos é um benefício automático do uso de arquivos compostos. Como um arquivo composto pode ser exibido como um "sistema de arquivos dentro de um arquivo", tipos de objeto individuais, como fluxo ou armazenamento, podem ser acessados sem a necessidade de carregar todo o arquivo. Isso pode diminuir drasticamente o tempo que um aplicativo precisa para acessar novos objetos para edição pelo usuário. A atualização incremental, com base no mesmo conceito, oferece benefícios semelhantes. Em vez de salvar todo o arquivo apenas para salvar as alterações feitas em um objeto, o OLE salva apenas o fluxo ou o objeto de armazenamento editado pelo usuário.
Modos de acesso a arquivos
Ser capaz de determinar quando as alterações em objetos em um arquivo composto são confirmadas no disco é outro benefício do uso de arquivos compostos. O modo no qual os arquivos são acessados, transacionados ou diretos, determina quando as alterações são confirmadas.
O modo transacionado usa uma operação de confirmação em duas fases para fazer alterações em objetos em um arquivo composto, mantendo assim as cópias antigas e novas do documento disponíveis até que o usuário opte por salvar ou desfazer as alterações.
O modo direto incorpora alterações ao documento conforme elas são feitas, sem a capacidade de desfazê-las posteriormente.
Para obter mais informações sobre os modos de acesso, consulte a Referência do Programador OLE.
Padronização
A estrutura padronizada de arquivos compostos permite que diferentes aplicativos OLE naveguem por arquivos compostos criados pelo aplicativo OLE sem conhecimento do aplicativo que realmente criou o arquivo.
Considerações sobre tamanho e desempenho
Devido à complexidade da estrutura de armazenamento de arquivos composto e à capacidade de salvar dados incrementalmente, os arquivos que usam esse formato tendem a ser maiores do que outros arquivos usando armazenamento não estruturado ou "arquivo simples". Se o aplicativo carrega e salva arquivos com frequência, o uso de arquivos compostos pode fazer com que o tamanho do arquivo aumente muito mais rapidamente do que arquivos não compatíveis. Como os arquivos compostos podem ficar grandes, o tempo de acesso para arquivos armazenados e carregados de disquetes também pode ser afetado, resultando em um acesso mais lento aos arquivos.
Outro problema que afeta o desempenho é a fragmentação de arquivo composto. O tamanho de um arquivo composto é determinado pela diferença entre os setores de primeiro e último disco usados pelo arquivo. Um arquivo fragmentado pode conter muitas áreas de espaço livre que não contêm dados, mas são contadas ao calcular o tamanho. Durante o tempo de vida de um arquivo composto, essas áreas são criadas pela inserção ou exclusão de objetos de armazenamento.
Usando o formato de arquivos compostos para seus dados
Depois de criar com êxito um aplicativo que tenha uma classe de COleDocumentdocumento derivada, verifique se o construtor principal do documento chama EnableCompoundFile. Quando o assistente de aplicativo cria aplicativos de contêiner OLE, essa chamada é inserida para você.
Na referência do programador OLE, consulte IStream, IStorage e ILockBytes.
Consulte também
Contêineres
Contêineres: problemas de User-Interface
Classe COleStreamFile
Classe COleDocument