UDF > WinAPIEx > Menus & Resources > Resources >


_WinAPI_LoadStringEx

Charge une ressource chaîne pour la langue spécifiée à partir du module spécifié

#include <WinAPIRes.au3>
_WinAPI_LoadStringEx ( $hModule, $iID [, $iLanguage = $LOCALE_USER_DEFAULT] )

Paramètres

$hModule Le handle à une instance du module dont le fichier exécutable contient la ressource de type chaîne.
Ce paramètre permet aussi de spécifier le nom du module à charger, il doit être un chemin complet ou relatif.
Si ce paramètre est 0 ou une chaîne vide, cela équivaut à passer le handle du module utilisé pour créer le processus en cours.
$iID L'identifiant de la chaîne à charger.
$iLanguage [optionnel] L'identifiant de langue de la ressource chaîne qui vous intéresse. Pour récupérer la chaîne pour la langue par défaut de l'utilisateur définissez ce paramètre à $LOCALE_USER_DEFAULT (par défaut).

Valeur de retour

Succès: Retourne la chaîne.
Échec: Retourne la chaîne vide et définit @error <> 0.

Exemple

#include <APILocaleConstants.au3>
#include <APIResConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPILocale.au3>
#include <WinAPIRes.au3>

Local $hInstance = _WinAPI_LoadLibraryEx(@ScriptDir & '\Extras\Resources.dll', $LOAD_LIBRARY_AS_DATAFILE)
If Not $hInstance Then
    MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Erreur', @ScriptDir & "\Extras\Resources.dll n'existe pas.")
    Exit
EndIf

; Pourquoi le nom de la ressource pour la chaîne d'ID = 6000 est 376 ? 6000/16 + 1 = 376
Local $aData = _WinAPI_EnumResourceLanguages($hInstance, $RT_STRING, 376)
If IsArray($aData) Then
    For $i = 1 To $aData[0]
        ConsoleWrite(StringFormat('%-10s - %s', _WinAPI_GetLocaleInfo($aData[$i], $LOCALE_SENGLANGUAGE), _WinAPI_LoadStringEx($hInstance, 6000, $aData[$i])) & @CRLF)
    Next
EndIf