WORD is 16-bit unsigned integer and DWORD is 32-bit unsigned integer.
You use DWORD type instead of unsigned int is because it is guaranteed the same size on different machines.
Also note that an "int" isn't neccessarily 32bits in size. "int" will be sized according to the default register size of the target CPU/platform. When you compile for DOS/Win16, 'int' is 16bits. For the opcoming Intel Itanium processor, 'int' will be 64 bits in size.
When using the Windows headers in your project, 'DWORD' will ALWAYS be guaranteed to be 32bits.
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef bit BOOL;