The MAKELONG macro creates an unsigned 32-bit value by concatenating two given 16-bit values.
DWORD MAKELONG(
  WORD wLow,  // low-order word of long value
  WORD wHigh  // high-order word of long value
);
 
The return value is an unsigned 32-bit value.
The MAKELONG macro is defined as follows:
#define MAKELONG(a, b) \ 
    ((LONG) (((WORD) (a)) | ((DWORD) ((WORD) (b))) << 16)) 
 
  Windows NT: Requires version 3.1 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Requires version 1.0 or later.
  Header: Declared in windef.h.
Windows Overview, Window Macros