混乱させてしまって申し訳ないです。
グローバルフックのコールバック関数で以下のようにしてて、
AとBのウィンドウがあって、Bのウィンドウがアクティブな時にAのウィンドウをアクティブにすれば
BのWA_INACTIVEとAのWA_CLICKACTIVEがほぼ同時に飛んでくるんではないでしょうか?
この場合nCountの値はどうなるんでしょう?

int nCount=0;
case WM_ACTIVATE:
 switch (lp->wParam)
 {
 case WA_ACTIVE:
 case WA_CLICKACTIVE:
  nCount--;
  break;
 case WA_INACTIVE:
  nCount++;
  break;
 }

>>382は文法めちゃくちゃでした。