Compartilhar via


Classe CPropExchange

Dá suporte à implementação da persistência para seus controles OLE.

Sintaxe

class AFX_NOVTABLE CPropExchange

Membros

Métodos públicos

Nome Descrição
CPropExchange::ExchangeBlobProp Troca uma propriedade de BLOB (objeto binário grande).
CPropExchange::ExchangeFontProp Troca uma propriedade de fonte.
CPropExchange::ExchangePersistentProp Troca uma propriedade entre um controle e um arquivo.
CPropExchange::ExchangeProp Troca propriedades de qualquer tipo interno.
CPropExchange::ExchangeVersion Troca o número de versão de um controle de OLE.
CPropExchange::GetVersion Recupera o número de versão de um controle de OLE.
CPropExchange::IsAsynchronous Determina se as trocas de propriedades são feitas de maneira assíncrona.
CPropExchange::IsLoading Indica se as propriedades estão sendo carregadas no controle ou salvas dele.

Comentários

CPropExchange não tem uma classe base.

Estabelece o contexto e a direção de uma troca de propriedades.

Persistência é a troca das informações de estado do controle, geralmente representadas por suas propriedades, entre o controle e um meio.

A estrutura constrói um objeto derivado de CPropExchange quando é notificada de que as propriedades de um controle de OLE devem ser carregadas do armazenamento persistente ou armazenadas nele.

A estrutura passa um ponteiro para esse objeto CPropExchange para a função DoPropExchange do controle. Se você usou um assistente para criar os arquivos de início para o controle, a função DoPropExchange do controle chamará COleControl::DoPropExchange. A versão da classe base troca as propriedades de estoque do controle; você modifica a versão da classe derivada para trocar as propriedades adicionadas ao controle.

CPropExchange pode ser usado para serializar ou inicializar as propriedades de um controle após a carga ou a criação de um controle. As funções membro ExchangeProp e ExchangeFontProp de CPropExchange são capazes de armazenar propriedades e carregá-las de diferentes mídias.

Para obter mais informações sobre o uso de CPropExchange, consulte o artigo Controles ActiveX do MFC: Páginas de Propriedades.

Hierarquia de herança

CPropExchange

Requisitos

Cabeçalho: afxctl.h

CPropExchange::ExchangeBlobProp

Serializa uma propriedade que armazena dados de BLOB (objeto binário grande).

virtual BOOL ExchangeBlobProp(
    LPCTSTR pszPropName,
    HGLOBAL* phBlob,
    HGLOBAL hBlobDefault = NULL) = 0;

Parâmetros

pszPropName
O nome da propriedade que está sendo trocada.

phBlob
Ponteiro para uma variável que aponta para onde a propriedade está armazenada (a variável normalmente é um membro de sua classe).

hBlobDefault
Valor padrão da propriedade.

Valor de retorno

Um valor diferente de zero, se a troca tiver êxito. Caso contrário, 0.

Comentários

O valor da propriedade é lido ou gravado, conforme apropriado, a variável referida por phBlob. Se hBlobDefault for especificado, ele será usado como o valor padrão da propriedade. Esse valor será usado se, por algum motivo, a serialização do controle falhar.

As funções CArchivePropExchange::ExchangeBlobProp, CResetPropExchange::ExchangeBlobProp e CPropsetPropExchange::ExchangeBlobProp substituem essa função virtual pura.

CPropExchange::ExchangeFontProp

Troca uma propriedade de fonte entre um meio de armazenamento e o controle.

virtual BOOL ExchangeFontProp(
    LPCTSTR pszPropName,
    CFontHolder& font,
    const FONTDESC* pFontDesc,
    LPFONTDISP pFontDispAmbient) = 0;

Parâmetros

pszPropName
O nome da propriedade que está sendo trocada.

font
Uma referência a um objeto CFontHolder que contém a propriedade de fonte.

pFontDesc
Um ponteiro para uma estrutura FONTDESC que contém valores para inicializar o estado padrão da propriedade de fonte quando pFontDispAmbient é NULL.

pFontDispAmbient
Um ponteiro para a interface IFontDisp de uma fonte a ser usada para inicializar o estado padrão da propriedade de fonte.

Valor de retorno

Um valor diferente de zero, se a troca tiver êxito. Caso contrário, 0.

Comentários

Se a propriedade de fonte estiver sendo carregada do meio para o controle, as características da fonte serão recuperadas do meio e o objeto CFontHolder referenciado por font será inicializado com elas. Se a propriedade de fonte estiver sendo armazenada, as características no objeto de fonte serão gravadas no meio.

As funções CArchivePropExchange::ExchangeFontProp, CResetPropExchange::ExchangeFontProp e CPropsetPropExchange::ExchangeFontProp substituem essa função virtual pura.

CPropExchange::ExchangePersistentProp

Troca uma propriedade entre o controle e um arquivo.

virtual BOOL ExchangePersistentProp(
    LPCTSTR pszPropName,
    LPUNKNOWN* ppUnk,
    REFIID iid,
    LPUNKNOWN pUnkDefault) = 0;

Parâmetros

pszPropName
O nome da propriedade que está sendo trocada.

ppUnk
Um ponteiro para uma variável que contém um ponteiro para a interface IUnknown da propriedade (essa variável normalmente é um membro de sua classe).

iid
ID da interface na propriedade que o controle usará.

pUnkDefault
Valor padrão da propriedade.

Valor de retorno

Um valor diferente de zero, se a troca tiver êxito. Caso contrário, 0.

Comentários

Se a propriedade estiver sendo carregada do arquivo para o controle, ela será criada e inicializada do arquivo. Se a propriedade estiver sendo armazenada, seu valor será gravado no arquivo.

As funções CArchivePropExchange::ExchangePersistentProp, CResetPropExchange::ExchangePersistentProp e CPropsetPropExchange::ExchangePersistentProp substituem essa função virtual pura.

CPropExchange::ExchangeProp

Troca uma propriedade entre um meio de armazenamento e o controle.

virtual BOOL ExchangeProp(
    LPCTSTR pszPropName,
    VARTYPE vtProp,
    void* pvProp,
    const void* pvDefault = NULL) = 0 ;

Parâmetros

pszPropName
O nome da propriedade que está sendo trocada.

vtProp
Um símbolo que especifica o tipo da propriedade que está sendo trocada. Os valores possíveis são:

Símbolo Tipo de propriedade
VT_I2 short
VT_I4 long
VT_BOOL BOOL
VT_BSTR CString
VT_CY CY
VT_R4 float
VT_R8 double

pvProp
Um ponteiro para o valor da propriedade.

pvDefault
Ponteiro para o valor padrão da propriedade.

Valor de retorno

Um valor diferente de zero, se a troca tiver êxito. Caso contrário, 0.

Comentários

Se a propriedade estiver sendo carregada do meio para o controle, o valor da propriedade será recuperado do meio e armazenado no objeto para o qual pvProp apontou. Se a propriedade estiver sendo armazenada no meio, o valor do objeto para o qual pvProp apontou será gravado no meio.

As funções CArchivePropExchange::ExchangeProp, CResetPropExchange::ExchangeProp e CPropsetPropExchange::ExchangeProp substituem essa função virtual pura.

CPropExchange::ExchangeVersion

Chamado pela estrutura para lidar com a persistência de um número de versão.

virtual BOOL ExchangeVersion(
    DWORD& dwVersionLoaded,
    DWORD dwVersionDefault,
    BOOL bConvert);

Parâmetros

dwVersionLoaded
Referência a uma variável em que o número de versão dos dados persistentes que estão sendo carregados será armazenado.

dwVersionDefault
O número de versão atual do controle.

bConvert
Indica se os dados persistentes devem ser convertidos na versão atual ou mantidos na mesma versão em que foram carregados.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

CPropExchange::GetVersion

Chame essa função para recuperar o número de versão do controle.

DWORD GetVersion();

Valor de retorno

O número de versão do controle.

CPropExchange::IsAsynchronous

Determina se as trocas de propriedades são feitas de maneira assíncrona.

BOOL IsAsynchronous();

Valor de retorno

Retornará TRUE se as propriedades forem trocadas de maneira assíncrona; caso contrário, FALSE.

CPropExchange::IsLoading

Chame essa função para determinar se as propriedades estão sendo carregadas no controle ou salvas nele.

BOOL IsLoading();

Valor de retorno

Diferente de zero se as propriedades estiverem sendo carregadas; caso contrário, 0.

Confira também

Gráfico da hierarquia
COleControl::DoPropExchange