data = CxMsgData(cxm);
    D0               A0
    APTR CxMsgData(struct CxMsg *);
    
   
  
    Most commodity messages contain meaningful data such as an InputEvent structure. This function returns a pointer to this data.
    You may get a commodity message from a synchronous (custom object) or asynchronous (sender object) source. In the second case, 'data' is not valid after you have replied to the message.
  
  
    Until V38, passing a NULL 'cxm' parameter would cause low-memory access and unpredictable results.
    Until V40, whenever the data pointer is a (
struct InputEvent), the ie_EventAddress field of these structures was not reliable whenever the message was generated by a sender object.