The DDEML has four classes of transactions. Each class is identified by a constant that begins with the XCLASS_ prefix. The classes are defined in the DDEML header file. The class constant is combined with the transaction-type constant and is passed to the DDE callback function of the receiving application.
A transaction's class determines the return value that a callback function is
expected to return if it processes the transaction. The following table shows the
return values and transaction types associated with each of the four transaction classes:
| Class | Return value | Transaction |
| XCLASS_BOOL | TRUE or FALSE | XTYP_ADVSTART XTYP_CONNECT |
| XCLASS_DATA | A data handle, CBR_BLOCK, or NULL | XTYP_ADVREQ XTYP_REQUEST XTYP_WILDCONNECT |
| XCLASS_FLAGS | A transaction flag: DDE_FACK, DDE_FBUSY, or DDE_FNOTPROCESSED | XTYP_ADVDATA XTYP_EXECUTE XTYP_POKE |
| XCLASS_NOTIFICATION | None | XTYP_ADVSTOP XTYP_CONNECT_CONFIRM XTYP_DISCONNECT XTYP_ERROR XTYP_REGISTER XTYP_UNREGISTER XTYP_XACT_COMPLETE |