Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Shared / MS / Win32 / SafeSystemMetrics.cs / 1305600 / SafeSystemMetrics.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2004 // // File: SafeSystemMetrics.cs // This class is copied from the system metrics class in frameworks. The // reason it exists is to consolidate all system metric calls through one layer // so that maintenance from a security stand point gets easier. We will add // mertrics on a need basis. The caching code is removed since the original calls // that were moved here do not rely on caching. If there is a percieved perf. problem // we can work on enabling this. //----------------------------------------------------------------------------- using System; using System.Collections; using System.Runtime.InteropServices; using System.Windows.Media; using Microsoft.Win32; using System.Security; using System.Security.Permissions; using MS.Win32; using MS.Internal; using MS.Internal.Interop; using MS.Internal.PresentationCore; namespace MS.Win32 { ////// Contains properties that are queries into the system's various settings. /// [FriendAccessAllowed] // Built into Core, also used by Framework. internal sealed class SafeSystemMetrics { private SafeSystemMetrics() { } #if !PRESENTATION_CORE ////// Maps to SM_CXVIRTUALSCREEN /// ////// TreatAsSafe --There exists a demand /// Security Critical -- Calling UnsafeNativeMethods /// internal static int VirtualScreenWidth { [SecurityCritical,SecurityTreatAsSafe] get { SecurityHelper.DemandUnmanagedCode(); return UnsafeNativeMethods.GetSystemMetrics(SM.CXVIRTUALSCREEN); } } ////// Maps to SM_CYVIRTUALSCREEN /// ////// TreatAsSafe --There exists a demand /// Security Critical -- Calling UnsafeNativeMethods /// internal static int VirtualScreenHeight { [SecurityCritical,SecurityTreatAsSafe] get { SecurityHelper.DemandUnmanagedCode(); return UnsafeNativeMethods.GetSystemMetrics(SM.CYVIRTUALSCREEN); } } #endif //end !PRESENTATIONCORE ////// Maps to SM_CXDOUBLECLK /// ////// TreatAsSafe --This data is safe to expose /// Security Critical -- Calling UnsafeNativeMethods /// internal static int DoubleClickDeltaX { [SecurityCritical, SecurityTreatAsSafe] get { return UnsafeNativeMethods.GetSystemMetrics(SM.CXDOUBLECLK); } } ////// Maps to SM_CYDOUBLECLK /// ////// TreatAsSafe --This data is safe to expose /// Security Critical -- Calling UnsafeNativeMethods /// internal static int DoubleClickDeltaY { [SecurityCritical, SecurityTreatAsSafe] get { return UnsafeNativeMethods.GetSystemMetrics(SM.CYDOUBLECLK); } } ////// Maps to SM_CXDRAG /// ////// TreatAsSafe --This data is safe to expose /// Security Critical -- Calling UnsafeNativeMethods /// internal static int DragDeltaX { [SecurityCritical, SecurityTreatAsSafe] get { return UnsafeNativeMethods.GetSystemMetrics(SM.CXDRAG); } } ////// Maps to SM_CYDRAG /// ////// TreatAsSafe --This data is safe to expose /// Security Critical -- Calling UnsafeNativeMethods /// internal static int DragDeltaY { [SecurityCritical, SecurityTreatAsSafe] get { return UnsafeNativeMethods.GetSystemMetrics(SM.CYDRAG); } } ////// Is an IMM enabled ? Maps to SM_IMMENABLED /// //////Critical - calls a method that performs an elevation. /// TreatAsSafe - data is considered safe to expose. /// internal static bool IsImmEnabled { [SecurityCritical, SecurityTreatAsSafe] get { return (UnsafeNativeMethods.GetSystemMetrics(SM.IMMENABLED) != 0); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2004 // // File: SafeSystemMetrics.cs // This class is copied from the system metrics class in frameworks. The // reason it exists is to consolidate all system metric calls through one layer // so that maintenance from a security stand point gets easier. We will add // mertrics on a need basis. The caching code is removed since the original calls // that were moved here do not rely on caching. If there is a percieved perf. problem // we can work on enabling this. //----------------------------------------------------------------------------- using System; using System.Collections; using System.Runtime.InteropServices; using System.Windows.Media; using Microsoft.Win32; using System.Security; using System.Security.Permissions; using MS.Win32; using MS.Internal; using MS.Internal.Interop; using MS.Internal.PresentationCore; namespace MS.Win32 { ////// Contains properties that are queries into the system's various settings. /// [FriendAccessAllowed] // Built into Core, also used by Framework. internal sealed class SafeSystemMetrics { private SafeSystemMetrics() { } #if !PRESENTATION_CORE ////// Maps to SM_CXVIRTUALSCREEN /// ////// TreatAsSafe --There exists a demand /// Security Critical -- Calling UnsafeNativeMethods /// internal static int VirtualScreenWidth { [SecurityCritical,SecurityTreatAsSafe] get { SecurityHelper.DemandUnmanagedCode(); return UnsafeNativeMethods.GetSystemMetrics(SM.CXVIRTUALSCREEN); } } ////// Maps to SM_CYVIRTUALSCREEN /// ////// TreatAsSafe --There exists a demand /// Security Critical -- Calling UnsafeNativeMethods /// internal static int VirtualScreenHeight { [SecurityCritical,SecurityTreatAsSafe] get { SecurityHelper.DemandUnmanagedCode(); return UnsafeNativeMethods.GetSystemMetrics(SM.CYVIRTUALSCREEN); } } #endif //end !PRESENTATIONCORE ////// Maps to SM_CXDOUBLECLK /// ////// TreatAsSafe --This data is safe to expose /// Security Critical -- Calling UnsafeNativeMethods /// internal static int DoubleClickDeltaX { [SecurityCritical, SecurityTreatAsSafe] get { return UnsafeNativeMethods.GetSystemMetrics(SM.CXDOUBLECLK); } } ////// Maps to SM_CYDOUBLECLK /// ////// TreatAsSafe --This data is safe to expose /// Security Critical -- Calling UnsafeNativeMethods /// internal static int DoubleClickDeltaY { [SecurityCritical, SecurityTreatAsSafe] get { return UnsafeNativeMethods.GetSystemMetrics(SM.CYDOUBLECLK); } } ////// Maps to SM_CXDRAG /// ////// TreatAsSafe --This data is safe to expose /// Security Critical -- Calling UnsafeNativeMethods /// internal static int DragDeltaX { [SecurityCritical, SecurityTreatAsSafe] get { return UnsafeNativeMethods.GetSystemMetrics(SM.CXDRAG); } } ////// Maps to SM_CYDRAG /// ////// TreatAsSafe --This data is safe to expose /// Security Critical -- Calling UnsafeNativeMethods /// internal static int DragDeltaY { [SecurityCritical, SecurityTreatAsSafe] get { return UnsafeNativeMethods.GetSystemMetrics(SM.CYDRAG); } } ////// Is an IMM enabled ? Maps to SM_IMMENABLED /// //////Critical - calls a method that performs an elevation. /// TreatAsSafe - data is considered safe to expose. /// internal static bool IsImmEnabled { [SecurityCritical, SecurityTreatAsSafe] get { return (UnsafeNativeMethods.GetSystemMetrics(SM.IMMENABLED) != 0); } } } } // 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
- OleDbParameterCollection.cs
- CoreSwitches.cs
- SqlGatherConsumedAliases.cs
- HtmlSelect.cs
- ViewBox.cs
- InternalConfigSettingsFactory.cs
- MailBnfHelper.cs
- WmpBitmapDecoder.cs
- CheckableControlBaseAdapter.cs
- CompilerError.cs
- EnvironmentPermission.cs
- NavigationWindowAutomationPeer.cs
- SecurityElement.cs
- PcmConverter.cs
- Color.cs
- ReadWriteSpinLock.cs
- DrawingContextWalker.cs
- ToolStripManager.cs
- PathSegmentCollection.cs
- PersonalizationProviderHelper.cs
- WebPartConnectionsCancelEventArgs.cs
- DocumentSequence.cs
- ContentType.cs
- ConfigurationManagerInternal.cs
- documentsequencetextcontainer.cs
- BasicHttpBindingElement.cs
- HttpCookiesSection.cs
- DesignerHost.cs
- DispatcherHookEventArgs.cs
- WebBrowsableAttribute.cs
- Message.cs
- ListItem.cs
- StringResourceManager.cs
- ServiceDescriptions.cs
- IdentityReference.cs
- ClientData.cs
- ValidationPropertyAttribute.cs
- DependencyPropertyKind.cs
- MemberHolder.cs
- DocumentViewer.cs
- MSAAEventDispatcher.cs
- XmlDomTextWriter.cs
- ConnectionPoint.cs
- WindowsRichEdit.cs
- PageRanges.cs
- COM2EnumConverter.cs
- DecimalAnimationUsingKeyFrames.cs
- GZipDecoder.cs
- LinkedResource.cs
- SQLSingle.cs
- SpotLight.cs
- AutoGeneratedField.cs
- HtmlInputPassword.cs
- AutomationElement.cs
- FixedSOMLineRanges.cs
- TabControlAutomationPeer.cs
- EventLogInformation.cs
- MethodAccessException.cs
- XPathDocument.cs
- PointAnimationUsingKeyFrames.cs
- MemoryMappedFile.cs
- DynamicValidatorEventArgs.cs
- OracleCommandSet.cs
- DataGridViewRowPostPaintEventArgs.cs
- StatusBarItemAutomationPeer.cs
- ShaderEffect.cs
- Assert.cs
- DataGridLinkButton.cs
- WindowsListViewItemCheckBox.cs
- HtmlShim.cs
- IxmlLineInfo.cs
- MouseGesture.cs
- TextElement.cs
- HttpServerVarsCollection.cs
- DataSourceXmlSubItemAttribute.cs
- GridViewColumnHeaderAutomationPeer.cs
- ParseChildrenAsPropertiesAttribute.cs
- ObjectViewQueryResultData.cs
- PublisherIdentityPermission.cs
- ZoneLinkButton.cs
- Scene3D.cs
- TableLayout.cs
- BindingBase.cs
- ApplicationException.cs
- OleDbConnectionInternal.cs
- ToolStripLabel.cs
- WindowsContainer.cs
- KeyedCollection.cs
- SHA1CryptoServiceProvider.cs
- QueryIntervalOp.cs
- SerTrace.cs
- SqlUtils.cs
- StdValidatorsAndConverters.cs
- TableHeaderCell.cs
- SystemFonts.cs
- WindowsAuthenticationModule.cs
- MdiWindowListItemConverter.cs
- DocumentPage.cs
- ReturnValue.cs
- RequestReplyCorrelator.cs