Fonction IsNLSDefinedString (winnls.h)

Détermine si chaque caractère d’une chaîne a un résultat défini pour une fonctionnalité NLS spécifiée.

Syntaxe

BOOL IsNLSDefinedString(
  [in] NLS_FUNCTION     Function,
  [in] DWORD            dwFlags,
  [in] LPNLSVERSIONINFO lpVersionInformation,
  [in] LPCWSTR          lpString,
  [in] INT              cchStr
);

Paramètres

[in] Function

Fonctionnalité NLS à interroger. Cette valeur doit être COMPARE_STRING. Consultez l’énumération SYSNLS_FUNCTION .

[in] dwFlags

Indicateurs définissant la fonction. Doit être égal à 0.

[in] lpVersionInformation

Pointeur vers une structure NLSVERSIONINFO contenant des informations de version. En règle générale, les informations sont obtenues en appelant GetNLSVersion. L’application définit ce paramètre sur NULL si la fonction doit utiliser la version actuelle.

[in] lpString

Pointeur vers la chaîne UTF-16 à examiner.

[in] cchStr

Nombre de caractères UTF-16 dans la chaîne indiquée par lpString. Ce nombre peut inclure un caractère null de fin. Si le caractère null de fin est inclus dans le nombre de caractères, cela n’affecte pas le comportement de vérification, car le caractère null de fin est toujours défini.

L’application doit fournir -1 pour indiquer que la chaîne est terminée par null. Dans ce cas, la fonction elle-même calcule la longueur de chaîne.

Valeur retournée

Retourne TRUE si elle réussit, uniquement si la chaîne d’entrée est valide, ou FALSE dans le cas contraire. Pour obtenir des informations d’erreur étendues, l’application peut appeler GetLastError, qui peut retourner l’un des codes d’erreur suivants :

  • ERROR_INSUFFICIENT_BUFFER. Une taille de mémoire tampon fournie n’était pas assez grande ou elle a été incorrectement définie sur NULL.
  • ERROR_INVALID_FLAGS. Les valeurs fournies pour les indicateurs n’étaient pas valides.
  • ERROR_INVALID_PARAMETER. L’une des valeurs de paramètre n’était pas valide.

Remarques

Cette fonction fait la différence entre les chaînes définies et non définies, de sorte qu’une application telle qu’Active Directory peut rejeter les chaînes avec des points de code non définis. L’utilisation de la fonction peut réduire la nécessité pour l’application de réindexer sa base de données. Pour plus d’informations, consultez Gestion du tri dans vos applications.

Par exemple, si Function a la valeur COMPARE_STRING, IsNLSDefinedString recherche des points de code non définis, des paires de substitution qui représentent des caractères Unicode non définis ou des paires de substitution mal formées. Si la fonction retourne TRUE pour une chaîne particulière, les résultats, tels que récupérés par CompareString ou LCMapString avec LCMAP_SORTKEY défini, sont garantis identiques tant que la version NLS correspondante ne change pas.

Configuration requise

   
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête winnls.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

CompareString

GetNLSVersion

LCMapString

NLSVERSIONINFO

Prise en charge des langues nationales

Fonctions de prise en charge des langues nationales

SYSNLS_FUNCTION