Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Deze macro's definiëren eigenschapstoewijzingen en -vermeldingen.
| Naam | Description |
|---|---|
| BEGIN_PROP_MAP | Hiermee wordt het begin van de ATL-eigenschapstoewijzing gemarkeerd. |
| PROP_DATA_ENTRY | Geeft de omvang of dimensies van een ActiveX-besturingselement aan. |
| PROP_ENTRY_TYPE | Hiermee voert u een eigenschapsbeschrijving, eigenschapS-DISPID en eigenschappenpagina CLSID in de eigenschappentoewijzing in. |
| PROP_ENTRY_TYPE_EX | Hiermee voert u een beschrijving van de eigenschap, eigenschap DISPID, eigenschappenpagina CLSID en IDispatch IID in de eigenschappentoewijzing in. |
| PROP_PAGE | Hiermee voert u een eigenschappenpagina CLSID in de eigenschappentoewijzing in. |
| END_PROP_MAP | Hiermee wordt het einde van de ATL-eigenschapstoewijzing gemarkeerd. |
Requirements
Koptekst: atlcom.h
BEGIN_PROP_MAP
Hiermee wordt het begin van de eigenschapstoewijzing van het object gemarkeerd.
BEGIN_PROP_MAP(theClass)
Parameterwaarden
theClass
[in] Hiermee geeft u de klasse die de eigenschapstoewijzing bevat.
Opmerkingen
In het eigenschappenoverzicht worden beschrijvingen van eigenschappen, dispids van eigenschappen, eigenschappenpagina CLSID's en IDispatch IID's opgeslagen. Klassen IPerPropertyBrowsingImpl, IPersistPropertyBagImpl, IPersistStreamInitImpl en ISpecifyPropertyPagesImpl gebruiken de eigenschapstoewijzing om deze informatie op te halen en in te stellen.
Wanneer u een object maakt met de wizard ATL-project, maakt de wizard een lege eigenschapstoewijzing door BEGIN_PROP_MAP op te geven, gevolgd door END_PROP_MAP.
BEGIN_PROP_MAP slaat de omvang (dat wil gezegd de dimensies) van een eigenschapstoewijzing niet op, omdat een object dat gebruikmaakt van een eigenschapstoewijzing mogelijk geen gebruikersinterface heeft, dus dit heeft geen enkele mate. Als het object een ActiveX-besturingselement met een gebruikersinterface is, heeft het een bepaalde mate. In dit geval moet u PROP_DATA_ENTRY opgeven in uw eigenschappenoverzicht om de omvang op te geven.
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
Geeft de omvang of dimensies van een ActiveX-besturingselement aan.
PROP_DATA_ENTRY( szDesc, member, vt)
Parameterwaarden
szDesc
[in] De beschrijving van de eigenschap.
Lid
[in] Het gegevenslid dat de omvang bevat; bijvoorbeeld m_sizeExtent.
Vt
[in] Hiermee geeft u het VARIANT-type van de eigenschap.
Opmerkingen
Deze macro zorgt ervoor dat het opgegeven gegevenslid behouden blijft.
Wanneer u een ActiveX-besturingselement maakt, voegt de wizard deze macro in na de eigenschapstoewijzingsmacro BEGIN_PROP_MAP en vóór de eigenschapstoewijzingsmacro END_PROP_MAP.
Example
In het volgende voorbeeld wordt de omvang van het object (m_sizeExtent) behouden.
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
Gebruik deze macro om een eigenschapsbeschrijving, eigenschapS-DISPID en eigenschappenpagina CLSID op te geven in de eigenschapstoewijzing van het object.
PROP_ENTRY_TYPE( szDesc, dispid, clsid, vt)
Parameterwaarden
szDesc
[in] De beschrijving van de eigenschap.
dispid
[in] De DISPID van de eigenschap.
clsid
[in] De CLSID van de gekoppelde eigenschappenpagina. Gebruik de speciale waarde CLSID_NULL voor een eigenschap die geen gekoppelde eigenschappenpagina heeft.
Vt
[in] Het type van de eigenschap.
Opmerkingen
De PROP_ENTRY macro is onveilig en afgeschaft. Het is vervangen door PROP_ENTRY_TYPE.
De BEGIN_PROP_MAP macro markeert het begin van de eigenschapstoewijzing; de END_PROP_MAP macro markeert het einde.
Example
Zie het voorbeeld voor BEGIN_PROP_MAP.
PROP_ENTRY_TYPE_EX
Vergelijkbaar met PROP_ENTRY_TYPE, maar kunt u een bepaalde IID opgeven als uw object meerdere dubbele interfaces ondersteunt.
PROP_ENTRY_TYPE_EX( szDesc, dispid, clsid, iidDispatch, vt)
Parameterwaarden
szDesc
[in] De beschrijving van de eigenschap.
dispid
[in] De DISPID van de eigenschap.
clsid
[in] De CLSID van de gekoppelde eigenschappenpagina. Gebruik de speciale waarde CLSID_NULL voor een eigenschap die geen gekoppelde eigenschappenpagina heeft.
iidDispatch
[in] De IID van de dubbele interface die de eigenschap definieert.
Vt
[in] Het type van de eigenschap.
Opmerkingen
De PROP_ENTRY_EX macro is onveilig en afgeschaft. Het is vervangen door PROP_ENTRY_TYPE_EX.
De BEGIN_PROP_MAP macro markeert het begin van de eigenschapstoewijzing; de END_PROP_MAP macro markeert het einde.
Example
In het volgende voorbeeld worden vermeldingen gegroepeerd voor IMyDual1 gevolgd door een vermelding voor IMyDual2. Groeperen op dubbele interface verbetert de prestaties.
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
Gebruik deze macro om een eigenschappenpagina CLSID in te voeren in de eigenschapstoewijzing van het object.
PROP_PAGE(clsid)
Parameterwaarden
clsid
[in] De CLSID van een eigenschappenpagina.
Opmerkingen
PROP_PAGE is vergelijkbaar met PROP_ENTRY_TYPE, maar vereist geen eigenschapsbeschrijving of DISPID.
Opmerking
Als u al een CLSID hebt ingevoerd met PROP_ENTRY_TYPE of PROP_ENTRY_TYPE_EX, hoeft u geen extra vermelding te maken met PROP_PAGE.
De BEGIN_PROP_MAP macro markeert het begin van de eigenschapstoewijzing; de END_PROP_MAP macro markeert het einde.
Example
BEGIN_PROP_MAP(CMyCtrl)
OtherPropMapEntries
PROP_PAGE(CLSID_DatePage)
PROP_PAGE(CLSID_StockColorPage)
END_PROP_MAP()
END_PROP_MAP
Hiermee wordt het einde van de eigenschapstoewijzing van het object gemarkeerd.
END_PROP_MAP()
Opmerkingen
Wanneer u een object maakt met de wizard ATL-project, maakt de wizard een lege eigenschapstoewijzing door BEGIN_PROP_MAP op te geven, gevolgd door END_PROP_MAP.
Example
Zie het voorbeeld voor BEGIN_PROP_MAP.