Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Shared / MS / Win32 / SafeSystemMetrics.cs / 1 / 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.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(NativeMethods.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(NativeMethods.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(NativeMethods.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(NativeMethods.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(NativeMethods.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(NativeMethods.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(NativeMethods.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.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(NativeMethods.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(NativeMethods.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(NativeMethods.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(NativeMethods.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(NativeMethods.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(NativeMethods.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(NativeMethods.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
- ZoneButton.cs
- TextStore.cs
- HasCopySemanticsAttribute.cs
- EventData.cs
- DocumentApplicationJournalEntryEventArgs.cs
- GifBitmapEncoder.cs
- SessionStateUtil.cs
- NumericExpr.cs
- DataControlPagerLinkButton.cs
- ErrorInfoXmlDocument.cs
- XMLSchema.cs
- EventHandlerList.cs
- Setter.cs
- Typography.cs
- DesignerObjectListAdapter.cs
- WorkflowRuntimeServiceElementCollection.cs
- HitTestWithPointDrawingContextWalker.cs
- IdentityValidationException.cs
- PointAnimationUsingPath.cs
- HttpProfileBase.cs
- ImportCatalogPart.cs
- ChannelPoolSettingsElement.cs
- SignatureGenerator.cs
- FormViewAutoFormat.cs
- RegexCompiler.cs
- Throw.cs
- AuthStoreRoleProvider.cs
- WindowInteractionStateTracker.cs
- RegexStringValidatorAttribute.cs
- ByteStack.cs
- ReadOnlyCollectionBase.cs
- ManagementObjectCollection.cs
- JoinTreeNode.cs
- LocationSectionRecord.cs
- CodeTypeMemberCollection.cs
- ToolStripItemCollection.cs
- TextRenderer.cs
- PropertyIDSet.cs
- LabelDesigner.cs
- FormatSelectingMessageInspector.cs
- Polyline.cs
- ConnectionStringSettings.cs
- CompilationUtil.cs
- TailPinnedEventArgs.cs
- UnregisterInfo.cs
- ProviderBase.cs
- GrammarBuilderWildcard.cs
- FileResponseElement.cs
- PropertiesTab.cs
- Update.cs
- UIPermission.cs
- TransformedBitmap.cs
- GeneralTransform3DCollection.cs
- HtmlInputPassword.cs
- OracleParameterBinding.cs
- ScriptControlManager.cs
- CapabilitiesUse.cs
- HttpCookie.cs
- Italic.cs
- MultiAsyncResult.cs
- BamlTreeMap.cs
- PackWebRequestFactory.cs
- UIElementHelper.cs
- XmlCollation.cs
- DesignerSerializerAttribute.cs
- DataControlExtensions.cs
- Rules.cs
- DTCTransactionManager.cs
- XmlText.cs
- Native.cs
- DataBoundControlAdapter.cs
- DescriptionAttribute.cs
- CodeValidator.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- RequestStatusBarUpdateEventArgs.cs
- CornerRadius.cs
- ProtocolElement.cs
- TrackingStringDictionary.cs
- NotFiniteNumberException.cs
- PersistChildrenAttribute.cs
- WebPartEditorApplyVerb.cs
- Hyperlink.cs
- SpellerError.cs
- figurelengthconverter.cs
- CqlParser.cs
- AspProxy.cs
- MultiByteCodec.cs
- MappingSource.cs
- InstanceDataCollection.cs
- WebPartHeaderCloseVerb.cs
- StateBag.cs
- BehaviorEditorPart.cs
- AttributeTableBuilder.cs
- StartUpEventArgs.cs
- TransformCollection.cs
- Matrix3D.cs
- ToolStripRenderer.cs
- DictionaryManager.cs
- SlotInfo.cs
- Serializer.cs