When I saw this those lines :
BYTE MessageToProcess[MAX_MESSAGE_LENGTH]; TcpIpPacketHdr *pHdr = (TcpIpPacketHdr*)&MessageToProcess;
I said
MessageToProcess is an array.
MessageToProcess
In case of array, base address of array can be indicated by following ways alternatively:
&MessageToProcess OR MessageToProcess OR &MessageToProcess[0].
&MessageToProcess
&MessageToProcess[0]