Just a small bug: on some multi-monitor systems, the main window appears in the wrong place on startup.
This happens (I think) because my primary monitor is on the right, and the secondary monitor is on the left. This means that the x-coords for the 2nd monitor are all negative.
As I normally have SQLyog maximised on the 2ndary monitor, when I start it up, it appears as a tall thin window on the left hand side of the primary display.
From my own experience (i.e. I had this problem in one of my own programs) this could come from using the wrong message crackers to extract the window co-ordinates. The co-ords are interpreted as unsigned numbers when they are actually signed.
Or your code could just be checking for negative co-ords and assuming they are illegal – not a safe or true assumption. (In my own program I enumerate the desktop display areas and ensure that the window area falls within the valid display area – if it doesn't, I force it to the closest display.)
HTH