ウィンドウの移動が画面でのドラッグによるものか、
APIによるものかを区別するいい方法はないでしょうか?

ウィンドウを配置できる位置を制限したいと思っているのですが、
WM_MOVEを受け取った時不正な位置の場合SetWindowPosで
位置修正を行うようにすると、そのSetWindowPosのため、
またWM_MOVEが発生してしまいます。

今のところ、SetWIndowPosを使用する直前にフラグをたてることで
移動がドラッグによるものかAPIによるものか判断してますが、
なんだかすっきりしません。他にいい方法があれば教えてください。

あと、WinampやSCMPXはドラッグしている間もウィンドウの中が
描画されますが、ああいうのはどうすれば実現できるでしょうか?