Found the problem - one of the other guys in the team has pulled the rug
from under my feet, and by using Reflector I find that Microsoft have been a
bit naughty and the Icon.Handle property get throws an
ObjectDisposedException if it has a null handle - the object has not been
disposed at all, it hasn't been initialised.