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
- EventWaitHandleSecurity.cs
- TextSegment.cs
- ProxyWebPartManager.cs
- ProgressiveCrcCalculatingStream.cs
- ReflectionServiceProvider.cs
- SuppressMessageAttribute.cs
- TablePatternIdentifiers.cs
- PrintDocument.cs
- UnregisterInfo.cs
- ReverseQueryOperator.cs
- DesignerCategoryAttribute.cs
- StackSpiller.Bindings.cs
- MimeAnyImporter.cs
- ColorMap.cs
- XmlMapping.cs
- DBAsyncResult.cs
- FlowDocument.cs
- EllipticalNodeOperations.cs
- TextElement.cs
- HttpRequest.cs
- NavigationProgressEventArgs.cs
- FlatButtonAppearance.cs
- MenuStrip.cs
- ProcessManager.cs
- UseAttributeSetsAction.cs
- NetTcpBindingCollectionElement.cs
- VisualBasicValue.cs
- _KerberosClient.cs
- TypeLoadException.cs
- XmlText.cs
- CanonicalFontFamilyReference.cs
- SrgsDocumentParser.cs
- WindowsGraphics.cs
- DataControlFieldCollection.cs
- RegularExpressionValidator.cs
- RoutedEventConverter.cs
- Stacktrace.cs
- WindowCollection.cs
- DataFormat.cs
- DecimalStorage.cs
- ElementProxy.cs
- ToolStripItem.cs
- XPathAncestorIterator.cs
- Accessible.cs
- MenuItemCollection.cs
- ToolStripDropDownMenu.cs
- PermissionAttributes.cs
- Model3D.cs
- ValidationHelper.cs
- ExplicitDiscriminatorMap.cs
- TypeElement.cs
- InkCanvasInnerCanvas.cs
- TextEditorTyping.cs
- DescendantBaseQuery.cs
- PageThemeParser.cs
- Certificate.cs
- InvalidDocumentContentsException.cs
- DbParameterCollection.cs
- EndpointAddressProcessor.cs
- DBAsyncResult.cs
- ResourceExpression.cs
- ConfigXmlWhitespace.cs
- TraceUtility.cs
- OracleEncoding.cs
- LineVisual.cs
- CodeDOMUtility.cs
- QuestionEventArgs.cs
- BaseAsyncResult.cs
- ArrayConverter.cs
- TaskFormBase.cs
- TextTrailingCharacterEllipsis.cs
- Attachment.cs
- MimeParameters.cs
- SolidColorBrush.cs
- SelectionList.cs
- CapiSafeHandles.cs
- Roles.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- SqlTriggerAttribute.cs
- ActionMismatchAddressingException.cs
- ValidationPropertyAttribute.cs
- DirectoryInfo.cs
- WorkItem.cs
- PictureBox.cs
- DbExpressionRules.cs
- MarkupCompilePass1.cs
- NodeFunctions.cs
- HtmlInputReset.cs
- BasicHttpMessageSecurityElement.cs
- DesignerForm.cs
- XmlValueConverter.cs
- DataServiceKeyAttribute.cs
- MediaTimeline.cs
- SafeNativeMethods.cs
- XPathException.cs
- TogglePattern.cs
- ListItemConverter.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- InvokeProviderWrapper.cs
- HMACSHA384.cs