I do not think this has any real effect: (DWORD) final operation of the expression will force the result to 32 bits anyway.
The (DWORDLONG) causes the shift operation to act on an unsigned value, so no "sign bits" will be shifted to the intermediate result. However, since the operand can be 64-bit, there can still be non-zero bits at higher points than bit 31. The & 0xFFFFFFFF operation will reset these bits, but will also be executed (DWORD) .
But that won't hurt either. It can be argued that he makes the goal of macro-cleaning (except for you, maybe he's just joking!).
source share