The visual designer negotiates the interaction between the ActiveX designer, the host, and the end user. It includes a visual user interface, which collects and saves information from the end user to create a run-time object.
The following table summarizes the functions of the visual designer. Not all of these capabilities must be provided by every designer.
Function | What you must do |
Be an embedded object (required). | Implement IOleObject. |
Provide a visual designer (required). | Implement IOleInPlaceObject and IOleInPlaceActiveObject. |
Save and load persistent data (required). | Implement IPersist, and IPersistStream, IPersistStreamInit, or IPersistStorage. |
Use services (optional). | Use IServiceProvider. |
Handle events (required). | Implement IConnectionPointContainer and IConnectionPoint. |
Support a property browsing mechanism (optional). | Implement IDispatch, IConnectionPointContainer, IConnectionPoint, IPropertyNotifySink, IPerPropertyBrowsing, IPropertyPage, IPropertyPage2, ISpecifyPropertyPages. Use IPropertyPageSite. |
Provide convenient navigation to and from code (optional). | Use SCodeNavigate. |
Provide type information to the host (required). | Implement IProvideClassInfo or IProvideDynamicClassInfo. |
Create a different run-time object (optional). | Implement IActiveDesigner. |
Support programmability by add-in objects (optional). | Implement IActiveDesigner. |
Support "Save As Text" (optional). | Implement IPersistPropertyBag. |
Use ambient properties (optional). | Implement IOleControl. |