36 lines
1.3 KiB
C#
36 lines
1.3 KiB
C#
|
using TerraFX.Interop.Windows;
|
|||
|
|
|||
|
namespace CustomResolution.WndProcHookManagerProxyApi;
|
|||
|
|
|||
|
// This could be optimized in a thousand different ways (better dynamic methods, source-gen this class), but eh.
|
|||
|
|
|||
|
public readonly record struct WndProcEventArgs(WndProcHookManager WndProcHookManager, object ProxiedValue) : IWndProcHookManagerProxy
|
|||
|
{
|
|||
|
public HWND Hwnd => (HWND) WndProcHookManager.GetValue(ProxiedValue, nameof(Hwnd))!;
|
|||
|
public int ViewportId => (int) WndProcHookManager.GetValue(ProxiedValue, nameof(ViewportId))!;
|
|||
|
|
|||
|
public uint Message
|
|||
|
{
|
|||
|
get => (uint) WndProcHookManager.GetValue(ProxiedValue, nameof(Message))!;
|
|||
|
set => WndProcHookManager.SetValue(ProxiedValue, nameof(Message), value);
|
|||
|
}
|
|||
|
|
|||
|
public WPARAM WParam
|
|||
|
{
|
|||
|
get => (WPARAM) WndProcHookManager.GetValue(ProxiedValue, nameof(WParam))!;
|
|||
|
set => WndProcHookManager.SetValue(ProxiedValue, nameof(WParam), value);
|
|||
|
}
|
|||
|
|
|||
|
public LPARAM LParam
|
|||
|
{
|
|||
|
get => (LPARAM) WndProcHookManager.GetValue(ProxiedValue, nameof(LParam))!;
|
|||
|
set => WndProcHookManager.SetValue(ProxiedValue, nameof(LParam), value);
|
|||
|
}
|
|||
|
|
|||
|
public bool SuppressCall
|
|||
|
{
|
|||
|
get => (bool) WndProcHookManager.GetValue(ProxiedValue, nameof(SuppressCall))!;
|
|||
|
set => WndProcHookManager.SetValue(ProxiedValue, nameof(SuppressCall), value);
|
|||
|
}
|
|||
|
}
|