you could put in a triad manipulator and only show the rotation axis ring.
look at move with triad
i would create an addin
if the drag moves from the origin, you can set it back in the callback events
only show the rotation Ring shown in blue on the screen.
you can also control the manipulator using the IManipulatorHandler2.
i have yet to work with IDragOperators so i dont have input there.