Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataTableNewRowEvent.cs
- UpWmlPageAdapter.cs
- PlanCompiler.cs
- DataAdapter.cs
- FontStyleConverter.cs
- CaseStatementSlot.cs
- _AuthenticationState.cs
- DataControlCommands.cs
- TextChange.cs
- UInt64.cs
- DiscoveryRequestHandler.cs
- Error.cs
- DynamicField.cs
- HttpModuleCollection.cs
- BamlVersionHeader.cs
- RequestResizeEvent.cs
- ComboBoxAutomationPeer.cs
- GetPageNumberCompletedEventArgs.cs
- PropertyMap.cs
- securitycriticaldataformultiplegetandset.cs
- MessageBox.cs
- ObjectDataSourceWizardForm.cs
- TargetParameterCountException.cs
- SqlTrackingQuery.cs
- Border.cs
- ContextProperty.cs
- XamlVector3DCollectionSerializer.cs
- ClientEventManager.cs
- FileDialogCustomPlace.cs
- ConfigXmlText.cs
- TraceContextEventArgs.cs
- ModifierKeysConverter.cs
- PaperSize.cs
- SchemaManager.cs
- GiveFeedbackEvent.cs
- EntityTypeEmitter.cs
- EmptyReadOnlyDictionaryInternal.cs
- FullTextBreakpoint.cs
- XmlnsCache.cs
- XmlC14NWriter.cs
- UniqueIdentifierService.cs
- ObjectDataSourceView.cs
- PKCS1MaskGenerationMethod.cs
- CriticalHandle.cs
- XmlCharacterData.cs
- followingquery.cs
- DataObjectPastingEventArgs.cs
- HeaderedItemsControl.cs
- Transform.cs
- BitmapScalingModeValidation.cs
- XPathAncestorIterator.cs
- SamlAdvice.cs
- ColorContext.cs
- ModelTreeEnumerator.cs
- ITextView.cs
- RepeatInfo.cs
- LoginNameDesigner.cs
- FirewallWrapper.cs
- ExpandSegment.cs
- StateMachineExecutionState.cs
- ExpressionQuoter.cs
- Style.cs
- CodeSubDirectoriesCollection.cs
- TextEffect.cs
- DebugInfoExpression.cs
- Command.cs
- AdapterDictionary.cs
- HttpHeaderCollection.cs
- PathGeometry.cs
- LoginView.cs
- DataGridViewSortCompareEventArgs.cs
- SRef.cs
- ApplicationHost.cs
- DataListItemCollection.cs
- SmiRecordBuffer.cs
- HostedTcpTransportManager.cs
- PrimitiveSchema.cs
- ScalarType.cs
- NameValueSectionHandler.cs
- ValidationManager.cs
- HelpKeywordAttribute.cs
- ParentUndoUnit.cs
- PaintValueEventArgs.cs
- SeekStoryboard.cs
- CapabilitiesState.cs
- NotificationContext.cs
- CustomActivityDesigner.cs
- DesignerOptionService.cs
- SQLInt32Storage.cs
- EventRouteFactory.cs
- QueueProcessor.cs
- OleDbReferenceCollection.cs
- _BaseOverlappedAsyncResult.cs
- ListView.cs
- X500Name.cs
- XmlIncludeAttribute.cs
- PrintDialog.cs
- CalendarAutoFormat.cs
- XsltException.cs
- DebugView.cs