UDF > WinAPIEx > Menus & Resources > Resources >


_WinAPI_LoadLibraryEx

Mappe un module exécutable spécifié dans l'espace d'adressage d'un processus appelant

#include <WinAPIRes.au3>
_WinAPI_LoadLibraryEx ( $sFileName [, $iFlags = 0] )

Paramètres

$sFileName Nom d'un module exécutable Win32 (soit une DLL, soit un fichier exe). Le nom spécifié est le nom du fichier du module exécutable.
$iFlags [optionnel] Spécifie l'action à prendre lors du chargement du module. Ce paramètre peut prendre l'une des valeurs suivantes:
$DONT_RESOLVE_DLL_REFERENCES - Si cette valeur est utilisée et si le module exécutable est une DLL, le système n'appelle pas DllMain pour l'initialisation et la terminaison du processus et du thread. De plus, le système ne charge pas des modules exécutables supplémentaires qui sont référencés par le module spécifié.

$LOAD_LIBRARY_AS_DATAFILE - Si cette valeur est utilisée, le système mappe le fichier dans l'espace d'adressage du processus appelant comme s'il s'agissait d'un fichier de données. Rien n'est fait pour exécuter ou préparer l'exécution du fichier mappé.

$LOAD_WITH_ALTERED_SEARCH_PATH - Si cette valeur est utilisée, et si $filename spécifie un chemin, le système utilise la stratégie de recherche de fichier alternatif pour trouver les modules exécutables associés dont le module spécifié provoque le chargement.

Valeur de retour

Succès: Retourne le handle du module exécutable
Échec: Retourne 0, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur.

Remarque

Les constantes ci-dessus nécessitent WinAPIConstants.au3

En relation

_WinAPI_FreeLibrary, _WinAPI_LoadLibrary, _WinAPI_LoadString

Voir aussi

Consultez LoadLibraryEx dans la librairie MSDN.

Exemple

#include <GUIConstantsEx.au3>
#include <GuiReBar.au3>
#include <WinAPIError.au3>
#include <WinAPIRes.au3>
#include <WindowsConstants.au3>

Global $g_idMemo

Example()

Func Example()
    Local $hGUI, $idInput, $id_Get, $hReBar, $hInstance, $sText, $iMsg
    ; Crée une GUI
    $hGUI = GUICreate("WinAPI", 400, 396)

    $idInput = GUICtrlCreateInput("4209", 0, 0, 100, 20)

    ; Crée un contrôle conteneur de ruban 
    $hReBar = _GUICtrlRebar_Create($hGUI, BitOR($CCS_TOP, $WS_BORDER, $RBS_VARHEIGHT, $RBS_AUTOSIZE, $RBS_BANDBORDERS))

    $g_idMemo = GUICtrlCreateEdit("", 2, 55, 396, 200, BitOR($WS_VSCROLL, $WS_HSCROLL))
    GUICtrlSetFont($g_idMemo, 10, 400, 0, "Courier New")

    ; Ajoute un ruban contenant le contrôle Input
    _GUICtrlRebar_AddBand($hReBar, GUICtrlGetHandle($idInput), 120, 200, "String ID:")

    $id_Get = GUICtrlCreateButton("Get String", 0, 0, 90, 20)

    ; Ajoute un ruban contenant le contrôle Button
    _GUICtrlRebar_AddBand($hReBar, GUICtrlGetHandle($id_Get), 120, 200)

    GUISetState(@SW_SHOW)

    $iMsg = GUIGetMsg()
    While $iMsg <> $GUI_EVENT_CLOSE
        If $iMsg = $id_Get Then
            GUICtrlSetData($g_idMemo, "")
            $hInstance = _WinAPI_LoadLibraryEx("shell32.dll", $LOAD_LIBRARY_AS_DATAFILE)
            If $hInstance Then
                $sText = _WinAPI_LoadString($hInstance, GUICtrlRead($idInput))
                If Not @error Then
                    MemoWrite('Got the String (chars: '& @extended & '): '& @CRLF & $sText)
                Else
                    MemoWrite("Last Error Message: " & @CRLF & _WinAPI_GetLastErrorMessage())
                EndIf
                MemoWrite(@CRLF & "Success Freeing? " & _WinAPI_FreeLibrary($hInstance))
            EndIf
        EndIf
        $iMsg = GUIGetMsg()
    WEnd
EndFunc   ;==>Example

; Ecrit un message dans le contrôle Memo
Func MemoWrite($sMessage = "")
    GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite