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
- GenericAuthenticationEventArgs.cs
- XLinq.cs
- BoundConstants.cs
- ProtectedProviderSettings.cs
- OleDbParameterCollection.cs
- XmlNode.cs
- SafeRightsManagementQueryHandle.cs
- EventListenerClientSide.cs
- ColumnMapProcessor.cs
- BindingCompleteEventArgs.cs
- RichTextBoxConstants.cs
- RunWorkerCompletedEventArgs.cs
- WebPartEditorCancelVerb.cs
- FixedDocumentPaginator.cs
- ServiceHttpModule.cs
- DynamicValueConverter.cs
- PathFigure.cs
- CodeSpit.cs
- PlainXmlDeserializer.cs
- SqlError.cs
- PageSetupDialog.cs
- AppDomainShutdownMonitor.cs
- FlowStep.cs
- ProcessExitedException.cs
- CultureTableRecord.cs
- OptimalBreakSession.cs
- DBConnectionString.cs
- MexHttpsBindingElement.cs
- SiteMapNodeCollection.cs
- QuaternionAnimationBase.cs
- GeneralTransform.cs
- URLIdentityPermission.cs
- ListViewUpdatedEventArgs.cs
- XmlLoader.cs
- CatalogPart.cs
- CustomCredentialPolicy.cs
- StandardOleMarshalObject.cs
- Formatter.cs
- ExpressionBuilderCollection.cs
- InvocationExpression.cs
- PermissionSetTriple.cs
- SessionSymmetricMessageSecurityProtocolFactory.cs
- Root.cs
- LoginCancelEventArgs.cs
- ComPlusTraceRecord.cs
- Bold.cs
- ReadOnlyCollectionBase.cs
- FrameworkTextComposition.cs
- UIntPtr.cs
- WebPartTransformerCollection.cs
- PagesSection.cs
- KeyedCollection.cs
- ToolBarPanel.cs
- IPPacketInformation.cs
- SimpleMailWebEventProvider.cs
- COM2EnumConverter.cs
- Polygon.cs
- FixedStringLookup.cs
- MsmqIntegrationBindingElement.cs
- UriExt.cs
- SoapIgnoreAttribute.cs
- ExpressionCopier.cs
- DefaultHttpHandler.cs
- TableItemStyle.cs
- HyperlinkAutomationPeer.cs
- ContractMethodParameterInfo.cs
- AccessorTable.cs
- SamlAuthorizationDecisionStatement.cs
- KoreanLunisolarCalendar.cs
- AlternationConverter.cs
- WorkflowApplicationAbortedEventArgs.cs
- X509Utils.cs
- TextBoxLine.cs
- ActivatableWorkflowsQueryResult.cs
- XmlCollation.cs
- DbProviderFactoriesConfigurationHandler.cs
- ObjectDataSource.cs
- CfgParser.cs
- RolePrincipal.cs
- TaskbarItemInfo.cs
- XPathDocumentBuilder.cs
- BitmapEffectInputConnector.cs
- TextWriterTraceListener.cs
- VScrollBar.cs
- LayoutExceptionEventArgs.cs
- TranslateTransform3D.cs
- SeekableMessageNavigator.cs
- LineGeometry.cs
- ProfileSettingsCollection.cs
- HtmlInputHidden.cs
- MailDefinitionBodyFileNameEditor.cs
- QualifiedCellIdBoolean.cs
- FileRegion.cs
- DllNotFoundException.cs
- WindowProviderWrapper.cs
- Transform.cs
- HtmlValidationSummaryAdapter.cs
- FrameSecurityDescriptor.cs
- OdbcCommandBuilder.cs
- ConfigsHelper.cs