Funzione DdeInitializeW (ddeml.h)

Registra un'applicazione con Dynamic Data Exchange Management Library (DDEML). Un'applicazione deve chiamare questa funzione prima di chiamare qualsiasi altra funzione DDEML (Dynamic Data Exchange Management Library).

Sintassi

UINT DdeInitializeW(
  [in, out] LPDWORD     pidInst,
  [in]      PFNCALLBACK pfnCallback,
  [in]      DWORD       afCmd,
            DWORD       ulRes
);

Parametri

[in, out] pidInst

Tipo: LPDWORD

Identificatore dell'istanza dell'applicazione. All'inizializzazione, questo parametro deve puntare a 0. Se la funzione ha esito positivo, questo parametro punta all'identificatore di istanza per l'applicazione. Questo valore deve essere passato come parametro idInst in tutte le altre funzioni DDEML che lo richiedono. Se un'applicazione usa più istanze della libreria di collegamento dinamico DDEML (DLL), l'applicazione deve fornire una funzione di callback diversa per ogni istanza.

Se pidInst punta a un valore diverso da zero, la reinizializzazione del DDEML è implicita. In questo caso , pidInst deve puntare a un identificatore di istanza dell'applicazione valido.

[in] pfnCallback

Tipo: PFNCALLBACK

Puntatore alla funzione di callback DDE definita dall'applicazione. Questa funzione elabora le transazioni DDE inviate dal sistema. Per altre informazioni, vedere la funzione di callback DdeCallback .

[in] afCmd

Tipo: DWORD

Set di flag di APPCMD_, CBF_ e MF_ . I flag APPCMD_ forniscono istruzioni speciali per DdeInitialize. I flag CBF_ specificano filtri che impediscono a tipi specifici di transazioni di raggiungere la funzione di callback. I flag MF_ specificano i tipi di attività DDE monitorati da un'applicazione di monitoraggio DDE. L'uso di questi flag migliora le prestazioni di un'applicazione DDE eliminando le chiamate non necessarie alla funzione di callback.

Questo parametro può essere uno o più dei valori seguenti.

Valore Significato
APPCLASS_MONITOR
0x00000001L
Consente all'applicazione di monitorare l'attività DDE nel sistema. Questo flag è destinato all'uso da parte delle applicazioni di monitoraggio DDE. L'applicazione specifica i tipi di attività DDE da monitorare combinando uno o più flag di monitoraggio con il flag APPCLASS_MONITOR . Per informazioni dettagliate, vedere la sezione Osservazioni seguente.
APPCLASS_STANDARD
0x0000000L
Registra l'applicazione come applicazione DDEML standard (nonmonitoring).
APPCMD_CLIENTONLY
0x00000010L
Impedisce all'applicazione di diventare un server in una conversazione DDE. L'applicazione può essere solo un client. Questo flag riduce il consumo di risorse da parte del DDEML. Include la funzionalità del flag CBF_FAIL_ALLSVRXACTIONS .
APPCMD_FILTERINITS
0x00000020L
Impedisce al DDEML di inviare XTYP_CONNECT e XTYP_WILDCONNECT transazioni all'applicazione fino a quando l'applicazione non ha creato i relativi handle di stringa e ha registrato i relativi nomi di servizio o ha disattivato il filtro tramite una chiamata successiva alla funzione DdeNameService o DdeInitialize . Questo flag è sempre attivo quando un'applicazione chiama DdeInitialize per la prima volta, indipendentemente dal fatto che l'applicazione specifichi il flag. Nelle chiamate successive a DdeInitialize, non specificando questo flag vengono disattivati i filtri dei nomi di servizio dell'applicazione, ma specificando che attiva i filtri dei nomi del servizio dell'applicazione.
CBF_FAIL_ALLSVRXACTIONS
0x0003f000
Impedisce alla funzione di callback di ricevere transazioni server. Il sistema restituisce DDE_FNOTPROCESSED a ogni client che invia una transazione a questa applicazione. Questo flag equivale a combinare tutti i flag CBF_FAIL_.
CBF_FAIL_ADVISES
0x00004000
Impedisce alla funzione di callback di ricevere XTYP_ADVSTART e XTYP_ADVSTOP transazioni. Il sistema restituisce DDE_FNOTPROCESSED a ogni client che invia una transazione XTYP_ADVSTART o XTYP_ADVSTOP al server.
CBF_FAIL_CONNECTIONS
0x00002000
Impedisce alla funzione di callback di ricevere XTYP_CONNECT e XTYP_WILDCONNECT transazioni.
CBF_FAIL_EXECUTES
0x00008000
Impedisce alla funzione di callback di ricevere XTYP_EXECUTE transazioni. Il sistema restituisce DDE_FNOTPROCESSED a un client che invia una transazione XTYP_EXECUTE al server.
CBF_FAIL_POKES
0x00010000
Impedisce alla funzione di callback di ricevere XTYP_POKE transazioni. Il sistema restituisce DDE_FNOTPROCESSED a un client che invia una transazione XTYP_POKE al server.
CBF_FAIL_REQUESTS
0x00020000
Impedisce alla funzione di callback di ricevere XTYP_REQUEST transazioni. Il sistema restituisce DDE_FNOTPROCESSED a un client che invia una transazione XTYP_REQUEST al server.
CBF_FAIL_SELFCONNECTIONS
0x00001000
Impedisce alla funzione di callback di ricevere XTYP_CONNECT transazioni dalla propria istanza dell'applicazione. Questo flag impedisce a un'applicazione di stabilire una conversazione DDE con la propria istanza. Un'applicazione deve usare questo flag se deve comunicare con altre istanze di se stesso, ma non con se stesso.
CBF_SKIP_ALLNOTIFICATIONS
0x003c0000
Impedisce alla funzione di callback di ricevere notifiche. Questo flag equivale a combinare tutti i flag CBF_SKIP_.
CBF_SKIP_CONNECT_CONFIRMS
0x00040000
Impedisce alla funzione di callback di ricevere notifiche di XTYP_CONNECT_CONFIRM .
CBF_SKIP_DISCONNECTS
0x00200000
Impedisce alla funzione di callback di ricevere notifiche di XTYP_DISCONNECT .
CBF_SKIP_REGISTRATIONS
0x00080000
Impedisce alla funzione di callback di ricevere notifiche di XTYP_REGISTER .
CBF_SKIP_UNREGISTRATIONS
0x00100000
Impedisce alla funzione di callback di ricevere notifiche di XTYP_UNREGISTER .
MF_CALLBACKS
0x08000000
Notifica alla funzione di callback ogni volta che una transazione viene inviata a qualsiasi funzione di callback DDE nel sistema.
MF_CONV
0x40000000
Notifica alla funzione di callback ogni volta che viene stabilita o terminata una conversazione.
MF_ERRORS
0x10000000
Notifica alla funzione di callback ogni volta che si verifica un errore DDE.
MF_HSZ_INFO
0x01000000
Notifica alla funzione di callback ogni volta che un'applicazione DDE crea, libera o incrementa il numero di utilizzo di un handle stringa o ogni volta che un handle di stringa viene liberato in seguito a una chiamata alla funzione DdeUninitialize .
MF_LINKS
0x20000000
Notifica alla funzione di callback ogni volta che viene avviato o terminato un ciclo di avviso.
MF_POSTMSGS
0x04000000
Notifica alla funzione di callback ogni volta che il sistema o un'applicazione invia un messaggio DDE.
MF_SENDMSGS
0x02000000
Notifica alla funzione di callback ogni volta che il sistema o un'applicazione invia un messaggio DDE.

ulRes

Tipo: DWORD

Riservati; deve essere impostato su zero.

Valore restituito

Tipo: UINT

Se la funzione ha esito positivo, il valore restituito viene DMLERR_NO_ERROR.

Se la funzione ha esito negativo, il valore restituito è uno dei valori seguenti:

Commenti

Un'applicazione che usa più istanze del DDEML non deve passare oggetti DDEML tra istanze.

Un'applicazione di monitoraggio DDE non deve tentare di eseguire operazioni DDE (stabilire conversazioni, emettere transazioni e così via) all'interno del contesto della stessa istanza dell'applicazione.

Una transazione sincrona ha esito negativo con un errore DMLERR_REENTRANCY se un'istanza della stessa attività ha già in corso una transazione sincrona.

Il flag CBF_FAIL_ALLSVRXACTIONS fa sì che DDEML filtra tutte le transazioni del server e possa essere modificato da una chiamata successiva a DdeInitialize. Il flag APPCMD_CLIENTONLY impedisce al DDEML di creare risorse chiave per il server e non può essere modificato da una chiamata successiva a DdeInitialize.

È disponibile una versione ANSI e una versione Unicode di DdeInitialize. La versione chiamata determina il tipo delle routine finestra utilizzate per controllare le conversazioni DDE (ANSI o Unicode) e il valore predefinito per il membro iCodePage della struttura CONVCONTEXT (CP_WINANSI o CP_WINUNICODE).

Nota

L'intestazione ddeml.h definisce DdeInitialize come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione ddeml.h (include Windows.h)
Libreria User32.lib
DLL User32.dll

Vedi anche

Panoramica della libreria di gestione di Dynamic Data Exchange