Es curioso el comportamiento de Vista...
El WM_SHOWWINDOW se puede eliminar del condicional si colocamos el Form como
FormStyle = fsStayOnTop en el constructor o en fase de diseño. Quizás esto cambie el comportamiento. Lo digo e insisto porque el hecho de cambiar SWP_NOACTIVATE por SWP_SHOWWINDOW si altera en Win XP haciendo que al perder el foco continue siendo ventana activa confundiendo al usuario.
Saludos.