Compartilhar via


Interfaces de objeto persistentes

Um objeto persistente implementa uma ou mais interfaces de objeto persistentes . Os clientes usam interfaces de objeto persistentes para informar a esses objetos quando e onde armazenar seu estado. Todas as interfaces de objeto persistente são derivadas de IPersist, portanto, qualquer objeto que implemente qualquer interface de objeto persistente também implementa IPersist.

As seguintes interfaces de objeto persistente estão definidas no momento:

  • IPersistStream
  • IPersistStreamInit
  • IPersistStorage
  • IPersistFile
  • IPersistMoniker
  • IPersistMemory
  • IPersistPropertyBag

Os implementadores escolhem quais interfaces de objeto persistentes um objeto dá suporte dependendo de como o objeto deve ser usado. Ao não dar suporte a nenhuma interface de objeto persistente, o implementador está efetivamente dizendo: "O estado desse objeto não pode ser armazenado persistentemente". Ao dar suporte a uma ou mais interfaces de objeto persistentes, o implementador está efetivamente dizendo: "O estado desse objeto pode ser armazenado persistentemente em um ou mais meios de armazenamento de dados".

Por exemplo, a tabela a seguir lista vários tipos de objeto que permitem suporte para diferentes interfaces de objeto persistentes.

Categoria Interfaces de objeto persistentes normalmente compatíveis
Monikers
IPersistStream
Objetos inseriveis OLE
IPersistStorage, IPersistFile
Controles ActiveX
IPersistStreamInit, IPersistStorage, IPersistMemory, IPersistPropertyBag, IPersistMoniker
Objetos de documento ActiveX
IPersistStorage, IPersistFile

Os implementadores de cliente também podem escolher quais interfaces de objeto persistentes o cliente pode usar. As interfaces que um cliente usa geralmente são determinadas por onde o cliente pode armazenar seus próprios dados. Um cliente que pode armazenar seus dados apenas em um arquivo simples provavelmente usará apenas IPersistStreamInit, IPersistMonikere IPersistPropertyBag. (IPersistStreamInit pode substituir IPersistStream na maioria dos aplicativos, pois contém essa definição e adiciona um método de inicialização.) Um cliente que pode salvar seus dados em um arquivo de armazenamento estruturado usará, além disso, IPersistStorage.

inicializando objetos persistentes