Sbagli in quella macro ... fai attenzione alle parentesi

codice:
#define BUILD_UINT16_4(b1, b2, b3, b4) \
	 ((UINT16)(b1 & 0x00FF) + \
	 ((UINT16)(b2 & 0x00FF) << 8) + \
	 ((UINT16)(b3 & 0x00FF) << 16) + \
	 ((UINT16)(b4 & 0x00FF) << 24))