ai_office_plugin/AIProofread/core/EventForwarder.cs
2024-03-28 19:22:43 +08:00

48 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AIProofread
{
/// <summary>
/// 处理窗体基本事件
/// </summary>
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComVisible(true)]
public class EventForwarder
{
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
readonly IntPtr target;
readonly Form formHandle;
public EventForwarder(Form who)
{
this.target = who.Handle;
this.formHandle = who;
}
public void Close()
{
formHandle.Close();
}
public void MouseDownDrag()
{
ReleaseCapture();
SendMessage(target, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
}