const DWORD *pSentinel = pBuffSrc + H * W;
do {
*pBuffDst++ = *pBuffSrc++;
} while (pBuffSrc != pSentinel)

このほうがいいかなぁ。
だけど、CopyMemoryで実現できることをなんでわざわざループでどうにかしようとしているんだろう。