// -------------------------------------------------------------------------------------------------------------------- // // Copyright (c) James South. // Licensed under the Apache License, Version 2.0. // // // Provides access to unmanaged native methods. // // -------------------------------------------------------------------------------------------------------------------- namespace ImageProcessor.Web.Helpers { using System; using System.Runtime.InteropServices; /// /// Provides access to unmanaged native methods. /// internal class NativeMethods { /// /// Loads the specified module into the address space of the calling process. /// The specified module may cause other modules to be loaded. /// /// /// The name of the module. This can be either a library module or /// an executable module. /// /// If the function succeeds, the return value is a handle to the module; otherwise null. [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] public static extern IntPtr LoadLibrary(string libname); /// /// Frees the loaded dynamic-link library (DLL) module and, if necessary, decrements its reference count. /// When the reference count reaches zero, the module is unloaded from the address space of the calling /// process and the handle is no longer valid. /// /// A handle to the loaded library module. /// The LoadLibrary, LoadLibraryEx, GetModuleHandle, or GetModuleHandleEx function returns this handle. /// If the function succeeds, the return value is nonzero; otherwise zero. [DllImport("kernel32.dll", CharSet = CharSet.Auto)] public static extern bool FreeLibrary(IntPtr hModule); } }