Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Input / InputProviderSite.cs / 1 / InputProviderSite.cs
using System; using System.Security; using System.Security.Permissions; using MS.Internal; using MS.Internal.PresentationCore; // SecurityHelper using MS.Win32; using System.Windows.Threading; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows.Input { ////// The object which input providers use to report input to the input /// manager. /// internal class InputProviderSite : IDisposable { ////// Critical: This code creates critical data in the form of InputManager and InputProvider /// [SecurityCritical] internal InputProviderSite(InputManager inputManager, IInputProvider inputProvider) { _inputManager = new SecurityCriticalDataClass(inputManager); _inputProvider = new SecurityCriticalDataClass (inputProvider); } /// /// Returns the input manager that this site is attached to. /// ////// Critical: We do not want to expose the Input manager in the SEE /// TreatAsSafe: This code has a demand in it /// public InputManager InputManager { [SecurityCritical,SecurityTreatAsSafe] get { SecurityHelper.DemandUnrestrictedUIPermission(); return CriticalInputManager; } } ////// Returns the input manager that this site is attached to. /// ////// Critical: We do not want to expose the Input manager in the SEE /// internal InputManager CriticalInputManager { [SecurityCritical] get { return _inputManager.Value; } } ////// Unregisters this input provider. /// ////// Critical: This code accesses critical data (InputManager and InputProvider). /// TreatAsSafe: The critical data is not exposed outside this call /// [SecurityCritical,SecurityTreatAsSafe] public void Dispose() { if (!_isDisposed) { _isDisposed = true; if (_inputManager != null && _inputProvider != null) { _inputManager.Value.UnregisterInputProvider(_inputProvider.Value); } _inputManager = null; _inputProvider = null; } } ////// Returns true if the CompositionTarget is disposed. /// public bool IsDisposed { get { return _isDisposed; } } ////// Reports input to the input manager. /// ////// Whether or not any event generated as a consequence of this /// event was handled. /// ////// Critical:This code is critical and can be used in event spoofing. It also accesses /// InputManager and calls into ProcessInput which is critical. /// // [SecurityCritical ] [UIPermissionAttribute(SecurityAction.LinkDemand,Unrestricted = true)] public bool ReportInput(InputReport inputReport) { if(IsDisposed) { throw new ObjectDisposedException(SR.Get(SRID.InputProviderSiteDisposed)); } bool handled = false; InputReportEventArgs input = new InputReportEventArgs(null, inputReport); input.RoutedEvent=InputManager.PreviewInputReportEvent; if(_inputManager != null) { handled = _inputManager.Value.ProcessInput(input); } return handled; } private bool _isDisposed; ////// Critical: This object should not be exposed in the SEE as it can be /// used for input spoofing /// private SecurityCriticalDataClass_inputManager; /// /// Critical: This object should not be exposed in the SEE as it can be /// used for input spoofing /// private SecurityCriticalDataClass_inputProvider; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TypeConverterValueSerializer.cs
- IsolatedStorageSecurityState.cs
- ExpressionBuilderContext.cs
- MonikerBuilder.cs
- sitestring.cs
- FragmentQuery.cs
- ToolStripRenderEventArgs.cs
- FrameDimension.cs
- EventLogPermissionEntryCollection.cs
- CharKeyFrameCollection.cs
- XmlSchemaCollection.cs
- TcpHostedTransportConfiguration.cs
- ObjectDisposedException.cs
- StringAnimationUsingKeyFrames.cs
- Error.cs
- StrokeIntersection.cs
- BStrWrapper.cs
- LayoutInformation.cs
- ProtocolViolationException.cs
- XslAst.cs
- MobileCategoryAttribute.cs
- ChildTable.cs
- RegexRunnerFactory.cs
- DataGridViewColumn.cs
- MetadataPropertyCollection.cs
- EncodingNLS.cs
- WebPartTransformerCollection.cs
- hwndwrapper.cs
- PreservationFileWriter.cs
- AssemblyName.cs
- IndicShape.cs
- TdsEnums.cs
- DataGridViewLayoutData.cs
- GlobalizationSection.cs
- RangeValueProviderWrapper.cs
- GenericWebPart.cs
- Calendar.cs
- BuildProviderCollection.cs
- WebControl.cs
- ServiceBuildProvider.cs
- BitSet.cs
- ListViewItemEventArgs.cs
- DataSourceView.cs
- ComponentChangedEvent.cs
- ContextInformation.cs
- SafeCertificateStore.cs
- XamlTreeBuilder.cs
- SizeKeyFrameCollection.cs
- OracleCommandSet.cs
- TypeExtension.cs
- UndirectedGraph.cs
- BufferedReadStream.cs
- ReaderWriterLock.cs
- ScriptHandlerFactory.cs
- UnknownBitmapDecoder.cs
- BinHexEncoder.cs
- UserControlCodeDomTreeGenerator.cs
- ComboBoxAutomationPeer.cs
- WindowsEditBox.cs
- BindingValueChangedEventArgs.cs
- ObjectMemberMapping.cs
- HttpServerVarsCollection.cs
- XmlDataImplementation.cs
- RequiredAttributeAttribute.cs
- ResourceContainer.cs
- SiteOfOriginContainer.cs
- CssTextWriter.cs
- Point.cs
- FixedSOMFixedBlock.cs
- StringValueSerializer.cs
- filewebresponse.cs
- HttpHeaderCollection.cs
- SqlCaseSimplifier.cs
- GenericsNotImplementedException.cs
- ComplexLine.cs
- SqlCacheDependencyDatabaseCollection.cs
- PageTextBox.cs
- TextServicesManager.cs
- InstanceOwnerException.cs
- XPathNode.cs
- DebuggerAttributes.cs
- MemberCollection.cs
- DataGridView.cs
- RtfControls.cs
- _IPv4Address.cs
- TrailingSpaceComparer.cs
- PropertyChangedEventManager.cs
- AnalyzedTree.cs
- OdbcStatementHandle.cs
- AssociatedControlConverter.cs
- ConnectionOrientedTransportManager.cs
- ItemList.cs
- PixelFormatConverter.cs
- FixedSOMImage.cs
- Debug.cs
- ObjectConverter.cs
- DataGridViewCellStyle.cs
- DbProviderFactoriesConfigurationHandler.cs
- Emitter.cs
- EventListenerClientSide.cs