DdeInitializeA-Funktion (ddeml.h)

Registriert eine Anwendung bei der Dynamic Data Exchange Management Library (DDEML). Eine Anwendung muss diese Funktion aufrufen, bevor sie eine andere DDEML-Funktion (Dynamic Data Exchange Management Library) aufruft.

Syntax

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

Parameter

[in, out] pidInst

Typ: LPDWORD

Die Anwendung instance Bezeichners. Bei der Initialisierung sollte dieser Parameter auf 0 zeigen. Wenn die Funktion erfolgreich ist, verweist dieser Parameter auf den instance Bezeichner für die Anwendung. Dieser Wert sollte als idInst-Parameter in allen anderen DDEML-Funktionen übergeben werden, die ihn benötigen. Wenn eine Anwendung mehrere Instanzen der DDEML-DLL (Dynamic Link Library) verwendet, sollte die Anwendung für jede instance eine andere Rückruffunktion bereitstellen.

Wenn pidInst auf einen Nonzero-Wert verweist, wird die erneute Initialisierung der DDEML impliziert. In diesem Fall muss pidInst auf einen gültigen Anwendungs-instance-Bezeichner verweisen.

[in] pfnCallback

Typ: PFNCALLBACK

Ein Zeiger auf die anwendungsdefinierte DDE-Rückruffunktion. Diese Funktion verarbeitet vom System gesendete DDE-Transaktionen. Weitere Informationen finden Sie in der Rückruffunktion DdeCallback .

[in] afCmd

Art: DWORD

Eine Reihe von APPCMD_-, CBF_- und MF_ -Flags. Die APPCMD_ -Flags bieten spezielle Anweisungen für DdeInitialize. Die CBF_ -Flags geben Filter an, die verhindern, dass bestimmte Transaktionstypen die Rückruffunktion erreichen. Die MF_ Flags geben die Typen der DDE-Aktivität an, die eine DDE-Überwachungsanwendung überwacht. Die Verwendung dieser Flags verbessert die Leistung einer DDE-Anwendung, indem unnötige Aufrufe der Rückruffunktion beseitigt werden.

Dieser Parameter kann einen oder mehrere der folgenden Werte aufweisen.

Wert Bedeutung
APPCLASS_MONITOR
0x00000001L
Ermöglicht es der Anwendung, die DDE-Aktivität im System zu überwachen. Dieses Flag ist für die Verwendung durch DDE-Überwachungsanwendungen vorgesehen. Die Anwendung gibt die Zu überwachenden DDE-Aktivitätstypen an, indem ein oder mehrere Monitorflags mit dem APPCLASS_MONITOR-Flags kombiniert werden. Ausführliche Informationen finden Sie im folgenden Abschnitt mit den Anmerkungen.
APPCLASS_STANDARD
0x00000000L
Registriert die Anwendung als DDEML-Standardanwendung (ohne Überwachung).
APPCMD_CLIENTONLY
0x00000010L
Verhindert, dass die Anwendung zu einem Server in einer DDE-Unterhaltung wird. Die Anwendung kann nur ein Client sein. Dieses Flag reduziert den Ressourcenverbrauch durch die DDEML. Sie enthält die Funktionalität des flags CBF_FAIL_ALLSVRXACTIONS .
APPCMD_FILTERINITS
0x00000020L
Verhindert, dass die DDEML XTYP_CONNECT und XTYP_WILDCONNECT Transaktionen an die Anwendung sendet, bis die Anwendung ihre Zeichenfolgenhandles erstellt und ihre Dienstnamen registriert hat oder die Filterung durch einen nachfolgenden Aufruf der DdeNameService - oder DdeInitialize-Funktion deaktiviert hat. Dieses Flag ist immer wirksam, wenn eine Anwendung DdeInitialize zum ersten Mal aufruft, unabhängig davon, ob die Anwendung das Flag angibt. Bei nachfolgenden Aufrufen von DdeInitialize werden die Dienstnamenfilter der Anwendung deaktiviert, wenn Sie dieses Flag nicht angeben, sondern die Dienstnamenfilter der Anwendung aktivieren.
CBF_FAIL_ALLSVRXACTIONS
0x0003f000
Verhindert, dass die Rückruffunktion Servertransaktionen empfängt. Das System gibt DDE_FNOTPROCESSED an jeden Client zurück, der eine Transaktion an diese Anwendung sendet. Dieses Flag entspricht der Kombination aller CBF_FAIL_ Flags.
CBF_FAIL_ADVISES
0x00004000
Verhindert, dass die Rückruffunktion XTYP_ADVSTART - und XTYP_ADVSTOP-Transaktionen empfängt. Das System gibt DDE_FNOTPROCESSED an jeden Client zurück, der eine XTYP_ADVSTART - oder XTYP_ADVSTOP-Transaktion an den Server sendet.
CBF_FAIL_CONNECTIONS
0x00002000
Verhindert, dass die Rückruffunktion XTYP_CONNECT - und XTYP_WILDCONNECT-Transaktionen empfängt.
CBF_FAIL_EXECUTES
0x00008000
Verhindert, dass die Rückruffunktion XTYP_EXECUTE Transaktionen empfängt. Das System gibt DDE_FNOTPROCESSED an einen Client zurück, der eine XTYP_EXECUTE Transaktion an den Server sendet.
CBF_FAIL_POKES
0x00010000
Verhindert, dass die Rückruffunktion XTYP_POKE Transaktionen empfängt. Das System gibt DDE_FNOTPROCESSED an einen Client zurück, der eine XTYP_POKE Transaktion an den Server sendet.
CBF_FAIL_REQUESTS
0x00020000
Verhindert, dass die Rückruffunktion XTYP_REQUEST Transaktionen empfängt. Das System gibt DDE_FNOTPROCESSED an einen Client zurück, der eine XTYP_REQUEST Transaktion an den Server sendet.
CBF_FAIL_SELFCONNECTIONS
0x00001000
Verhindert, dass die Rückruffunktion XTYP_CONNECT Transaktionen aus dem eigenen instance der Anwendung empfängt. Dieses Flag verhindert, dass eine Anwendung eine DDE-Unterhaltung mit einer eigenen instance. Eine Anwendung sollte dieses Flag verwenden, wenn sie mit anderen Instanzen von sich selbst, aber nicht mit sich selbst kommunizieren muss.
CBF_SKIP_ALLNOTIFICATIONS
0x003c0000
Verhindert, dass die Rückruffunktion Benachrichtigungen empfängt. Dieses Flag entspricht der Kombination aller CBF_SKIP_ Flags.
CBF_SKIP_CONNECT_CONFIRMS
0x00040000
Verhindert, dass die Rückruffunktion XTYP_CONNECT_CONFIRM Benachrichtigungen empfängt.
CBF_SKIP_DISCONNECTS
0x00200000
Verhindert, dass die Rückruffunktion XTYP_DISCONNECT Benachrichtigungen empfängt.
CBF_SKIP_REGISTRATIONS
0x00080000
Verhindert, dass die Rückruffunktion XTYP_REGISTER Benachrichtigungen empfängt.
CBF_SKIP_UNREGISTRATIONS
0x00100000
Verhindert, dass die Rückruffunktion XTYP_UNREGISTER Benachrichtigungen empfängt.
MF_CALLBACKS
0x08000000
Benachrichtigt die Rückruffunktion, wenn eine Transaktion an eine DDE-Rückruffunktion im System gesendet wird.
MF_CONV
0x40000000
Benachrichtigt die Rückruffunktion, wenn eine Konversation eingerichtet oder beendet wird.
MF_ERRORS
0x10000000
Benachrichtigt die Rückruffunktion, wenn ein DDE-Fehler auftritt.
MF_HSZ_INFO
0x01000000
Benachrichtigt die Rückruffunktion, wenn eine DDE-Anwendung die Nutzungsanzahl eines Zeichenfolgenhandles erstellt, freigibt oder erhöht oder wenn ein Zeichenfolgenhandle als Ergebnis eines Aufrufs der DdeUninitialize-Funktion freigegeben wird.
MF_LINKS
0x20000000
Benachrichtigt die Rückruffunktion, wenn eine Empfehlungsschleife gestartet oder beendet wird.
MF_POSTMSGS
0x04000000
Benachrichtigt die Rückruffunktion, wenn das System oder eine Anwendung eine DDE-Nachricht sendet.
MF_SENDMSGS
0x02000000
Benachrichtigt die Rückruffunktion, wenn das System oder eine Anwendung eine DDE-Nachricht sendet.

ulRes

Art: DWORD

Reserviert; muss auf 0 (null) festgelegt werden.

Rückgabewert

Typ: UINT

Wenn die Funktion erfolgreich ist, wird der Rückgabewert DMLERR_NO_ERROR.

Wenn die Funktion fehlschlägt, ist der Rückgabewert einer der folgenden Werte:

Hinweise

Eine Anwendung, die mehrere Instanzen der DDEML verwendet, darf DDEML-Objekte nicht zwischen Instanzen übergeben.

Eine DDE-Überwachungsanwendung sollte nicht versuchen, DDE-Vorgänge (Unterhaltungen einrichten, Transaktionen ausstellen usw.) im Kontext derselben Anwendung instance auszuführen.

Eine synchrone Transaktion schlägt mit einem DMLERR_REENTRANCY Fehler fehl, wenn eine instance derselben Aufgabe bereits eine synchrone Transaktion ausgeführt hat.

Das CBF_FAIL_ALLSVRXACTIONS-Flag bewirkt, dass die DDEML alle Servertransaktionen filtert und durch einen nachfolgenden Aufruf von DdeInitialize geändert werden kann. Das APPCMD_CLIENTONLY-Flag verhindert, dass die DDEML Schlüsselressourcen für den Server erstellt und kann nicht durch einen nachfolgenden Aufruf von DdeInitialize geändert werden.

Es gibt eine ANSI-Version und eine Unicode-Version von DdeInitialize. Die aufgerufene Version bestimmt den Typ der Fensterprozeduren, die zum Steuern von DDE-Unterhaltungen (ANSI oder Unicode) verwendet werden, und den Standardwert für das iCodePage-Element der CONVCONTEXT-Struktur (CP_WINANSI oder CP_WINUNICODE).

Hinweis

Der ddeml.h-Header definiert DdeInitialize als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ddeml.h (Windows.h einschließen)
Bibliothek User32.lib
DLL User32.dll

Weitere Informationen

Übersicht über die Dynamic Data Exchange-Verwaltungsbibliothek