Required Interfaces for the Visual Designer

Each visual designer is required to implement the following interfaces to fulfill the OLE requirements: IOleObject, IOleInPlaceActiveObject, and IOleInPlaceObject.

It must also implement IDispatch to invoke properties and methods, and IConnectionPoint and IConnectionPointContainer to handle events. It needs either IProvideClassInfo or IProvideDynamicClassInfo to supply type information.

In addition, it must implement at least one of the persistence interfaces (IPersistStorage, IPersistStream, IPersistStreamInit) to save persistent data from one session to the next. If the visual designer doesn't implement the optional IActiveDesigner interface, the host uses one of the persistence interfaces to save data for the run-time object.