The Inverse Kinematics (IK) API's are divided over three files: IIKSys.h, IKSolver.h, and IKHierarchy.h. IIKSys.h contains the interface definition of the two types of controllers, IIKControl and IIKChainControl. They are both TM controllers. The former is used in joints (nodes on which IK will be applied), and the latter is used in the IK goals (nodes that serve as IK goals).
The IKControl and IKChainControl are knit together as the IK system. When an IK solution is called for, the IK system will invoke the IK solver, which is a mathematical algorithm that, given the goal position/orientation, and incidental parameters, produces a solution in terms of joint angles (rotation values of respective nodes). While the controllers involved in IK are not expandable via plugin, the IK solver is actually plug-able. The IK system will recognize a plug-in solver by putting it in the solver list wherever it appears.
An interface pointer to the IKControl class can be obtained by using Animatable::GetInterface() with I_IKCONTROL as an argument.
An example on using the IK API can be found in the 3ds Max SDK, \MAXSDK\SAMPLES\IKSOLVERS\IKLIMB .