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 |