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.