Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Um controle implementa uma ou mais de várias interfaces de persistência para dar suporte à persistência de seu estado. Por exemplo, o interface IPersistStreamInit suporta persistência baseada em fluxo do estado do controle. IPersistStreamInit é um substituto para IPersistStream e adiciona um método de inicialização, InitNew. Os outros métodos são os mesmos em ambas as interfaces. IPersistStreamInit não é derivado de IPersistStream; Um objeto suporta apenas uma das duas interfaces com base em se ele requer a capacidade de inicializar novas instâncias de si mesmo.
Outras interfaces de persistência que um controle pode oferecer incluem: IPersistStorage, IPersistMemory, IPersistPropertyBag, IPersistMoniker. O implementador de controle deve decidir quais tipos de persistência são mais importantes e implementar as interfaces de persistência apropriadas. O implementador de controle também decide o que salvar. Por exemplo, um controle pode salvar os valores atuais de suas propriedades ou sua localização e tamanho dentro de seu contêiner. O cliente decide qual interface prefere usar.
Antes de carregar um controle de seu estado persistente, um cliente pode verificar o sinalizador de OLEMISC_SETCLIENTSITEFIRST para determinar se o controle suporta a obtenção de suas propriedades de site e ambiente do cliente antes de carregar seu estado persistente. Essa otimização pode economizar tempo ao instanciar um controle, uma vez que o controle é livre para ignorar seus valores persistentes em vez de carregá-los apenas para substituí-los por propriedades ambientais fornecidas pelo cliente.
Um controle também pode suportar salvar e restaurar seu estado em um conjunto de propriedades OLE, um conjunto de identificadores e valores em um formato especificado. Esse recurso pode ser útil com contêineres como o Visual Basic, que salva seus programas em um formato textual. Um controle que deseja oferecer suporte a esse recurso implementa IDataObject::GetData e IDataObject::SetData para passar seus valores de propriedade de e para o contêiner, respectivamente. É tarefa do contêiner converter essas informações em texto e salvá-las. Os identificadores usados pelo controle correspondem aos nomes de propriedade do controle e aos valores. Consulte o OLE CDK para obter a definição deste conjunto de propriedades.
Tópicos relacionados