Believe me, I've researched all these messages. I'm already handling the WM_WINDOWPOSCHANGING for the majority of my actual work (and have considered WM_MOVING), but that only gets called once a move or size has happened. The user can enter a move/size loop without actually changing the position or size of the window, as is the case when the user left-clicks down on the caption area. A WM_ENTERSIZEMOVE is fired by the OS and its here where I need to do some initial work and UI changes to indicate that a move is about to happen (which is the reason for my question, because I don't want to do these UI changes if a size is about to happen). I needed to handle both the case where the user was doing this with the mouse button on the non-client area of the frame, and when Move was executed from the system menu. The OS knows what it's about to enter, that's why it sends the WM_ENTERSIZEMOVE, and it already covers both cases. It seems like the exact message I should be handling for my purpose, I just wish the OS send a flag indicating which one it was (it knows, it's just not telling me). Anyway, thanks for your thoughts and suggestions.