#define LOWORD(l) ((WORD)(l))
#define HIWORD(l) ((WORD)(((DWORD )(l) >> 16) & 0xFFFF))

Explain functionality of both of these macros