# Function Reference

# _WinAPI_LoadLibraryEx

Maps a specified executable module into the address space of the calling process

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

## Parameters

$sFileName | Names a Win32 executable module (either a .dll or an .exe file). The name specified is the filename of the executable module.
$iFlags | [optional] Specifies the action to take when loading the module. This parameter can be one of the following values: $DONT_RESOLVE_DLL_REFERENCES - If this value is used and the executable module is a DLL the system does not call DllMain for process and thread initialization and termination. Also, the system does not load additional executable modules that are referenced by the specified module. $LOAD_LIBRARY_AS_DATAFILE - If this value is used, the system maps the file into the calling process's address space as if it were a data file. Nothing is done to execute or prepare to execute the mapped file. $LOAD_WITH_ALTERED_SEARCH_PATH - If this value is used, and $FileName specifies a path, the system uses the alternate file search strategy to find the associated executable modules that the specified module causes to be loaded.

## Return Value

Success: | A handle to the executable module
Failure: | 0, call _WinAPI_GetLastError() to get extended error information

## Remarks

Above constants require #include <WinAPIConstants.au3>

## Related

_WinAPI_FreeLibrary, _WinAPI_LoadLibrary, _WinAPI_LoadString

## See Also

Search LoadLibraryEx in MSDN Library.

## Example

    #include "Extras\HelpFileInternals.au3"

    #include <AutoItConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiReBar.au3>
    #include <WinAPIError.au3>
    #include <WinAPIRes.au3>
    #include <WindowsStylesConstants.au3>

    Example()

    Func Example()
        Local $hGUI, $idInput, $idBtn_Get, $hReBar, $hInstance, $sText
        ; Create GUI
        $hGUI = GUICreate("WinAPI", 400, 396)

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

        ; create the rebar control
        $hReBar = _GUICtrlRebar_Create($hGUI, BitOR($CCS_TOP, $WS_BORDER, $RBS_VARHEIGHT, $RBS_AUTOSIZE, $RBS_BANDBORDERS))

        _MemoCreate(2, 55, 396, 200, BitOR($WS_VSCROLL, $WS_HSCROLL))

        ;add band containing the  control
        _GUICtrlRebar_AddBand($hReBar, GUICtrlGetHandle($idInput), 120, 200, "String ID:")

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

        ;add band containing the  control
        _GUICtrlRebar_AddBand($hReBar, GUICtrlGetHandle($idBtn_Get), 120, 200)

        GUISetState(@SW_SHOW)

        While 1
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE
                    Exit
                Case $idBtn_Get
                    GUICtrlSetData($_g_idLst_Memo, "")
                    $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
            EndSwitch
        WEnd
    EndFunc   ;==>Example