Fonction FindStringOrdinal (libloaderapi.h)

Recherche une chaîne Unicode (caractères larges) dans une autre chaîne Unicode pour une comparaison non linguistique.

Syntaxe

int FindStringOrdinal(
  [in] DWORD   dwFindStringOrdinalFlags,
  [in] LPCWSTR lpStringSource,
  [in] int     cchSource,
  [in] LPCWSTR lpStringValue,
  [in] int     cchValue,
  [in] BOOL    bIgnoreCase
);

Paramètres

[in] dwFindStringOrdinalFlags

Indicateurs spécifiant les détails de l’opération de recherche. Ces indicateurs s’excluent mutuellement, FIND_FROMSTART étant la valeur par défaut. L’application peut spécifier un seul des indicateurs de recherche.

Valeur Signification
FIND_FROMSTART
Recherchez la chaîne en commençant par le premier caractère de la chaîne.
FIND_FROMEND
Recherchez la chaîne dans le sens inverse, en commençant par le dernier caractère de la chaîne.
FIND_STARTSWITH
Testez pour déterminer si la valeur spécifiée par lpStringValue est la première valeur de la chaîne source indiquée par lpStringSource.
FIND_ENDSWITH
Testez pour déterminer si la valeur spécifiée par lpStringValue est la dernière valeur dans la chaîne source indiquée par lpStringSource.

[in] lpStringSource

Pointeur vers la chaîne source, dans laquelle la fonction recherche la chaîne spécifiée par lpStringValue.

[in] cchSource

Taille, en caractères à l’exception du caractère null de fin, de la chaîne indiquée par lpStringSource. L’application doit normalement spécifier un nombre positif, ou 0. L’application peut spécifier -1 si la chaîne source se termine par un caractère Null et que la fonction doit calculer la taille automatiquement.

[in] lpStringValue

Pointeur vers la chaîne de recherche pour laquelle la fonction recherche dans la chaîne source.

[in] cchValue

Taille, en caractères à l’exception du caractère null de fin, de la chaîne indiquée par lpStringValue. L’application doit normalement spécifier un nombre positif, ou 0. L’application peut spécifier -1 si la chaîne est terminée par un caractère Null et que la fonction doit calculer la taille automatiquement.

[in] bIgnoreCase

TRUE si la fonction doit effectuer une comparaison qui ne respecte pas la casse, et FALSE dans le cas contraire. La comparaison n’est pas une opération linguistique et n’est pas appropriée pour tous les paramètres régionaux et toutes les langues. Son comportement est similaire à celui de l’anglais.

Valeur retournée

Retourne un index de base 0 dans la chaîne source indiquée par lpStringSource en cas de réussite. Si la fonction réussit, la chaîne trouvée a la même taille que la valeur de lpStringValue. La valeur de retour 0 indique que la fonction a trouvé une correspondance au début de la chaîne source.

La fonction retourne -1 si elle ne réussit pas ou si elle ne trouve pas la chaîne de recherche. Pour obtenir des informations d’erreur étendues, l’application peut appeler GetLastError, qui peut retourner l’un des codes d’erreur suivants :

  • 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.
  • ERROR_SUCCESS. L’action s’est terminée avec succès, mais n’a produit aucun résultat.

Remarques

Étant donné que FindStringOrdinal fournit une comparaison binaire, il ne retourne pas de résultats linguistiquement appropriés. La comparaison ordinale peut être confondue avec le comportement de tri en anglais. Toutefois, il ne trouve pas de correspondances lorsque les caractères varient selon des quantités linguistiquement insignifiantes. Consultez Tri pour plus d’informations sur le choix d’une fonction de tri appropriée.

Contrairement aux fonctions NLS qui retournent 0 en cas d’échec, cette fonction retourne -1 en cas d’échec. En cas de réussite, elle retourne un index de base 0. L’utilisation de cet index permet à la fonction d’éviter les erreurs off-by-one et les dépassements de mémoire tampon à un caractère.

Cette fonction est l’une des rares fonctions NLS qui appelle SetLastError même quand elle réussit. Il effectue cet appel pour effacer la dernière erreur dans un thread lorsqu’il ne correspond pas à la chaîne de recherche. Cela efface la valeur retournée par GetLastError.

À compter de Windows 8 : FindStringOrdinal est déclaré dans Libloaderapi.h. Avant Windows 8, elle était déclarée dans Winnls.h.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête libloaderapi.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

FindNLSString

FindNLSStringEx

Gestion du tri dans vos applications

Prise en charge des langues nationales

Fonctions de prise en charge des langues nationales