Well you just encapsulated about 8K lines in that paragraph. I have an engine that can do all of this, but I doubt that is what you want. What do you need help on. I'm fairly sure I can do all of that or at least know how to do it.
For user interface you could use a pre-built library by MS that is a framework for a DX GUI and it acts similar to the Windows message-based system.
But you could build your own too.
If this is for a project for uni, I'd go with a simple UI that had the bitmaps either drawn into the image (like for a title screen) and then just add a button structure to an array and track the mouse by iterating the array when the mouse button was pressed.
Something like that would do.
for (int i=0;i<ButtonSys.NumButtons;i++)
For Vector operations you can just use D3DXVECTOR2 as it provides all the functionality you need.
void CObject::Target(CObject *pTarget)