protected override void OnStart() { _module = NativeModule.Load(_moduleName); _callback = _module.GetProcedureAddress(_functionName); _hook = NativeMethods.SetWindowsHookEx(_hookType, _callback, _module, _threadId); }
protected override void OnStart() { _hookProc = new KeyboardLowLevelHookProc(HookProc); _hookHandle = NativeMethods.SetWindowsHookEx(_hookProc); if (_hookHandle.IsInvalid) { throw new Win32Exception(); } _hookRoot = GCHandle.Alloc(this); }
protected override void OnStop() { if (_hook != null) { _hook.Dispose(); _hook = null; } if (_module != null) { _module.Dispose(); _module = null; } }
protected override void OnStop() { if (_hookHandle != null) { _hookHandle.Dispose(); } if (_hookRoot.IsAllocated) { _hookRoot.Free(); } _hookHandle = null; }
protected override void Dispose(bool disposing) { if (disposing) { if (_hookHandle != null) { _hookHandle.Dispose(); } if (_hookRoot.IsAllocated) { _hookRoot.Free(); } } _hookHandle = null; base.Dispose(disposing); }