private void SetUpInputHooks() { IKeyboardInputSink sink; new UIPermission(PermissionState.Unrestricted).Assert(); //BlessedAssert try { _inputPostFilter = new HwndWrapperHook(BrowserInteropHelper.PostFilterInput); HwndSource hwndSource = base.HwndSourceWindow; hwndSource.HwndWrapper.AddHookLast(_inputPostFilter); sink = (IKeyboardInputSink)hwndSource; } finally { UIPermission.RevertAll(); } new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Assert(); //BlessedAssert try { Debug.Assert(sink.KeyboardInputSite == null); sink.KeyboardInputSite = new KeyInputSite(new SecurityCriticalData <IKeyboardInputSink>(sink)); } finally { SecurityPermission.RevertAll(); } }