loadlibraryex (kernel32)
Last changed: -216.2.86.11

.
Summary

C# Signature:

[DllImport("kernel32.dll")]
static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hFile,
   uint dwFlags);

VB.NET Signature:

<DllImport("kernel32.dll")> _
Private Shared Function LoadLibraryEx(lpFileName As String, hFile As IntPtr, dwFlags As UInteger) As IntPtr
End Function

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

If you only want to load resources from the library, specify LOAD_LIBRARY_AS_DATAFILE as dwFlags. In this case, nothing is done to execute or prepare to execute the mapped file. Declare LOAD_LIBRARY_AS_DATAFILE as follows:

private const uint LOAD_LIBRARY_AS_DATAFILE = 0x00000002;
private const uint DONT_RESOLVE_DLL_REFERENCES = 0x00000001;
private const uint LOAD_WITH_ALTERED_SEARCH_PATH = 0x00000008;
private const uint LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x00000010;

Sample Code:

[System.Runtime.InteropServices.DllImport("kernel32.dll")]
private static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hFile, uint dwFlags);
private static void LoadWin32Library(string libPath)
{
    System.IntPtr moduleHandle = LoadLibraryEx(libPath, IntPtr.Zero, 0);
    if (moduleHandle == IntPtr.Zero)
        throw new ApplicationException("Failed to load library " + libPath);
}

Alternative Managed API:

Do you know one? Please contribute it!

Documentation