Gamma Init

This commit is contained in:
Serge
2024-02-16 15:55:37 +01:00
parent 42a598f177
commit cf84fa0616
103 changed files with 7907 additions and 41 deletions

View File

@@ -0,0 +1,106 @@
using System;
using System.Runtime.InteropServices;
using WindowsDisplayAPI.Native.DeviceContext;
using WindowsDisplayAPI.Native.DeviceContext.Structures;
using WindowsDisplayAPI.Native.Structures;
namespace WindowsDisplayAPI.Native
{
internal class DeviceContextApi
{
[DllImport("user32", CharSet = CharSet.Ansi)]
public static extern ChangeDisplaySettingsExResults ChangeDisplaySettingsEx(
string deviceName,
ref DeviceMode devMode,
IntPtr handler,
ChangeDisplaySettingsFlags flags,
IntPtr param
);
[DllImport("user32", CharSet = CharSet.Ansi)]
public static extern ChangeDisplaySettingsExResults ChangeDisplaySettingsEx(
string deviceName,
IntPtr devModePointer,
IntPtr handler,
ChangeDisplaySettingsFlags flags,
IntPtr param
);
[DllImport("user32", CharSet = CharSet.Ansi)]
public static extern bool EnumDisplaySettings(
string deviceName,
DisplaySettingsMode mode,
ref DeviceMode devMode
);
[DllImport("gdi32", CharSet = CharSet.Unicode)]
internal static extern IntPtr CreateDC(string driver, string device, string port, IntPtr deviceMode);
[DllImport("gdi32")]
internal static extern bool DeleteDC(IntPtr dcHandle);
[DllImport("user32", CharSet = CharSet.Unicode)]
internal static extern bool EnumDisplayDevices(
string deviceName,
uint deviceNumber,
ref DeviceContext.Structures.DisplayDevice displayDevice,
uint flags
);
[DllImport("user32")]
internal static extern bool EnumDisplayMonitors(
[In] IntPtr dcHandle,
[In] IntPtr clip,
MonitorEnumProcedure callback,
IntPtr callbackObject
);
[DllImport("user32")]
internal static extern IntPtr GetDC(IntPtr windowHandle);
[DllImport("gdi32")]
internal static extern int GetDeviceCaps(DCHandle dcHandle, DeviceCapability index);
[DllImport("gdi32")]
internal static extern bool GetDeviceGammaRamp(DCHandle dcHandle, ref GammaRamp ramp);
[DllImport("user32")]
internal static extern bool GetMonitorInfo(
IntPtr monitorHandle,
ref MonitorInfo monitorInfo
);
[DllImport("user32")]
internal static extern IntPtr MonitorFromPoint(
[In] PointL point,
MonitorFromFlag flag
);
[DllImport("user32")]
internal static extern IntPtr MonitorFromRect(
[In] RectangleL rectangle,
MonitorFromFlag flag
);
[DllImport("user32")]
internal static extern IntPtr MonitorFromWindow(
[In] IntPtr windowHandle,
MonitorFromFlag flag
);
[DllImport("user32")]
internal static extern bool ReleaseDC([In] IntPtr windowHandle, [In] IntPtr dcHandle);
[DllImport("gdi32")]
internal static extern bool SetDeviceGammaRamp(DCHandle dcHandle, ref GammaRamp ramp);
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
internal delegate int MonitorEnumProcedure(
IntPtr monitorHandle,
IntPtr dcHandle,
ref RectangleL rect,
IntPtr callbackObject
);
}
}