Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Input / ProcessInputEventArgs.cs / 1 / ProcessInputEventArgs.cs
using System;
using System.Security.Permissions;
using System.Security;
using MS.Internal;
using MS.Internal.PresentationCore;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Input
{
///
/// Provides access to the input manager's staging area.
///
///
/// An instance of this class, or a derived class, is passed to the
/// handlers of the following events:
///
/// -
///
///
/// -
///
///
///
///
public class ProcessInputEventArgs : NotifyInputEventArgs
{
// Only we can make these. Note that we cache and resuse instances.
internal ProcessInputEventArgs() {}
///
/// Critical - calls a critical method base.Reset
///
[SecurityCritical]
internal override void Reset(StagingAreaInputItem input, InputManager inputManager)
{
_allowAccessToStagingArea = true;
base.Reset(input, inputManager);
}
///
/// Pushes an input event onto the top of the staging area.
///
///
/// The input event to place on the staging area. This may not
/// be null, and may not already exist in the staging area.
///
///
/// An existing staging area item to promote the state from.
///
///
/// The staging area input item that wraps the specified input.
///
///
/// Callers must have UIPermission(PermissionState.Unrestricted) to call this API.
///
///
/// Critical - calls a critical method ( PushInput)
/// PublicOK - there is a link demand for public callers.
///
[SecurityCritical ]
[UIPermissionAttribute(SecurityAction.LinkDemand,Unrestricted=true)]
public StagingAreaInputItem PushInput(InputEventArgs input,
StagingAreaInputItem promote) // Note: this should be a bool, and always use the InputItem available on these args.
{
if(!_allowAccessToStagingArea)
{
throw new InvalidOperationException(SR.Get(SRID.NotAllowedToAccessStagingArea));
}
return this.UnsecureInputManager.PushInput(input, promote);
}
///
/// Pushes an input event onto the top of the staging area.
///
///
/// The input event to place on the staging area. This may not
/// be null, and may not already exist in the staging area.
///
///
/// The specified staging area input item.
///
///
/// Callers must have UIPermission(PermissionState.Unrestricted) to call this API.
///
///
/// Critical - calls a critical method ( PushInput)
/// PublicOK - there is a link demand for public callers.
///
[SecurityCritical]
[UIPermissionAttribute(SecurityAction.LinkDemand,Unrestricted=true)]
public StagingAreaInputItem PushInput(StagingAreaInputItem input)
{
if(!_allowAccessToStagingArea)
{
throw new InvalidOperationException(SR.Get(SRID.NotAllowedToAccessStagingArea));
}
return this.UnsecureInputManager.PushInput(input);
}
///
/// Pops off the input event on the top of the staging area.
///
///
/// The input event that was on the top of the staging area.
/// This can be null, if the staging area was empty.
///
///
/// Callers must have UIPermission(PermissionState.Unrestricted) to call this API.
///
///
/// Critical - calls a critical function ( InputManager.PopInput)
/// PublicOK - there is a demand.
///
[SecurityCritical]
public StagingAreaInputItem PopInput()
{
SecurityHelper.DemandUnrestrictedUIPermission();
if(!_allowAccessToStagingArea)
{
throw new InvalidOperationException(SR.Get(SRID.NotAllowedToAccessStagingArea));
}
return this.UnsecureInputManager.PopInput();
}
///
/// Returns the input event on the top of the staging area.
///
///
/// The input event that is on the top of the staging area.
/// This can be null, if the staging area is empty.
///
///
/// Callers must have UIPermission(PermissionState.Unrestricted) to call this API.
///
///
/// Critical - accesses UnsecureInputManager
/// PublicOK - there is a demand.
///
[SecurityCritical]
public StagingAreaInputItem PeekInput()
{
SecurityHelper.DemandUnrestrictedUIPermission();
if(!_allowAccessToStagingArea)
{
throw new InvalidOperationException(SR.Get(SRID.NotAllowedToAccessStagingArea));
}
return this.UnsecureInputManager.PeekInput();
}
private bool _allowAccessToStagingArea;
}
///
/// Delegate type for handles of events that use
/// .
///
public delegate void ProcessInputEventHandler(object sender, ProcessInputEventArgs e);
}
// 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
- TailPinnedEventArgs.cs
- ChooseAction.cs
- TemplateNameScope.cs
- InternalDuplexBindingElement.cs
- FaultReason.cs
- DataGridRelationshipRow.cs
- SolidColorBrush.cs
- SimpleWebHandlerParser.cs
- InternalDispatchObject.cs
- Axis.cs
- ConvertEvent.cs
- Decoder.cs
- XsltException.cs
- SecurityChannelListener.cs
- DecoderFallback.cs
- TCPListener.cs
- WorkflowControlClient.cs
- TraceHandlerErrorFormatter.cs
- X509SubjectKeyIdentifierClause.cs
- Rule.cs
- Section.cs
- UnsafeNativeMethodsMilCoreApi.cs
- WindowsIPAddress.cs
- SSmlParser.cs
- EntityContainer.cs
- EventLog.cs
- PolicyException.cs
- SqlMethods.cs
- GeometryValueSerializer.cs
- FileLogRecordStream.cs
- Scene3D.cs
- InkCollectionBehavior.cs
- LazyInitializer.cs
- PropertyChangedEventManager.cs
- TextModifier.cs
- PrintPreviewControl.cs
- RenderTargetBitmap.cs
- StyleBamlRecordReader.cs
- SHA384Managed.cs
- XslTransformFileEditor.cs
- ContentFileHelper.cs
- SerialStream.cs
- DataTableMapping.cs
- FileLevelControlBuilderAttribute.cs
- SubMenuStyle.cs
- HyperLinkDesigner.cs
- SchemaDeclBase.cs
- ToolStripGripRenderEventArgs.cs
- CookieProtection.cs
- UpdateTracker.cs
- OdbcException.cs
- IOException.cs
- _BasicClient.cs
- TargetControlTypeAttribute.cs
- CryptoKeySecurity.cs
- ContentWrapperAttribute.cs
- UnknownWrapper.cs
- SmtpMail.cs
- TabItemAutomationPeer.cs
- HtmlToClrEventProxy.cs
- AnnotationMap.cs
- Stroke2.cs
- EventMappingSettingsCollection.cs
- PrefixQName.cs
- Win32MouseDevice.cs
- RegexStringValidatorAttribute.cs
- CodeDirectionExpression.cs
- SqlDataSourceCache.cs
- StylusPlugInCollection.cs
- ModelPerspective.cs
- _NestedSingleAsyncResult.cs
- SqlRewriteScalarSubqueries.cs
- Publisher.cs
- ActivityTypeDesigner.xaml.cs
- XsdBuildProvider.cs
- HostDesigntimeLicenseContext.cs
- XDRSchema.cs
- HttpRequest.cs
- Vector3DAnimationBase.cs
- ParserHooks.cs
- _ConnectionGroup.cs
- OracleEncoding.cs
- XmlTypeAttribute.cs
- ListViewItem.cs
- InvokeGenerator.cs
- HostProtectionPermission.cs
- CallbackValidator.cs
- XamlTypeMapper.cs
- FieldNameLookup.cs
- SqlClientMetaDataCollectionNames.cs
- ProgressBar.cs
- ListViewHitTestInfo.cs
- SendAgentStatusRequest.cs
- CodeThrowExceptionStatement.cs
- AutoResetEvent.cs
- COM2TypeInfoProcessor.cs
- XPathDescendantIterator.cs
- RepeaterItemEventArgs.cs
- InheritedPropertyChangedEventArgs.cs
- WorkerRequest.cs