The interfaces required for a run-time object depend on whether it presents a visual user interface. Like the visual designer, a visual run-time object must provide in-place activation capabilities. A nonvisual object, on the other hand, doesn't need these features.
The following table summarizes the functions of the run-time object.
Function | What you must do |
Be an embedded object (required). | Implement IOleObject. |
Provide a visual interface (optional). | Implement IOleInPlaceObject and IOleInPlaceActiveObject. |
Supply type information (required). | Implement IProvideClassInfo or IProvideDynamicClassInfo. |
Load persistent data (required). | Implement IPersistStorage, IPersistStream, or IpersistStreamInit. |
Handle events (required). | Implement IconnectionPointContainer and IconnectionPoint. |