A port defines a location on a symbol at which other symbols can be connected. A port always belongs to exactly one symbol, and can be visible or invisible. Typically, a symbol component has at least one port defined in its center. Normally, this port is invisible. It enables you to make a connection even if you have not defined another port on the symbol. Ports can be used to create connections between any two symbols. They are most frequently used to connect a link component with two symbols.
The CODPortComponent class encapsulates all the functionality of a port. A port object is the child of a symbol object. The symbol component is the owner of the port. A port has a location associated with it, which is relative to the symbol that owns it. If the application knows the owner and location of a port, it can detect where the ports are during a link operation so that a connection can be made. The link is kept intact even if the symbol is moved.
Note that the CODPortComponent object has no visual representation. It is a logical component used for linking. You can define connection points anywhere on your symbol without changing its appearance. If you want to create a visible port, you can derive from this class and override the OnDraw() method.
The circle port is a derivative of CODPortComponent that does have a visual representation. This port appears as a circle with a cross through it. Although a port retains its proper location on a symbol, it does not move when you rotate or scale a component. It is meant to identify a single point on a symbol.
The circle port is the port component used in Symbol Designer to define connection points on your symbols. If you would like to use a different port, you can add one to the symbol programmatically.