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 Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Estes macros definem mapas de propriedades e entradas.
| Nome | Description |
|---|---|
| BEGIN_PROP_MAP | Marca o início do mapa de propriedades da ATL. |
| PROP_DATA_ENTRY | Indica a extensão, ou dimensões, de um controlo ActiveX. |
| PROP_ENTRY_TYPE | Insere uma descrição da propriedade, o DISPID da propriedade e a página CLSID da propriedade no mapa da propriedade. |
| PROP_ENTRY_TYPE_EX | Insere uma descrição da propriedade, o DISPID da propriedade, a página CLSID e IDispatch o IID no mapa da propriedade. |
| PROP_PAGE | Insere uma página de propriedade CLSID no mapa da propriedade. |
| END_PROP_MAP | Marca o fim do mapa de propriedades da ATL. |
Requerimentos
Cabeçalho: atlcom.h
BEGIN_PROP_MAP
Marca o início do mapa de propriedades do objeto.
BEGIN_PROP_MAP(theClass)
Parâmetros
a Classe
[dentro] Especifica a classe que contém o mapa de propriedades.
Observações
O mapa da propriedade armazena descrições de propriedades, DISPIDs de propriedades, CLSIDs da página de propriedades e IDispatch IIDs. As classes IPerPropertyBrowsingImpl, IPersistPropertyBagImpl, IPersistStreamInitImpl e ISspecificifyPropertyPagesImpl utilizam o mapa de propriedades para recuperar e definir esta informação.
Quando crias um objeto com o ATL Project Wizard, o assistente cria um mapa de propriedades vazio especificando BEGIN_PROP_MAP seguido de END_PROP_MAP.
BEGIN_PROP_MAP não guarda a extensão (isto é, as dimensões) de um mapa de propriedades, porque um objeto que usa um mapa de propriedades pode não ter uma interface de utilizador, pelo que não teria extensão. Se o objeto for um controlo ActiveX com uma interface de utilizador, tem uma extensão. Neste caso, deve especificar PROP_DATA_ENTRY no seu mapa da propriedade para fornecer a extensão.
Example
BEGIN_PROP_MAP(CMyPropCtrl)
PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4)
PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4)
PROP_ENTRY_TYPE("Property1", 1, CLSID_MyPropPage1, VT_BSTR)
PROP_ENTRY_TYPE_EX("Caption", DISPID_CAPTION, CLSID_MyPropPage2, IID_IMyDual1, VT_BSTR)
PROP_ENTRY_INTERFACE_CALLBACK("CorrectParamCallback", 0, CLSID_MyPropPage1, AllowedCLSID, VT_DISPATCH)
PROP_ENTRY_INTERFACE_CALLBACK_EX("CorrectParamCallbackEx", 1, IID_IMyDual1, CLSID_MyPropPage2, AllowedCLSID, VT_UNKNOWN)
PROP_PAGE(CLSID_MyPropPage3)
END_PROP_MAP()
PROP_DATA_ENTRY
Indica a extensão, ou dimensões, de um controlo ActiveX.
PROP_DATA_ENTRY( szDesc, member, vt)
Parâmetros
szDesc
[em] A descrição do imóvel.
Membro
[dentro] O elemento de dados que contém a extensão; por exemplo, m_sizeExtent.
vt
[dentro] Especifica o tipo VARIANTE da propriedade.
Observações
Esta macro faz com que o elemento de dados especificado seja mantido.
Quando crias um controlo ActiveX, o assistente insere esta macro após a BEGIN_PROP_MAP da macro property map e antes da END_PROP_MAP do property map macro.
Example
No exemplo seguinte, a extensão do objeto (m_sizeExtent) está a ser mantida.
BEGIN_PROP_MAP(CMyWindow)
PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4)
PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4)
END_PROP_MAP()
BEGIN_PROP_MAP(CMyCompositeCtrl)
PROP_DATA_ENTRY("Width", m_nWidth, VT_UI4)
PROP_DATA_ENTRY("Height", m_nHeight, VT_UI4)
END_PROP_MAP()
PROP_ENTRY_TYPE
Use esta macro para inserir uma descrição de propriedade, um DISPID de propriedade e o CLSID da página de propriedades no mapa de propriedades do objeto.
PROP_ENTRY_TYPE( szDesc, dispid, clsid, vt)
Parâmetros
szDesc
[em] A descrição do imóvel.
dispid
[dentro] A propriedade é DISPID.
CLSID
[dentro] O CLSID da página de propriedades associadas. Utilize o CLSID_NULL de valor especial para uma propriedade que não tenha uma página de propriedade associada.
vt
[dentro] O tipo da propriedade.
Observações
O PROP_ENTRY macro era inseguro e obsoleto. Foi substituído por PROP_ENTRY_TYPE.
O macro BEGIN_PROP_MAP marca o início do mapa de propriedades; O END_PROP_MAP macro marca o fim.
Example
Veja o exemplo para BEGIN_PROP_MAP.
PROP_ENTRY_TYPE_EX
Semelhante ao PROP_ENTRY_TYPE, mas permite especificar um IID específico se o teu objeto suportar múltiplas interfaces duplas.
PROP_ENTRY_TYPE_EX( szDesc, dispid, clsid, iidDispatch, vt)
Parâmetros
szDesc
[em] A descrição do imóvel.
dispid
[dentro] A propriedade é DISPID.
CLSID
[dentro] O CLSID da página de propriedades associadas. Utilize o CLSID_NULL de valor especial para uma propriedade que não tenha uma página de propriedade associada.
iidDispatch
[dentro] O IID da interface dual que define a propriedade.
vt
[dentro] O tipo da propriedade.
Observações
O PROP_ENTRY_EX macro era inseguro e desvalorizado. Foi substituído por PROP_ENTRY_TYPE_EX.
O macro BEGIN_PROP_MAP marca o início do mapa de propriedades; O END_PROP_MAP macro marca o fim.
Example
O exemplo seguinte agrupa entradas para IMyDual1 seguidas de uma entrada para IMyDual2. Agrupar por interface dupla vai melhorar o desempenho.
BEGIN_PROP_MAP(CAtlEdit)
PROP_ENTRY_TYPE_EX("Caption", DISPID_CAPTION, CLSID_MyPropPage2, IID_IMyDual1, VT_BSTR)
PROP_ENTRY_TYPE_EX("Enabled", DISPID_ENABLED, CLSID_MyPropPage2, IID_IMyDual1, VT_BOOL)
PROP_ENTRY_TYPE_EX("Width", DISPID_DRAWWIDTH, CLSID_MyPropPage2, IID_IMyDual2, VT_UINT)
END_PROP_MAP()
PROP_PAGE
Use esta macro para inserir uma página de propriedades CLSID no mapa de propriedades do objeto.
PROP_PAGE(clsid)
Parâmetros
CLSID
[dentro] O CLSID de uma página de propriedades.
Observações
PROP_PAGE é semelhante ao PROP_ENTRY_TYPE, mas não requer uma descrição da propriedade nem DISPID.
Observação
Se já inscreveu um CLSID com PROP_ENTRY_TYPE ou PROP_ENTRY_TYPE_EX, não precisa de fazer uma entrada adicional com PROP_PAGE.
O macro BEGIN_PROP_MAP marca o início do mapa de propriedades; O END_PROP_MAP macro marca o fim.
Example
BEGIN_PROP_MAP(CMyCtrl)
OtherPropMapEntries
PROP_PAGE(CLSID_DatePage)
PROP_PAGE(CLSID_StockColorPage)
END_PROP_MAP()
END_PROP_MAP
Marca o fim do mapa de propriedades do objeto.
END_PROP_MAP()
Observações
Quando crias um objeto com o Assistente de Projetos ATL, o assistente cria um mapa de propriedades vazio especificando BEGIN_PROP_MAP seguido de END_PROP_MAP.
Example
Veja o exemplo para BEGIN_PROP_MAP.