Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.