had thought 表示本来想,本来打算,但没有做到.是动词用过去完成时表示虚拟的一种形式.
should have done 表示本来应该做而没有做.
shouldn't have done 本来不应该做而做了