mirror of https://github.com/quasar/Quasar.git
31 lines
861 B
C#
31 lines
861 B
C#
// This code is distributed under MIT license.
|
|
// Copyright (c) 2015 George Mamaladze
|
|
// See license.txt or http://opensource.org/licenses/mit-license.php
|
|
|
|
using System.Windows.Forms;
|
|
using Microsoft.Win32.SafeHandles;
|
|
|
|
namespace xClient.Core.MouseKeyHook.WinApi
|
|
{
|
|
internal class HookProcedureHandle : SafeHandleZeroOrMinusOneIsInvalid
|
|
{
|
|
private static bool _closing;
|
|
|
|
static HookProcedureHandle()
|
|
{
|
|
Application.ApplicationExit += (sender, e) => { _closing = true; };
|
|
}
|
|
|
|
public HookProcedureHandle()
|
|
: base(true)
|
|
{
|
|
}
|
|
|
|
protected override bool ReleaseHandle()
|
|
{
|
|
//NOTE Calling Unhook during processexit causes deley
|
|
if (_closing) return true;
|
|
return HookNativeMethods.UnhookWindowsHookEx(handle) != 0;
|
|
}
|
|
}
|
|
} |