Partager via


Fonction DdeGetLastError (ddeml.h)

Récupère le code d’erreur le plus récent défini par l’échec d’une fonction DDEML (Dynamic Data Exchange Management Library) et réinitialise le code d’erreur à DMLERR_NO_ERROR.

Syntaxe

UINT DdeGetLastError(
  [in] DWORD idInst
);

Paramètres

[in] idInst

Type : DWORD

L’application instance identificateur obtenu par un appel précédent à la fonction DdeInitialize.

Valeur retournée

Type : UINT

Si la fonction réussit, la valeur de retour est le dernier code d’erreur, qui peut être l’une des valeurs suivantes.

Code/valeur de retour Description
DMLERR_ADVACKTIMEOUT
0x4000
Une demande de transaction d’avis synchrone a expiré.
DMLERR_BUSY
0x4001
La réponse à la transaction a entraîné la définition de l’indicateur DDE_FBUSY .
DMLERR_DATAACKTIMEOUT
0x4002
Une requête pour une transaction de données synchrone a expiré.
DMLERR_DLL_NOT_INITIALIZED
0x4003
Une fonction DDEML a été appelée sans appeler d’abord la fonction DdeInitialize, ou un identificateur de instance non valide a été passé à une fonction DDEML.
DMLERR_DLL_USAGE
0x4004
Une application initialisée en tant que APPCLASS_MONITOR a tenté d’effectuer une transaction DDE ou une application initialisée en tant que APPCMD_CLIENTONLY a tenté d’effectuer des transactions serveur.
DMLERR_EXECACKTIMEOUT
0x4005
Une requête pour une transaction d’exécution synchrone a expiré.
DMLERR_INVALIDPARAMETER
0x4006
Un paramètre n’a pas pu être validé par le DDEML. Voici quelques-unes des causes possibles :

L’application a utilisé un handle de données initialisé avec un handle de nom d’élément différent de celui requis par la transaction.

L’application a utilisé un handle de données qui a été initialisé avec un format de données du Presse-papiers différent de celui requis par la transaction.

L’application a utilisé un handle de conversation côté client avec une fonction côté serveur ou inversement.

L’application a utilisé un handle de données libéré ou un handle de chaîne.

Plusieurs instance de l’application ont utilisé le même objet.

DMLERR_LOW_MEMORY
0x4007
Une application DDEML a créé une condition de course prolongée (dans laquelle l’application serveur dépasse le client), ce qui entraîne la consommation de grandes quantités de mémoire.
DMLERR_MEMORY_ERROR
0x4008
Une allocation de mémoire a échoué.
DMLERR_NO_CONV_ESTABLISHED
0x400a
La tentative d’établissement d’une conversation par un client a échoué.
DMLERR_NOTPROCESSED
0x4009
Une transaction a échoué.
DMLERR_POKEACKTIMEOUT
0x400b
Une demande pour une transaction de type poke synchrone a expiré.
DMLERR_POSTMSG_FAILED
0x400c
Un appel interne à la fonction PostMessage a échoué.
DMLERR_REENTRANCY
0x400d
Une application instance avec une transaction synchrone déjà en cours a tenté d’initier une autre transaction synchrone, ou la fonction DdeEnableCallback a été appelée à partir d’une fonction de rappel DDEML.
DMLERR_SERVER_DIED
0x400e
Une transaction côté serveur a été tentée lors d’une conversation terminée par le client, ou le serveur s’est arrêté avant d’effectuer une transaction.
DMLERR_SYS_ERROR
0x400f
Une erreur interne s’est produite dans le DDEML.
DMLERR_UNADVACKTIMEOUT
0x4010
Une demande de mettre fin à une transaction d’avis a expiré.
DMLERR_UNFOUND_QUEUE_ID
0x4011
Un identificateur de transaction non valide a été passé à une fonction DDEML. Une fois que l’application est retournée à partir d’un rappel XTYP_XACT_COMPLETE , l’identificateur de transaction pour cette fonction de rappel n’est plus valide.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête ddeml.h (inclure Windows.h)
Bibliothèque User32.lib
DLL User32.dll

Voir aussi

Conceptuel

DdeEnableCallback

DdeInitialize

Bibliothèque de gestion d’Échange de données dynamiques

PostMessage

Référence