Partilhar via


Classe CPropExchange

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Suporta a implementação da persistência para os seus controlos OLE.

Sintaxe

class AFX_NOVTABLE CPropExchange

Membros

Métodos Públicos

Nome Description
CPropExchange::ExchangeBlobProp Troca uma propriedade binária de objeto grande (BLOB).
CPropExchange::ExchangeFontProp Troca uma propriedade de fonte.
CPropExchange::ExchangePersistentProp Troca uma propriedade entre um controlo e um ficheiro.
CPropExchange::ExchangeProp Troca propriedades de qualquer tipo incorporado.
CPropExchange::ExchangeVersion Troca o número de versão de um controlo OLE.
CPropExchange::GetVersion Recupera o número de versão de um controlo OLE.
CPropExchange::IsAssíncrono Determina se as trocas de propriedades são feitas de forma assíncrona.
CPropExchange::IsLoading Indica se as propriedades estão a ser carregadas no controlo ou guardadas dele.

Observações

CPropExchange não tem uma classe base.

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

Persistência é a troca da informação de estado do controlo, geralmente representada pelas suas propriedades, entre o próprio controlo e um meio.

O framework constrói um objeto derivado do CPropExchange momento em que é notificado que as propriedades de um controlo OLE devem ser carregadas ou armazenadas para armazenamento persistente.

O framework passa um ponteiro para este CPropExchange objeto para a função do DoPropExchange teu controlo. Se usares um assistente para criar os ficheiros iniciais do teu controlo, a função do DoPropExchange teu controlo chama COleControl::DoPropExchange. A versão de classe base troca as propriedades de ações do controlo; Modificas a versão da tua classe derivada para trocar propriedades que adicionaste ao teu controlo.

CPropExchange pode ser usado para serializar as propriedades de um controlo ou inicializar as propriedades de um controlo aquando da carga ou criação de um controlo. As ExchangeProp funções membros ExchangeFontProp e de CPropExchange conseguem armazenar propriedades e carregá-las a partir de diferentes meios.

Para mais informações sobre a utilização CPropExchangede , veja o artigo MFC ActiveX Controls: Property Pages.

Hierarquia de herança

CPropExchange

Requerimentos

Cabeçalho: afxctl.h

CPropExchange::ExchangeBlobProp

Serializa uma propriedade que armazena dados binários de objetos grandes (BLOB).

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

Parâmetros

pszPropName
O nome da propriedade que está a ser trocada.

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

hBlobDefault
Valor padrão da propriedade.

Valor de retorno

Não nulo se a troca fosse bem-sucedida; 0 se não for bem-sucedido.

Observações

O valor da propriedade é lido ou escrito, conforme apropriado, na variável referenciada pelo phBlob. Se hBlobDefault for especificado, será usado como valor padrão da propriedade. Este valor é usado se, por qualquer motivo, a serialização do controlo falhar.

As funções CArchivePropExchange::ExchangeBlobProp, CResetPropExchange::ExchangeBlobProp, e CPropsetPropExchange::ExchangeBlobProp sobrepõem-se a esta função puramente virtual.

CPropExchange::ExchangeFontProp

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

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

Parâmetros

pszPropName
O nome da propriedade que está a ser trocada.

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

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

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

Valor de retorno

Não nulo se a troca fosse bem-sucedida; 0 se não for bem-sucedido.

Observações

Se a propriedade da fonte estiver a ser carregada do meio para o controlo, as características da fonte são recuperadas do meio e o CFontHolder objeto referenciado pela fonte é inicializado com elas. Se a propriedade da fonte estiver a ser armazenada, as características do objeto da fonte são escritas para o meio.

As funções CArchivePropExchange::ExchangeFontProp, CResetPropExchange::ExchangeFontProp, e CPropsetPropExchange::ExchangeFontProp sobrepõem-se a esta função puramente virtual.

CPropExchange::ExchangePersistentProp

Troca uma propriedade entre o controlo e um ficheiro.

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

Parâmetros

pszPropName
O nome da propriedade que está a ser trocada.

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

iid
ID de interface da interface na propriedade que o controlo irá utilizar.

pUnkDefault
Valor padrão da propriedade.

Valor de retorno

Não nulo se a troca fosse bem-sucedida; 0 se não for bem-sucedido.

Observações

Se a propriedade estiver a ser carregada do ficheiro para o controlo, a propriedade é criada e inicializada a partir do ficheiro. Se a propriedade estiver a ser armazenada, o seu valor é gravado no ficheiro.

As funções CArchivePropExchange::ExchangePersistentProp, CResetPropExchange::ExchangePersistentProp, e CPropsetPropExchange::ExchangePersistentProp sobrepõem-se a esta função puramente virtual.

CPropExchange::ExchangeProp

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

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

Parâmetros

pszPropName
O nome da propriedade que está a ser trocada.

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

Symbol 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 indicador do valor da propriedade.

pvDefault
Aponta para um valor padrão da propriedade.

Valor de retorno

Não nulo se a troca fosse bem-sucedida; 0 se não for bem-sucedido.

Observações

Se a propriedade estiver a ser carregada do meio para o controlo, o valor da propriedade é recuperado do meio e armazenado no objeto apontado pelo pvProp. Se a propriedade estiver a ser armazenada no meio, o valor do objeto apontado pelo pvProp é escrito para o meio.

As funções CArchivePropExchange::ExchangeProp, CResetPropExchange::ExchangeProp, e CPropsetPropExchange::ExchangeProp sobrepõem-se a esta função puramente virtual.

CPropExchange::ExchangeVersion

Chamado pelo framework para gerir 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 onde será armazenado o número de versão dos dados persistentes a ser carregados.

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

bConvert
Indica se deve converter dados persistentes para a versão atual ou mantê-los na mesma versão que foi carregada.

Valor de retorno

Não nula se a função tivesse sucesso; 0 caso contrário.

CPropExchange::GetVersion

Chame esta função para recuperar o número de versão do controlo.

DWORD GetVersion();

Valor de retorno

O número de versão do controlo.

CPropExchange::IsAssíncrono

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

BOOL IsAsynchronous();

Valor de retorno

Retorna TRUE se as propriedades forem trocadas assíncronas, caso contrário FALSE.

CPropExchange::IsLoading

Chame esta função para determinar se as propriedades estão a ser carregadas no controlo ou guardadas dele.

BOOL IsLoading();

Valor de retorno

Não nula se as propriedades estiverem a ser carregadas; caso contrário, 0.

Consulte também

Gráfico de Hierarquia
COleControl::D oPropExchange