Partager via


DdeInitializeW, fonction (ddeml.h)

Inscrit une application auprès de la bibliothèque de gestion Dynamic Data Exchange Management (DDEML). Une application doit appeler cette fonction avant d’appeler toute autre fonction DDEML (Dynamic Data Exchange Management Library).

Syntaxe

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

Paramètres

[in, out] pidInst

Type : LPDWORD

Identificateur de l’instance de l’application. Lors de l’initialisation, ce paramètre doit pointer vers 0. Si la fonction réussit, ce paramètre pointe vers l’identificateur d’instance de l’application. Cette valeur doit être passée en tant que paramètre idInst dans toutes les autres fonctions DDEML qui en ont besoin. Si une application utilise plusieurs instances de la bibliothèque de liens dynamiques DDEML (DLL), l’application doit fournir une fonction de rappel différente pour chaque instance.

Si pidInst pointe vers une valeur différente de zéro, la réinitialisation du DDEML est implicite. Dans ce cas, pidInst doit pointer vers un identificateur d’instance d’application valide.

[in] pfnCallback

Type : PFNCALLBACK

Pointeur vers la fonction de rappel DDE définie par l’application. Cette fonction traite les transactions DDE envoyées par le système. Pour plus d’informations, consultez la fonction de rappel DdeCallback.

[in] afCmd

Type : DWORD

Ensemble d’indicateurs de APPCMD_, de CBF_et de MF_. Les indicateurs APPCMD_ fournissent des instructions spéciales pour DdeInitialize. Les indicateurs CBF_ spécifient des filtres qui empêchent des types spécifiques de transactions d’atteindre la fonction de rappel. Les indicateurs MF_ spécifient les types d’activité DDE qu’une application de surveillance DDE surveille. L’utilisation de ces indicateurs améliore les performances d’une application DDE en éliminant les appels inutiles à la fonction de rappel.

Ce paramètre peut être une ou plusieurs des valeurs suivantes.

Valeur Signification
APPCLASS_MONITOR
0x00000001L
Permet à l’application de surveiller l’activité DDE dans le système. Cet indicateur est utilisé par les applications de surveillance DDE. L’application spécifie les types d’activité DDE à surveiller en combinant un ou plusieurs indicateurs de surveillance avec l’indicateur APPCLASS_MONITOR. Pour plus d’informations, consultez la section Remarques suivante.
APPCLASS_STANDARD
0x00000000L
Inscrit l’application en tant qu’application DDEML standard (non supervisée).
APPCMD_CLIENTONLY
0x00000010L
Empêche l’application de devenir un serveur dans une conversation DDE. L’application ne peut être qu’un client. Cet indicateur réduit la consommation de ressources par le DDEML. Il inclut les fonctionnalités de l’indicateur de CBF_FAIL_ALLSVRXACTIONS.
APPCMD_FILTERINITS
0x00000020L
Empêche le DDEML d’envoyer des transactions XTYP_CONNECT et XTYP_WILDCONNECT à l’application jusqu’à ce que l’application ait créé ses handles de chaîne et inscrit ses noms de service ou ait désactivé le filtrage par un appel ultérieur à l'DdeNameService ou DdeInitialize fonction. Cet indicateur est toujours en vigueur lorsqu’une application appelle DdeInitialize pour la première fois, que l’application spécifie l’indicateur. Lors des appels suivants à DdeInitialize, ne pas spécifier cet indicateur désactive les filtres de nom de service de l’application, mais en spécifiant qu’il active les filtres de nom de service de l’application.
CBF_FAIL_ALLSVRXACTIONS
0x0003f000
Empêche la fonction de rappel de recevoir des transactions de serveur. Le système retourne DDE_FNOTPROCESSED à chaque client qui envoie une transaction à cette application. Cet indicateur équivaut à combiner tous les indicateurs CBF_FAIL_.
CBF_FAIL_ADVISES
0x00004000
Empêche la fonction de rappel de recevoir des transactions XTYP_ADVSTART et XTYP_ADVSTOP. Le système retourne DDE_FNOTPROCESSED à chaque client qui envoie une transaction XTYP_ADVSTART ou XTYP_ADVSTOP au serveur.
CBF_FAIL_CONNECTIONS
0x00002000
Empêche la fonction de rappel de recevoir des transactions XTYP_CONNECT et XTYP_WILDCONNECT.
CBF_FAIL_EXECUTES
0x00008000
Empêche la fonction de rappel de recevoir des transactions XTYP_EXECUTE. Le système retourne DDE_FNOTPROCESSED à un client qui envoie une transaction XTYP_EXECUTE au serveur.
CBF_FAIL_POKES
0x00010000
Empêche la fonction de rappel de recevoir des transactions XTYP_POKE. Le système retourne DDE_FNOTPROCESSED à un client qui envoie une transaction XTYP_POKE au serveur.
CBF_FAIL_REQUESTS
0x00020000
Empêche la fonction de rappel de recevoir XTYP_REQUEST transactions. Le système retourne DDE_FNOTPROCESSED à un client qui envoie une transaction de XTYP_REQUEST au serveur.
CBF_FAIL_SELFCONNECTIONS
0x00001000
Empêche la fonction de rappel de recevoir des transactions XTYP_CONNECT de la propre instance de l’application. Cet indicateur empêche une application d’établir une conversation DDE avec sa propre instance. Une application doit utiliser cet indicateur s’il doit communiquer avec d’autres instances de lui-même, mais pas avec lui-même.
CBF_SKIP_ALLNOTIFICATIONS
0x003c0000
Empêche la fonction de rappel de recevoir des notifications. Cet indicateur équivaut à combiner tous les indicateurs CBF_SKIP_.
CBF_SKIP_CONNECT_CONFIRMS
0x00040000
Empêche la fonction de rappel de recevoir des notifications XTYP_CONNECT_CONFIRM.
CBF_SKIP_DISCONNECTS
0x00200000
Empêche la fonction de rappel de recevoir des notifications XTYP_DISCONNECT.
CBF_SKIP_REGISTRATIONS
0x00080000
Empêche la fonction de rappel de recevoir des notifications XTYP_REGISTER.
CBF_SKIP_UNREGISTRATIONS
0x00100000
Empêche la fonction de rappel de recevoir des notifications XTYP_UNREGISTER.
MF_CALLBACKS
0x08000000
Avertit la fonction de rappel chaque fois qu’une transaction est envoyée à n’importe quelle fonction de rappel DDE dans le système.
MF_CONV
0x40000000
Avertit la fonction de rappel chaque fois qu’une conversation est établie ou arrêtée.
MF_ERRORS
0x10000000
Avertit la fonction de rappel chaque fois qu’une erreur DDE se produit.
MF_HSZ_INFO
0x01000000
Avertit la fonction de rappel chaque fois qu’une application DDE crée, libère ou incrémente le nombre d’utilisation d’un handle de chaîne ou chaque fois qu’un handle de chaîne est libéré suite à un appel à la fonction DdeUninitialize.
MF_LINKS
0x20000000
Avertit la fonction de rappel chaque fois qu’une boucle d’avis est démarrée ou terminée.
MF_POSTMSGS
0x04000000
Avertit la fonction de rappel chaque fois que le système ou une application publie un message DDE.
MF_SENDMSGS
0x02000000
Avertit la fonction de rappel chaque fois que le système ou une application envoie un message DDE.

ulRes

Type : DWORD

Réservé; doit être défini sur zéro.

Valeur de retour

Type : uiNT

Si la fonction réussit, la valeur de retour est DMLERR_NO_ERROR.

Si la fonction échoue, la valeur de retour est l’une des valeurs suivantes :

Remarques

Une application qui utilise plusieurs instances du DDEML ne doit pas passer d’objets DDEML entre des instances.

Une application de supervision DDE ne doit pas tenter d’effectuer des opérations DDE (établir des conversations, émettre des transactions, et ainsi de suite) dans le contexte de la même instance d’application.

Une transaction synchrone échoue avec une erreur de DMLERR_REENTRANCY si une instance de la même tâche a déjà une transaction synchrone en cours.

L’indicateur CBF_FAIL_ALLSVRXACTIONS entraîne le filtrage de toutes les transactions de serveur par le DDEML et peut être modifié par un appel ultérieur à DdeInitialize. L’indicateur APPCMD_CLIENTONLY empêche le DDEML de créer des ressources clés pour le serveur et ne peut pas être modifié par un appel ultérieur à DdeInitialize.

Il existe une version ANSI et une version Unicode de DdeInitialize. La version appelée détermine le type des procédures de fenêtre utilisées pour contrôler les conversations DDE (ANSI ou Unicode) et la valeur par défaut du membre iCodePage de la structure CONVCONTEXT (CP_WINANSI ou CP_WINUNICODE).

Note

L’en-tête ddeml.h définit DdeInitialize en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête ddeml.h (include Windows.h)
bibliothèque User32.lib
DLL User32.dll

Voir aussi

Vue d’ensemble de la bibliothèque de gestion d’Exchange des données dynamiques