Partager via


Fonction DdeCreateStringHandleA (ddeml.h)

Crée un handle qui identifie la chaîne spécifiée. Une application cliente ou serveur Dynamic Data Exchange (DDE) peut passer le handle de chaîne en tant que paramètre à d’autres fonctions de la bibliothèque de gestion DDEML (Dynamic Data Exchange Management Library).

Syntaxe

HSZ DdeCreateStringHandleA(
  [in] DWORD  idInst,
  [in] LPCSTR psz,
  [in] int    iCodePage
);

Paramètres

[in] idInst

Type : DWORD

L’application instance identificateur obtenu par un appel précédent à la fonction DdeInitialize.

[in] psz

Type : LPTSTR

Chaîne terminée par null pour laquelle un handle doit être créé. Cette chaîne peut avoir jusqu’à 255 caractères. La raison de cette limite est que les fonctions de gestion des chaînes DDEML sont implémentées à l’aide d’atomes.

[in] iCodePage

Type : int

Page de code à utiliser pour afficher la chaîne. Cette valeur doit être CP_WINANSI (page de code par défaut) ou CP_WINUNICODE, selon que la version ANSI ou Unicode de DdeInitialize a été appelée par l’application cliente.

Valeur retournée

Type : HSZ

Si la fonction réussit, la valeur de retour est un handle de chaîne.

Si la fonction échoue, la valeur de retour est 0L.

La fonction DdeGetLastError peut être utilisée pour obtenir le code d’erreur, qui peut être l’une des valeurs suivantes :

Remarques

La valeur d’un handle de chaîne n’est pas liée au cas de la chaîne qu’il identifie.

Lorsqu’une application crée un handle de chaîne ou en reçoit un dans la fonction de rappel, puis utilise la fonction DdeKeepStringHandle pour le conserver, l’application doit libérer ce handle de chaîne quand il n’est plus nécessaire.

Un handle de chaîne spécifique à instance ne peut pas être mappé d’un handle de chaîne à une chaîne et à un handle de chaîne. Cela est illustré dans l’exemple suivant, dans lequel la fonction DdeQueryString crée une chaîne à partir d’un handle de chaîne et DdeCreateStringHandle crée un handle de chaîne à partir de cette chaîne, mais les deux handles ne sont pas les mêmes :

DWORD idInst; 
DWORD cb; 
HSZ hszInst, hszNew; 
PSZ pszInst; 
 
DdeQueryString(idInst, hszInst, pszInst, cb, CP_WINANSI); 
hszNew = DdeCreateStringHandle(idInst, pszInst, CP_WINANSI); 
// hszNew != hszInst ! 

Notes

L’en-tête ddeml.h définit DdeCreateStringHandle comme un 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.

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

Conceptuel

DdeAccessData

DdeCmpStringHandles

DdeFreeStringHandle

DdeInitialize

DdeKeepStringHandle

DdeQueryString

Bibliothèque de gestion d’Échange de données dynamiques

Référence