Documentos compostos
Documentos compostos OLE permitem que os usuários que trabalham em um único aplicativo manipulem dados gravados em vários formatos e derivados de várias fontes. Por exemplo, um usuário pode inserir em um documento de processamento de palavras um grafo criado em um segundo aplicativo e um objeto de som criado em um terceiro aplicativo. A ativação do grafo faz com que o segundo aplicativo carregue sua interface do usuário ou pelo menos essa parte que contém as ferramentas necessárias para editar o objeto. Ativar o objeto de som faz com que o terceiro aplicativo o reproduza. Em ambos os casos, um usuário é capaz de manipular dados de fontes externas de dentro do contexto de um único documento.
A tecnologia de documento composto OLE se baseia em uma base composta por COM, armazenamento estruturado e transferência uniforme de dados. Conforme resumido abaixo, cada uma dessas tecnologias principais desempenha um papel crítico nos documentos compostos OLE:
-
COM
-
Um objeto de documento composto é essencialmente um objeto COM que pode ser inserido ou vinculado a um documento existente. Como um objeto COM, um objeto de documento composto expõe a interface IUnknown, por meio da qual os clientes podem obter ponteiros para suas outras interfaces, incluindo várias, como IOleObject, IOleLinke IViewObject2, que fornecem recursos especiais exclusivos para objetos de documento compostos.
-
armazenamento estruturado
-
Um objeto de documento composto deve implementar o IPersistStorage ou, opcionalmente, interfaces IPersistStream para gerenciar seu próprio armazenamento. Um contêiner usado para criar documentos compostos deve fornecer a interfaceIStorage, por meio da qual os objetos armazenam e recuperam dados. Os contêineres quase sempre fornecem instâncias de IStorage obtidos da implementação de Arquivos Compostos do OLE. Os contêineres também devem usar as interfaces IPersistStorage de um objeto e/ou IPersistStream.
-
transferência de dados uniforme
-
Os aplicativos que dão suporte a documentos compostos devem implementar IDataObject porque objetos inseridos e objetos vinculados começam como dados transferidos usando formatos especiais de área de transferência OLE, em vez de formatos de área de transferência padrão do Microsoft Windows. Em outras palavras, a formatação de dados como um objeto inserido ou vinculado é simplesmente mais uma opção fornecida pelo modelo de transferência de dados uniforme do OLE.
A tecnologia de documento composto da OLE beneficia tanto desenvolvedores de software quanto usuários. Em vez de se sentirem obrigados a empacotar todos os recursos concebíveis em um único aplicativo, os desenvolvedores de software agora são livres, se desejarem, para desenvolver aplicativos menores e mais focados que dependem de outros aplicativos para fornecer recursos adicionais. Nos casos em que um desenvolvedor de software decide fornecer a um aplicativo recursos além de seus principais recursos, o desenvolvedor pode implementar esses serviços adicionais como DLLs separadas, que são carregadas na memória somente quando seus serviços são necessários. Os usuários se beneficiam de softwares menores, mais rápidos e mais capazes que podem misturar e corresponder conforme necessário, manipulando todos os componentes necessários de dentro de um único documento mestre.
Para obter mais informações, consulte os seguintes tópicos:
- contêineres e servidores
- vinculação e inserção
- manipuladores de objetos
- servidores In-Process
- objetos vinculados e monikers
- Notificações
- interfaces de documento compostas
- estados de objeto
- implementando de ativação de In-Place
- criando objetos vinculados e inseridos de de dados existentes
- exibir de cache
Tópicos relacionados