Signals that DDE operation has failed and encapsulates the DDEML error code and error message. The follwing table describes possible error codes and their meaning:
| Error Code | Description |
| 0x0000 | No error |
| 0x4000 | A request for a synchronous advise transaction has timed out. |
| 0x4001 | The response to the transaction caused the BUSY flag to be set. |
| 0x4002 | A request for a synchronous data transaction has timed out. |
| 0x4003 | An instance of DDE was not initialized. |
| 0x4004 | Unsupported transaction. |
| 0x4005 | A request for a synchronous execute transaction has timed out. |
| 0x4006 | A parameter failed to be validated by the DDE. |
| 0x4007 | An application has created a prolonged race condition, causing large amounts of memory to be consumed. |
| 0x4008 | A memory allocation has failed. |
| 0x4009 | A transaction has failed (was rejected by server). |
| 0x400A | A client's attempt to establish a conversation has failed. |
| 0x400B | A request for a synchronous poke transaction has timed out. |
| 0x400C | An internal call to the PostMessage function has failed. |
| 0x400D | An application instance with a synchronous transaction already in progress attempted to initiate another synchronous transaction. |
| 0x400E | A server-side transaction was attempted on a conversation terminated by the client, or the server terminated before completing a transaction. |
| 0x400F | An internal error has occurred in the DDEML. |
| 0x4010 | A request to end an advise transaction has timed out. |
| 0x4011 | An invalid transaction identifier was passed to an ascync transaction handler. |