INF: Description of the DDEML Error Codes

ID Number: Q80082

3.10

WINDOWS

docerr

Summary:

The documentation for version 3.1 of the Windows Software Development

Kit (SDK) only states which of the Dynamic Data Exchange Management

Library (DDEML) error values can be returned to each of the API

functions. No descriptions of the different error values is included.

The following list describes each of the possible error codes that can

be returned by the DDEML, its corresponding value, and a description

of what may have caused the error.

Error Error Value

----- -----------

DMLERR_ADVACKTIMEOUT 0x4000

DMLERR_DATAACKTIMEOUT 0x4002

DMLERR_EXECACKTIMEOUT 0x4005

DMLERR_POKEACKTIMEOUT 0x400B

DMLERR_UNADVACKTIMEOUT 0x4010

In each case, a synchronous transaction attempt has timed out.

DMLERR_BUSY 0x4001

The response to the transaction caused the DDE_FBUSY bit to be set.

DMLERR_DLL_NOT_INITIALIZED 0x4003

- A DDEML API was called without first calling the DdeInitialize

function.

- An invalid IdInst parameter was passed to an API.

DMLERR_DLL_USAGE 0x4004

- An application initialized as a MONITOR has attempted DDE

transactions.

- An application initialized as CLIENTONLY has attempted SERVER

transactions.

DMLERR_INVALIDPARAMETER 0x4006

A parameter failed validation. Some of the possible causes are as

follows:

- The application used a data handle initialized with a different

hszItem than that required by the transaction.

- The application used a data handle initialized with a different wFmt

than that required by the transaction.

- The application used a client-side hConv with a server-side API or

vice versa.

- The application used a freed data handle or hsz handle.

- More than one instance of the application used the same object.

DMLERR_LOW_MEMORY 0x4007

This error only happens in an XTYP_ERROR callback -- generally after a

prolonged race condition (where the server application outruns the

client) that consumes huge amounts of memory.

DMLERR_MEMORY_ERROR 0x4008

A memory allocation failed.

DMLERR_NOTPROCESSED 0x4009

A transaction failed -- generally with a NACK.

DMLERR_NO_CONV_ESTABLISHED 0x400A

A connection attempt failed to receive an ACK in reply.

DMLERR_POSTMSG_FAILED 0x400C

An internal PostMessage call failed.

DMLERR_REENTRANCY 0x400D

- A synchronous transaction was initiated while the application

instance has another synchronous transaction in progress.

- The DdeEnableCallback function was called from within a callback.

DMLERR_SERVER_DIED 0x400E

- A server-side transaction has been attempted on a conversation that

was terminated by the client.

- The server died mid-transaction.

DMLERR_SYS_ERROR 0x400F

A system API failed inside of the DDEML.

DMLERR_UNFOUND_QUEUE_ID 0x4011

An invalid transaction ID was passed to an API function. Once the

application has returned from an XTYP_XACT_COMPLETE callback, the

transaction ID for that callback is no longer valid.

Additional reference words: 3.10