Those are the types used in Windows API. HWND is used for Windows handles, and it gets different size, depending on the size of the pointer of the given OS platform, which, it turns, depends on the target CPU
instruction-set architecture: 32-bits, 64-bits (in historical Windows versions is was also 16-bits, when Windows was not yes a OS). This type is the same as HANDLE, but different name is used in API specs to indicate that some parameter is a window handle; that is, HWND is more specific term as HANDLE. This way, application source code can be platform-independent.
DWORD is double word, always 32-bit. This is also platform-independed, in the opposite sense: it is always 32-bits, regardless of the target CPU instruction-set arhitecture. Please see:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx[
^].
See also:
http://en.wikipedia.org/wiki/Instruction_set_architecture[
^].
—SA