Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Input / Stylus / PenThread.cs / 2 / PenThread.cs
//#define TRACE using System; using System.Diagnostics; using System.Collections; using System.Collections.ObjectModel; using System.Runtime.InteropServices; using System.Windows.Threading; using System.Threading; using System.Security; using System.Security.Permissions; using MS.Internal; using MS.Internal.PresentationCore; // SecurityHelper using MS.Win32.Penimc; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows.Input { ///////////////////////////////////////////////////////////////////////// internal sealed class PenThread { private PenThreadWorker _penThreadWorker; ////// Critical - Calls SecurityCritical code PenThreadWorker constructor. /// Called by PenThreadPool.RegisterPenContextHelper. /// TreatAsSafe boundry is Stylus.EnableCore, Stylus.RegisterHwndForInput /// and HwndWrapperHook class (via HwndSource.InputFilterMessage). /// [SecurityCritical] internal PenThread() { _penThreadWorker = new PenThreadWorker(); } ////// Dispose /// internal void Dispose() { DisposeHelper(); } ///////////////////////////////////////////////////////////////////// ~PenThread() { DisposeHelper(); } ///////////////////////////////////////////////////////////////////// ////// Critical - Call security critical method PenThreadWorker.Dispose(). /// TreatAsSafe - Safe since it only frees internal private handle /// on an object that is going to be also marked as disposed and /// start failing all calls after return. /// [SecurityCritical, SecurityTreatAsSafe] void DisposeHelper() { // NOTE: PenThreadWorker deals with already being disposed logic. _penThreadWorker.Dispose(); GC.KeepAlive(this); } ///////////////////////////////////////////////////////////////////// ////// Critical - Calls SecurityCritical code PenThreadWorker.WorkerAddPenContext. /// Called by PenThreadPool.RegisterPenContextHelper. /// TreatAsSafe boundry is Stylus.EnableCore, Stylus.RegisterHwndForInput /// and HwndWrapperHook class (via HwndSource.InputFilterMessage). /// [SecurityCritical] internal bool AddPenContext(PenContext penContext) { return _penThreadWorker.WorkerAddPenContext(penContext); } ////// Critical - Calls SecurityCritical code PenThreadWorker.WorkerRemovePenContext. /// Called by PenContext.Disable. /// TreatAsSafe boundry is PenContext.Dispose, Stylus.ProcessDisplayChange /// and HwndWrapperHook class (via HwndSource.InputFilterMessage). /// [SecurityCritical] internal bool RemovePenContext(PenContext penContext) { return _penThreadWorker.WorkerRemovePenContext(penContext); } ///////////////////////////////////////////////////////////////////// ////// Critical - Calls SecurityCritical code PenThreadWorker.WorkerGetTabletsInfo. /// Called by PenThreadPool.WorkerGetTabletsInfo. /// [SecurityCritical] internal TabletDeviceInfo[] WorkerGetTabletsInfo() { return _penThreadWorker.WorkerGetTabletsInfo(); } ////// Critical - Calls SecurityCritical code PenThreadWorker.WorkerCreateContext. /// Called by PenThreadPool.WorkerCreateContext. /// TreatAsSafe boundry is Stylus.EnableCore and HwndWrapperHook class /// (via HwndSource.InputFilterMessage). /// [SecurityCritical] internal PenContextInfo WorkerCreateContext(IntPtr hwnd, IPimcTablet pimcTablet) { return _penThreadWorker.WorkerCreateContext(hwnd, pimcTablet); } ////// Critical - Calls SecurityCritical code PenThreadWorker.WorkerRefreshCursorInfo. /// Called by PenThreadPool.WorkerRefreshCursorInfo. /// [SecurityCritical] internal StylusDeviceInfo[] WorkerRefreshCursorInfo(IPimcTablet pimcTablet) { return _penThreadWorker.WorkerRefreshCursorInfo(pimcTablet); } ////// Critical - Calls SecurityCritical code PenThreadWorker.WorkerGetTabletInfo. /// Called by PenThreadPool.WorkerGetTabletInfo. /// [SecurityCritical] internal TabletDeviceInfo WorkerGetTabletInfo(uint index) { return _penThreadWorker.WorkerGetTabletInfo(index); } ////// Critical - Calls SecurityCritical code PenThreadWorker.WorkerGetUpdatedSizes. /// Called by PenThreadPool.WorkerGetUpdatedTabletRect. /// [SecurityCritical] internal TabletDeviceSizeInfo WorkerGetUpdatedSizes(IPimcTablet pimcTablet) { return _penThreadWorker.WorkerGetUpdatedSizes(pimcTablet); } } } // 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
- MsmqElementBase.cs
- CodeTypeDeclaration.cs
- CollectionView.cs
- CheckBoxFlatAdapter.cs
- CachedPathData.cs
- IxmlLineInfo.cs
- ImageEditor.cs
- BulletedListEventArgs.cs
- ApplicationActivator.cs
- HelloMessageApril2005.cs
- util.cs
- SoapEnumAttribute.cs
- SendDesigner.xaml.cs
- MediaContext.cs
- FieldNameLookup.cs
- SplineKeyFrames.cs
- XPathSingletonIterator.cs
- DesignerVerbCollection.cs
- BitmapFrameDecode.cs
- WebPartConnectionsCancelVerb.cs
- UriScheme.cs
- PageStatePersister.cs
- Executor.cs
- SafePointer.cs
- ReferenceService.cs
- FlowLayoutPanel.cs
- TextAction.cs
- TextReader.cs
- SmtpAuthenticationManager.cs
- DbParameterHelper.cs
- VBIdentifierName.cs
- CodeParameterDeclarationExpressionCollection.cs
- MouseGestureConverter.cs
- GregorianCalendarHelper.cs
- FlagsAttribute.cs
- ProgressBar.cs
- sqlpipe.cs
- DataServiceCollectionOfT.cs
- ConfigurationSchemaErrors.cs
- Int32Animation.cs
- updatecommandorderer.cs
- EndpointDiscoveryMetadataCD1.cs
- DescendantBaseQuery.cs
- DtdParser.cs
- RoutingTable.cs
- XsdDateTime.cs
- BreakSafeBase.cs
- StylusLogic.cs
- SignatureToken.cs
- LOSFormatter.cs
- MissingManifestResourceException.cs
- TableLayoutPanel.cs
- StringFreezingAttribute.cs
- InvokeMethodActivity.cs
- ListViewInsertionMark.cs
- CodeExpressionCollection.cs
- DataTemplate.cs
- ConfigUtil.cs
- CollectionViewProxy.cs
- HostedHttpRequestAsyncResult.cs
- LicenseManager.cs
- MediaCommands.cs
- BamlVersionHeader.cs
- DesignerEditorPartChrome.cs
- PagedDataSource.cs
- ActivityLocationReferenceEnvironment.cs
- AspNetHostingPermission.cs
- UriWriter.cs
- ComEventsMethod.cs
- SQLBytesStorage.cs
- DispatcherProcessingDisabled.cs
- Random.cs
- PersonalizationStateInfo.cs
- ElementMarkupObject.cs
- Annotation.cs
- AnyAllSearchOperator.cs
- InteropBitmapSource.cs
- EarlyBoundInfo.cs
- DocumentXmlWriter.cs
- relpropertyhelper.cs
- Native.cs
- HashJoinQueryOperatorEnumerator.cs
- TextTreeExtractElementUndoUnit.cs
- coordinatorscratchpad.cs
- DelimitedListTraceListener.cs
- WizardForm.cs
- SemanticValue.cs
- XmlTextReaderImpl.cs
- TTSEngineProxy.cs
- DetailsViewDeleteEventArgs.cs
- DashStyle.cs
- DataGridCell.cs
- FixedPageAutomationPeer.cs
- Hash.cs
- CompilerCollection.cs
- ASCIIEncoding.cs
- MsmqIntegrationBindingCollectionElement.cs
- QueryBranchOp.cs
- BuildResult.cs
- ReadWriteSpinLock.cs