Partager via


WM_DDE_EXECUTE message

Une application cliente DDE (Dynamic Data Exchange) publie un message WM_DDE_EXECUTE à une application serveur DDE pour envoyer une chaîne au serveur à traiter sous la forme d’une série de commandes. L’application serveur est censée publier un message WM_DDE_ACK en réponse.

Pour publier ce message, appelez la fonction PostMessage avec les paramètres suivants.

#define WM_DDE_EXECUTE     0x03E8

Paramètres

wParam

Handle dans la fenêtre cliente qui publie le message.

lParam

Contient un objet de mémoire globale qui fait référence à une chaîne de commande ANSI ou Unicode, en fonction des types de fenêtres impliqués dans la conversation.

Notes

La chaîne de commande est une chaîne terminée par null composée d’une ou plusieurs chaînes opcode placées entre crochets simples ([ ]). Chaque chaîne opcode a la syntaxe suivante, où la liste des paramètres est facultative :

paramètres opcode

L’opcode est n’importe quel jeton unique défini par l’application. Il ne peut pas inclure d’espaces, de virgules, de parenthèses, de crochets ou de guillemets.

La liste des paramètres peut contenir n’importe quelle valeur ou valeurs définies par l’application. Plusieurs paramètres sont séparés par des virgules et l’ensemble de la liste des paramètres est placé entre parenthèses. Les paramètres ne peuvent pas inclure de virgules ou de parenthèses, sauf à l’intérieur d’une chaîne entre guillemets. Si un caractère entre crochets ou parenthèses doit apparaître dans une chaîne entre guillemets, il n’est pas nécessaire de le doubler, comme c’était le cas dans les anciennes règles.

Voici des chaînes de commande valides :

[connect][download(query1,results.txt)][disconnect] 
[query("sales per employee for each district")] 
[open("sample.xlm")][run("r1c1")] 
[quote_case("This is a "" character")] 
[bracket_or_paren_case("()s or []s should be no problem.")] 

Notez que, selon les anciennes règles, les parenthèses et les crochets devaient être doublés, comme suit :

[bracket_or_paren_case("(())s or [[]]s should be no problem.")] 

Les serveurs doivent être en mesure d’analyser les commandes dans l’une ou l’autre forme.

Les chaînes d’exécution Unicode doivent être utilisées uniquement lorsque les handles de fenêtre client et serveur entraînent le retour de la fonction IsWindowUnicode à true.

Affichage

L’application cliente alloue l’objet de mémoire globale en appelant la fonction GlobalAlloc .

Lors du traitement du message WM_DDE_ACK que le serveur publie en réponse à un message WM_DDE_EXECUTE , l’application cliente doit supprimer l’objet retourné par le message WM_DDE_ACK .

Réception

L’application serveur publie le message WM_DDE_ACK pour répondre positivement ou négativement. Le serveur doit réutiliser l’objet mémoire globale.

Sauf indication contraire d’un sous-protocole, le serveur ne doit pas publier le message WM_DDE_ACK tant que toutes les actions spécifiées par la chaîne de commande d’exécution ne sont pas terminées. La seule exception à cette règle est lorsque la chaîne provoque l’arrêt de la conversation par le serveur.

Spécifications

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]
En-tête
Dde.h (inclure Windows.h)

Voir aussi

Référence

IsWindowUnicode

PackDDElParam

PostMessage

ReuseDDElParam

SendMessage

UnpackDDElParam

WM_DDE_ACK

Conceptuel

À propos de Dynamic Data Exchange