Começando com ATL 3.0, BEGIN_PROPERTY_MAP é substituído por BEGIN_PROP_MAP. BEGIN_PROPERTY_MAP podia ser usado somente com controles, e automaticamente salvos fora e ler a extensão ou dimensões, do mapa. Essa limitação não existe mais no ATL 3.0, e nenhuma necessidade existe para leitura na extensão do mapa de propriedade.
Para compatibilidade com versões anteriores, ATL define o seguinte:
# define BEGIN_PROPERTY_MAP(theClass) \
TypeDef _ATL_PROP_NOTIFY_EVENT_CLASS __ATL_PROP_NOTIFY_EVENT_CLASS; \
TypeDef theClass _PropMapClass; \
estático () ATL_PROPMAP_ENTRY * GetPropertyMap \
{\
estático ATL_PROPMAP_ENTRY pPropMap [] = \
{ \
{OLESTR("_cx"), 0, amp;CLSID_NULL, NULL, offsetof (_PropMapClass, m_sizeExtent.cx), sizeof(long), VT_UI4}, \
{OLESTR("_cy"), 0, & CLSID_NULL, NULL, offsetof (_PropMapClass, m_sizeExtent.cy), sizeof(long), VT_UI4}