Condividi tramite


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
Dde.h (include Windows.h)

Vedi anche

Riferimento

DDEACK

FreeDDElParam

PackDDElParam

PostMessage

ReuseDDElParam

SendMessage

UnpackDDElParam

WM_DDE_ADVISE

WM_DDE_DATA

WM_DDE_EXECUTE

WM_DDE_INITIATE

WM_DDE_POKE

WM_DDE_REQUEST

WM_DDE_TERMINATE

WM_DDE_UNADVISE

Informazioni concettuali

Informazioni su Dynamic Data Exchange