messaggio WM_DDE_ACK
Il messaggio di WM_DDE_ACK invia una notifica a un'applicazione DDE (Dynamic Data Exchange) della ricezione e dell'elaborazione dei messaggi seguenti: WM_DDE_POKE, WM_DDE_EXECUTE, WM_DDE_DATA, WM_DDE_ADVISE, WM_DDE_UNADVISE, WM_DDE_INITIATE o WM_DDE_REQUEST (in alcuni casi).
Per pubblicare questo messaggio, chiamare la funzione PostMessage con i parametri seguenti.
#define WM_DDE_ACK 0x03E4
Parametri
-
wParam
-
Quando risponde a WM_DDE_INITIATE, questo parametro è un handle per la finestra del server che invia il messaggio.
Quando si risponde a WM_DDE_EXECUTE, questo parametro è un handle per la finestra del server che pubblica il messaggio.
Quando si risponde a tutti gli altri messaggi, questo parametro è un handle per il client o la finestra del server che pubblica il messaggio.
-
lParam
-
Quando risponde a WM_DDE_INITIATE, la parola di ordine basso contiene un atomo che identifica l'applicazione di risposta. La parola di ordine elevato contiene un atomo che identifica l'argomento per il quale viene stabilita una conversazione.
Quando risponde a WM_DDE_EXECUTE, la parola di ordine basso specifica una struttura DDEACK contenente una serie di flag che indicano lo stato della risposta. La parola di ordine elevato è un handle per un oggetto memoria globale contenente la stringa di comando ricevuta nel messaggio WM_DDE_EXECUTE .
Quando si risponde a tutti gli altri messaggi, la parola di ordine basso specifica una struttura DDEACK contenente una serie di flag che indicano lo stato della risposta. La parola di ordine elevato contiene un atomo globale che identifica il nome dell'elemento di dati per cui viene inviata la risposta.
Commenti
Distacco
Tranne in risposta al messaggio di WM_DDE_INITIATE , l'applicazione pubblica il messaggio WM_DDE_ACK chiamando la funzione PostMessage , non chiamando la funzione SendMessage . Quando risponde a WM_DDE_INITIATE, l'applicazione invia il messaggio WM_DDE_ACK chiamando SendMessage. In questo caso, né l'atomo nome applicazione né il nome dell'argomento atom devono essere NULL (anche se il messaggio WM_DDE_INITIATE specificato atom NULL ).
Quando si riconosce qualsiasi messaggio con un atomo associato, l'applicazione che pubblica WM_DDE_ACK può riutilizzare l'atomo che ha accompagnato il messaggio originale oppure può eliminarlo e crearne uno nuovo.
Quando si riconosce WM_DDE_EXECUTE, l'applicazione che invia WM_DDE_ACK deve riutilizzare l'oggetto memoria globale identificato nel messaggio di WM_DDE_EXECUTE originale.
Tutti i messaggi inviati WM_DDE_ACK devono creare o riutilizzare il parametro lParam chiamando la funzione PackDDElParam o la funzione ReuseDDElParam .
Se un'applicazione ha avviato la chiusura di una conversazione pubblicando WM_DDE_TERMINATE ed è in attesa di conferma, l'applicazione in attesa non deve confermare (positivamente o negativamente) eventuali messaggi successivi inviati dall'altra applicazione. L'applicazione in attesa deve eliminare qualsiasi atomo o oggetti di memoria condivisa ricevuti in questi messaggi intermedi. Gli oggetti memoria non devono essere liberati se il flag fRelease è impostato su FALSE nei messaggi WM_DDE_POKE e WM_DDE_DATA .
Ricezione
L'applicazione che riceve un messaggio di WM_DDE_ACK deve eliminare tutti gli atom che accompagnano il messaggio. Se l'applicazione riceve un WM_DDE_ACK in risposta a un messaggio con un oggetto memoria globale associato e l'oggetto è stato inviato con i flag fRelease impostati su FALSE, l'applicazione è responsabile dell'eliminazione dell'oggetto.
Se l'applicazione riceve un messaggio di WM_DDE_ACK negativo inviato in risposta a un messaggio di WM_DDE_ADVISE , l'applicazione deve eliminare l'oggetto memoria globale pubblicato con il messaggio di WM_DDE_ADVISE originale. Se l'applicazione riceve un messaggio di WM_DDE_ACK negativo inviato in risposta a un messaggio di WM_DDE_DATA, WM_DDE_POKE o WM_DDE_EXECUTE , l'applicazione deve eliminare l'oggetto memoria globale pubblicato con il WM_DDE_DATA originale, WM_DDE_POKE o WM_DDE_EXECUTE messaggio.
L'applicazione che riceve un messaggio di WM_DDE_ACK inviato deve liberare il parametro lParam usando la funzione FreeDDElParam .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows 2000 Professional [solo app desktop] |
Server minimo supportato |
Windows 2000 Server [solo app desktop] |
Intestazione |
|