ActiveX designers must support fundamental OLE interfaces, interact with the host, provide type information, persist their design-time and run-time components, and enable users to customize objects.
The following table lists the interfaces and APIs implemented by ActiveX designer objects:
| Purpose | Interface(s) | Visual Designer |
Visual Run- Time Object |
Nonvisual Run- Time Object |
| Register itself | DllRegisterServer, DllUnregisterServer | Required | Required | Required |
| Invoke object, properties, and methods | IDispatch | Required | Required | Required |
| Site and activate itself | IOleObject | Required | Required | Required |
| IOleInPlaceObject | Required | Required | Does not apply | |
| IOleInPlaceActiveObject | Required | Required | Does not apply | |
| IQuickActivate | Optional | Optional | Does not apply | |
| Display an object | IViewObject, IViewObject2, IViewObjectEx | Optional | Optional | Does not apply |
| Create Instances | DllGetClassObject, DllCanUnloadNow | Required | Required | Required |
| IClassFactory or IClassFactory2 | Required | Required | Required | |
| Supply type information | IProvideClassInfo or IProvideDynamicClassInfo | Required | Required | Required |
| Persist a designer | IPersist, IPersistStorage, IPersistStream, or IPersistStreamInit | Required | Required | Required |
| Access run-time object | IActiveDesigner | Optional | Does not apply | Does not apply |
| Handle events | IConnectionPoint, IConectionPointContainer | Optional | Optional | Optional |
| IActiveDesignerRuntime | Does not apply | Optional | Optional | |
| View and change properties | IPerPropertyBrowsing, IPropertyNotifySink, IPropertyPage, IPropertyPage2, ISpecifyPropertyPages | Optional | Does not apply | Does not apply |