Hey, I'm trying to rotate my camera around in space. It works, but the camera matrix gets broke and it gets difficult to level the camera with the horizon again.

to rotate the camera im simply doing this

Matrix rot;
// rotate the camera in the direction the mouse moves
D3DXMatrixRotationY(rot,ToRadian(-MouseX));
cam *= rot;
// OK first of all, i know that after doing this rotation that it breaks the matrix, second I know how to fix it, you have to reset the XAxis and ZAxis by
// I do it by doing cross products in OpenGL, but the matrices are different in directX and i dont know where the forward vector is or where the
// right vector or anything is inside the matrix, only the position.
// But im not even sure if it's set up like that, any help?