Partager via


Fonction DdeInitializeA (ddeml.h)

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

Syntaxe

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

Paramètres

[in, out] pidInst

Type : LPDWORD

Identificateur de instance d’application. Lors de l’initialisation, ce paramètre doit pointer sur 0. Si la fonction réussit, ce paramètre pointe vers l’identificateur instance de l’application. Cette valeur doit être passée en tant que paramètre idInst dans toutes les autres fonctions DDEML qui l’exigent. Si une application utilise plusieurs instances de la bibliothèque de liens dynamiques (DLL) DDEML, 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 instance 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 APPCMD_, CBF_ et 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 supervision 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 prendre 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 destiné aux applications de supervision DDE. L’application spécifie les types d’activité DDE à surveiller en combinant un ou plusieurs indicateurs d’analyse avec l’indicateur APPCLASS_MONITOR . Pour plus d’informations, consultez la section Remarques suivante.
APPCLASS_STANDARD
0x000000000L
Inscrit l’application en tant qu’application DDEML standard (sans surveillance).
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 CBF_FAIL_ALLSVRXACTIONS .
APPCMD_FILTERINITS
0x000000020L
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 à la fonction DdeNameService ou DdeInitialize . Cet indicateur est toujours en vigueur lorsqu’une application appelle DdeInitialize pour la première fois, que l’application spécifie ou non l’indicateur. Lors des appels suivants à DdeInitialize, le fait de ne pas spécifier cet indicateur désactive les filtres de nom de service de l’application, mais le fait de le spécifier active les filtres de nom de service de l’application.
CBF_FAIL_ALLSVRXACTIONS
0x0003f000
Empêche la fonction de rappel de recevoir des transactions 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 XTYP_EXECUTE transactions. 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 des transactions XTYP_REQUEST . Le système retourne DDE_FNOTPROCESSED à un client qui envoie une transaction XTYP_REQUEST au serveur.
CBF_FAIL_SELFCONNECTIONS
0x00001000
Empêche la fonction de rappel de recevoir XTYP_CONNECT transactions à partir des propres instance de l’application. Cet indicateur empêche une application d’établir une conversation DDE avec ses propres instance. Une application doit utiliser cet indicateur si elle doit communiquer avec d’autres instances d’elle-même, mais pas avec elle-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 à une fonction de rappel DDE dans le système.
MF_CONV
0x40000000
Notifie la fonction de rappel chaque fois qu’une conversation est établie ou terminée.
MF_ERRORS
0x10000000
Notifie la fonction de rappel chaque fois qu’une erreur DDE se produit.
MF_HSZ_INFO
0x01000000
Notifie la fonction de rappel chaque fois qu’une application DDE crée, libère ou incrémente le nombre d’utilisations d’un handle de chaîne ou chaque fois qu’un handle de chaîne est libéré à la suite d’un appel à la fonction DdeUninitialize .
MF_LINKS
0x20000000
Notifie la fonction de rappel chaque fois qu’une boucle d’avertissement est démarrée ou terminée.
MF_POSTMSGS
0x04000000
Notifie la fonction de rappel chaque fois que le système ou une application publie un message DDE.
MF_SENDMSGS
0x02000000
Notifie la fonction de rappel chaque fois que le système ou une application envoie un message DDE.

ulRes

Type : DWORD

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

Valeur retournée

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 surveillance DDE ne doit pas tenter d’effectuer des opérations DDE (établir des conversations, émettre des transactions, etc.) dans le contexte de la même application instance.

Une transaction synchrone échoue avec une erreur 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 filtre DDEML sur toutes les transactions de serveur 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).

Notes

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. La combinaison 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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête ddeml.h (inclure Windows.h)
Bibliothèque User32.lib
DLL User32.dll

Voir aussi

Vue d’ensemble de la bibliothèque de gestion Dynamic Data Exchange