Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / 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. 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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StringFormat.cs
- RelationshipEndMember.cs
- Matrix3DConverter.cs
- RepeaterItem.cs
- CategoryAttribute.cs
- RequestQueryParser.cs
- TouchDevice.cs
- TypedReference.cs
- AddingNewEventArgs.cs
- ParallelTimeline.cs
- TransactionManagerProxy.cs
- ControlAdapter.cs
- SmiGettersStream.cs
- ObjectListItemCollection.cs
- InternalConfigRoot.cs
- SecurityTokenException.cs
- Win32KeyboardDevice.cs
- XslTransform.cs
- HostedAspNetEnvironment.cs
- SchemaUtility.cs
- MergePropertyDescriptor.cs
- HashLookup.cs
- DataGridViewMethods.cs
- RangeContentEnumerator.cs
- Emitter.cs
- CharacterBufferReference.cs
- Publisher.cs
- ListControlConvertEventArgs.cs
- BinaryNode.cs
- SafeNativeMethods.cs
- SafeCryptoHandles.cs
- HyperLinkColumn.cs
- RequestCachePolicy.cs
- XmlSchemaCollection.cs
- RecordsAffectedEventArgs.cs
- WindowAutomationPeer.cs
- ResourceContainer.cs
- FastPropertyAccessor.cs
- _ProxyRegBlob.cs
- CLSCompliantAttribute.cs
- CompileXomlTask.cs
- TextBox.cs
- AnnotationComponentManager.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- KeyGestureValueSerializer.cs
- BrowserCapabilitiesFactoryBase.cs
- RenameRuleObjectDialog.cs
- PointKeyFrameCollection.cs
- ObjectCloneHelper.cs
- StrongName.cs
- MailAddressParser.cs
- DocumentSequence.cs
- DesignerActionVerbList.cs
- ChannelBuilder.cs
- ExtendedTransformFactory.cs
- StatusBarDrawItemEvent.cs
- BinarySerializer.cs
- BooleanAnimationBase.cs
- BuildManager.cs
- FormatVersion.cs
- SignatureDescription.cs
- Span.cs
- XmlValidatingReaderImpl.cs
- DecodeHelper.cs
- WinInetCache.cs
- UndirectedGraph.cs
- StrongNameMembershipCondition.cs
- BinarySerializer.cs
- ObjectQuery.cs
- SmtpNtlmAuthenticationModule.cs
- WindowsToolbarAsMenu.cs
- EventLogTraceListener.cs
- BooleanToVisibilityConverter.cs
- TreeNodeStyleCollection.cs
- DockProviderWrapper.cs
- Camera.cs
- StrokeCollectionConverter.cs
- SqlDataSourceWizardForm.cs
- DateTime.cs
- MobileControlDesigner.cs
- wgx_exports.cs
- RoleManagerModule.cs
- SystemWebCachingSectionGroup.cs
- RoleGroup.cs
- UrlMappingsSection.cs
- PolygonHotSpot.cs
- FontSizeConverter.cs
- ActiveDocumentEvent.cs
- TypeDependencyAttribute.cs
- ResourceSetExpression.cs
- CompositeDispatchFormatter.cs
- HostedHttpRequestAsyncResult.cs
- RemoteEndpointMessageProperty.cs
- Graph.cs
- HttpFileCollectionWrapper.cs
- CachingHintValidation.cs
- TextEndOfLine.cs
- SerializationInfoEnumerator.cs
- DependencyObjectPropertyDescriptor.cs
- RectKeyFrameCollection.cs