Esempio n. 1
0
        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();
            }
        }