Can't software developers respect the window ordering of users? The AttachThreadInput()/SetForegroundWindow() hack completely hoses the window order so badly any more that when you go to switch to another application, 40 others change position and come to the foreground as well - and sometimes the window focus doesn't change as expected.
My message to all software developers: This hack is clearly labeled as such and you should NEVER use it more than very rarely. Seriously, watch the window stack order get hosed as you make those calls. People clearly don't understand what AttachThreadInput() does...nor HOW to actually call and use the function...they just copy the code and assume it works to steal the foreground window without any respect to how Windows operates. There is a proper way to use AttachThreadInput(), but most people don't realize how to use it.
This message brought to you out of sheer frustration with application switching.