Is this not a possible solution
Code:
	BYTE arr[3] = {0x23, 0x45, 0x67};
	UINT val = arr[2] << 16 | arr[1] << 8 | arr[0];
I have assumed that arr[2] is the MSB and arr[0] is LSB.