OLE controls are able to expose interfaces to other applications. These interfaces only allow access from a container into that control. If an OLE control wants to access external interfaces of other OLE objects, a connection point must be established. This connection point allows a control outgoing access to external dispatch maps, such as event maps or notification functions.
The Microsoft Foundation Class Library offers a programming model that supports connection points. In this model, "connection maps" are used to designate interfaces (or connection points) for the OLE control. Connection maps contain one macro for each connection point. For more information on connection maps, see the CConnectionPoint class.
Typically, a control will support just two connection points: one for events and one for property notifications. These are implemented by the COleControl base class and require no additional work by the control writer. Any additional connection points you wish to implement in your class must be added by hand. To support connection maps and points, MFC provides the following macros:
Connection Map Declaration and Demarcation
BEGIN_CONNECTION_PART | Declares an embedded class that implements an additional connection point (must be used in the class declaration). |
END_CONNECTION_PART | Ends the declaration of a connection point (must be used in the class declaration). |
CONNECTION_IID | Specifies the interface ID of the control's connection point. |
DECLARE_CONNECTION_MAP | Declares that a connection map will be used in a class (must be used in the class declaration). |
BEGIN_CONNECTION_MAP | Begins the definition of a connection map (must be used in the class implementation). |
END_CONNECTION_MAP | Ends the definition of a connection map (must be used in the class implementation). |
CONNECTION_PART | Specifies a connection point in the control's connection map. |
The following functions assist a sink in establishing and disconnecting a connection using connection points:
Initialization/Termination of Connection Points
AfxConnectionAdvise | Establishes a connection between a source and a sink. |
AfxConnectionUnadvise | Breaks a connection between a source and a sink. |