The following table lists the interfaces used with ActiveX designers and indicates which objects must implement them.
| Visual | Visual Run-Time Object | Nonvisual Run-Time Object |
IOleObject | Required. | Required. | Optional. |
IOleInPlaceObject | Required. | Required. | Does not apply. |
IOleInPlaceActiveObject | Required. | Required. | Does not apply. |
IProvideClassInfo or IProvideDynamicClassInfo | Required. | Required. | Required. |
IActiveDesigner | Optional. | Does not apply. | Does not apply. |
IPersist, IPersistStorage, IPersistStream, or IPersistStreamInit | Required. | Required. | Required. |
IConnectionPoint, IConnectionPointContainer | Required. | Required. | Required. |
IPerPropertyBrowsing, IPersistPropertyBag, IPropertyNotifySink, IPropertyPage, IPropertyPage2, ISpecifyPropertyPages | Optional. | Optional. | Does not apply. |
IDispatch | Required. | Required. | Required. |
IQuickActivate | Optional. | Optional. | Does not apply. |
IViewObject, IViewObject2, IViewObjectEx | Optional. | Optional. | Does not apply. |
IOleControl | Optional. | Optional. | Optional. |