ActiveX Designers may support property browsing in several ways:
For maximum flexibility, ActiveX Designers should support all three methods.
If the ActiveX Designer supports only property browsing through the host's Properties window, and does not allow users to change any properties, it must support IDispatch. The host gains access to the set of properties to browse through the designer's implementation of IProvideClassInfo or IProvideDynamicClassInfo.
If the properties can change in any way other than through the property browser, the ActiveX Designer must support the connection point interfaces and IPropertyNotifySink. These interfaces are used to inform the host's property browser of changes to properties.
ActiveX Designers can also support their own property browsing through the property page mechanism. This approach allows for the most general, host-independent code, and gives your ActiveX Designer the greatest flexibility. To do this, ActiveX Designers need to support IPerPropertyBrowsing, IPropertyPage, IPropertyPage2, IPropertyPageSite, and ISpecifyPropertyPages in addition to IDispatch and the connection point interfaces.