Freigeben über


DdeInitializeA-Funktion (ddeml.h)

Registriert eine Anwendung mit der Dynamic Data Exchange Management Library (DDEML). Eine Anwendung muss diese Funktion aufrufen, bevor eine andere DDEML-Funktion (Dynamic Data Exchange Management Library) aufgerufen wird.

Syntax

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

Parameter

[in, out] pidInst

Typ: LPDWORD-

Der Anwendungsinstanzbezeichner. Bei der Initialisierung sollte dieser Parameter auf 0 zeigen. Wenn die Funktion erfolgreich ist, verweist dieser Parameter auf den Instanzbezeichner für die Anwendung. Dieser Wert sollte als idInst Parameter in allen anderen DDEML-Funktionen übergeben werden, für die er erforderlich ist. Wenn eine Anwendung mehrere Instanzen der DDEML Dynamic Link Library (DLL) verwendet, sollte die Anwendung für jede Instanz eine andere Rückruffunktion bereitstellen.

Wenn pidInst auf einen Wert ungleich Null zeigt, wird die Erneute Initialisierung der DDEML impliziert. In diesem Fall muss pidInst auf einen gültigen Anwendungsinstanzbezeichner verweisen.

[in] pfnCallback

Typ: PFNCALLBACK-

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

[in] afCmd

Typ: DWORD-

Eine Reihe von APPCMD_, CBF_und MF_ Flags. Die APPCMD_ Flags enthalten spezielle Anweisungen zum DdeInitialize. Die CBF_ Flags geben Filter an, die verhindern, dass bestimmte Arten von Transaktionen die Rückruffunktion erreichen. Die MF_ Flags geben die Typen von DDE-Aktivitäten an, die eine DDE-Überwachungsanwendung überwacht. Die Verwendung dieser Flags verbessert die Leistung einer DDE-Anwendung, indem unnötige Aufrufe der Rückruffunktion eliminiert werden.

Dieser Parameter kann einen oder mehrere der folgenden Werte sein.

Wert Bedeutung
APPCLASS_MONITOR
0x00000001L
Ermöglicht es der Anwendung, DDE-Aktivitäten im System zu überwachen. Dieses Kennzeichen dient der Verwendung durch DDE-Überwachungsanwendungen. Die Anwendung gibt die Typen von DDE-Aktivitäten an, die überwacht werden sollen, indem ein oder mehrere Monitorkennzeichnungen mit dem APPCLASS_MONITOR-Flag kombiniert werden. Ausführliche Informationen finden Sie im folgenden Abschnitt "Hinweise".
APPCLASS_STANDARD
0x000000000L
Registriert die Anwendung als Standardanwendung (nicht überwachte) DDEML-Anwendung.
APPCMD_CLIENTONLY
0x000000010L
Verhindert, dass die Anwendung zu einem Server in einer DDE-Unterhaltung wird. Die Anwendung kann nur ein Client sein. Dieses Kennzeichen reduziert den Verbrauch von Ressourcen durch die DDEML. Sie enthält die Funktionalität des CBF_FAIL_ALLSVRXACTIONS Flags.
APPCMD_FILTERINITS
0x000000020L
Verhindert, dass die DDEML XTYP_CONNECT- und XTYP_WILDCONNECT Transaktionen an die Anwendung sendet, bis die Anwendung ihre Zeichenfolgenhandles erstellt und die Dienstnamen registriert hat oder die Filterung durch einen nachfolgenden Aufruf des DdeNameService- oder DdeInitialize-Funktion deaktiviert hat. Dieses Kennzeichen wird immer wirksam, wenn eine Anwendung DdeInitialize zum ersten Mal aufruft, unabhängig davon, ob die Anwendung das Flag angibt. Bei nachfolgenden Aufrufen von DdeInitializedeaktiviert die Angabe dieses Flags die Dienstnamenfilter der Anwendung, aber durch angeben, werden die Dienstnamenfilter der Anwendung aktiviert.
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 Kennzeichen 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 der eigenen Instanz der Anwendung empfängt. Dieses Kennzeichen verhindert, dass eine Anwendung eine DDE-Unterhaltung mit einer eigenen Instanz erstellt. 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. Diese Kennzeichnung 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 beliebige DDE-Rückruffunktion im System gesendet wird.
MF_CONV
0x40000000
Benachrichtigt die Rückruffunktion immer dann, wenn eine Unterhaltung eingerichtet oder beendet wird.
MF_ERRORS
0x10000000
Benachrichtigt die Rückruffunktion immer dann, wenn ein DDE-Fehler auftritt.
MF_HSZ_INFO
0x01000000
Benachrichtigt die Rückruffunktion, wenn eine DDE-Anwendung erstellt, freizugeben oder erhöht die Verwendungsanzahl eines Zeichenfolgenhandles oder jedes Mal, 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 immer dann, wenn das System oder eine Anwendung eine DDE-Nachricht sendet.

ulRes

Typ: DWORD-

Reserviert; muss auf 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:

Bemerkungen

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

Eine DDE-Überwachungsanwendung sollte nicht versuchen, DDE-Vorgänge auszuführen (Unterhaltungen, Problemtransaktionen usw.) im Kontext derselben Anwendungsinstanz auszuführen.

Eine synchrone Transaktion schlägt mit einem DMLERR_REENTRANCY Fehler fehl, wenn eine Instanz desselben Vorgangs 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 DdeInitializegeändert werden kann. Das APPCMD_CLIENTONLY-Flag verhindert, dass die DDEML Schlüsselressourcen für den Server erstellt und nicht durch einen nachfolgenden Aufruf von DdeInitializegeändert werden kann.

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

Anmerkung

Der ddeml.h-Header definiert DdeInitialize als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante 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
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- ddeml.h (enthalten Windows.h)
Library User32.lib
DLL- User32.dll

Siehe auch

Übersicht über die dynamische Exchange-Verwaltungsbibliothek