Using IPropertyManager and IPropertyManager2

IPropertyManager controls how the Property Inspector gets pointers to dynamic properties at runtime. For each AcRxClass object in AutoCAD, the client can get a pointer to an object that implements IPropertyManager. This is handled internally via protocol extensions. Once you have the property manager for the AcRxClass you are interested in, you can add your dynamic property classes to it with the IPropertyManager::AddProperty() method. When the user selects an object of that class, the Properties palette gets the property manager for its AcRxClass, enumerates the attached dynamic properties, and interrogates those properties for their property information. It then displays the dynamic properties along with the object's static properties.

The IDynamicProperty interface makes no assumptions about where your property data is stored. It simply requires the IDynamicProperty implementer to provide the data when GetCurrentValueData() is called. Similarly, when the user changes a dynamic property, the Property Inspector calls SetCurrentValueData() with the new value, requiring the implementer to decide how to set that value. You then decide how to make dynamic property data persistent.