Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / MS / Internal / Utilities.cs / 1305600 / Utilities.cs
/**************************************************************************\ Copyright Microsoft Corporation. All Rights Reserved. \**************************************************************************/ namespace MS.Internal { using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Security; using MS.Win32; ////// General utility class for macro-type functions. /// internal static class Utilities { private static readonly Version _osVersion = Environment.OSVersion.Version; internal static bool IsOSVistaOrNewer { get { return _osVersion >= new Version(6, 0); } } internal static bool IsOSWindows7OrNewer { get { return _osVersion >= new Version(6, 1); } } internal static bool IsCompositionEnabled { ////// Critical -- calls into an unsafe native method. /// TreatAsSafe -- the call to DwmIsCompositionEnabled simply returns a boolean /// through an out parameter, it is safe information to expose /// [SecurityCritical, SecurityTreatAsSafe] get { if (!IsOSVistaOrNewer) { return false; } Int32 isDesktopCompositionEnabled = 0; UnsafeNativeMethods.HRESULT.Check(UnsafeNativeMethods.DwmIsCompositionEnabled(out isDesktopCompositionEnabled)); return isDesktopCompositionEnabled != 0; } } internal static void SafeDispose(ref T disposable) where T : IDisposable { // Dispose can safely be called on an object multiple times. IDisposable t = disposable; disposable = default(T); if (null != t) { t.Dispose(); } } /// /// Critical - Suppresses unmanaged code security. Calls Marshal.ReleaseComObject which has a LinkDemand. /// [SuppressUnmanagedCodeSecurity, SecurityCritical] internal static void SafeRelease(ref T comObject) where T : class { T t = comObject; comObject = default(T); if (null != t) { Debug.Assert(Marshal.IsComObject(t)); Marshal.ReleaseComObject(t); } } } } // 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
- ClusterRegistryConfigurationProvider.cs
- DelayedRegex.cs
- Baml2006ReaderFrame.cs
- ListenerChannelContext.cs
- QilGenerator.cs
- XsdBuildProvider.cs
- MouseActionValueSerializer.cs
- ParameterBuilder.cs
- _LocalDataStoreMgr.cs
- IndexedString.cs
- WebPartHeaderCloseVerb.cs
- ClrProviderManifest.cs
- PeerToPeerException.cs
- Atom10FormatterFactory.cs
- Italic.cs
- MarkupCompilePass2.cs
- DataGridViewBand.cs
- SecurityAlgorithmSuite.cs
- CheckBoxRenderer.cs
- SizeIndependentAnimationStorage.cs
- FileRecordSequenceCompletedAsyncResult.cs
- ProviderIncompatibleException.cs
- ResolveNameEventArgs.cs
- TimeoutStream.cs
- ProxyWebPartManager.cs
- SByte.cs
- MembershipPasswordException.cs
- CompoundFileReference.cs
- ActivityDelegate.cs
- DrawingGroupDrawingContext.cs
- TextDecorationUnitValidation.cs
- CompModSwitches.cs
- ScrollChrome.cs
- DetailsViewPagerRow.cs
- XmlNotation.cs
- SHA256Managed.cs
- ApplicationServiceManager.cs
- BamlReader.cs
- GenericEnumerator.cs
- TextEffect.cs
- EditingCoordinator.cs
- CookielessHelper.cs
- Win32KeyboardDevice.cs
- OdbcUtils.cs
- TimeSpanConverter.cs
- SingleResultAttribute.cs
- EntityStoreSchemaGenerator.cs
- HMACSHA256.cs
- TableLayoutSettings.cs
- ListParagraph.cs
- OverflowException.cs
- DataDocumentXPathNavigator.cs
- DictionaryContent.cs
- ObjectKeyFrameCollection.cs
- DefaultParameterValueAttribute.cs
- IRCollection.cs
- InfoCardProofToken.cs
- MatrixCamera.cs
- SurrogateEncoder.cs
- WebCategoryAttribute.cs
- CLRBindingWorker.cs
- Dump.cs
- CellParagraph.cs
- RawStylusInput.cs
- PackageDigitalSignature.cs
- UnicodeEncoding.cs
- ConfigurationElement.cs
- RootProfilePropertySettingsCollection.cs
- TriggerAction.cs
- BitStack.cs
- CodeDomSerializationProvider.cs
- XmlElement.cs
- ObjectAnimationUsingKeyFrames.cs
- ParameterEditorUserControl.cs
- Condition.cs
- DbConnectionPoolGroupProviderInfo.cs
- AbsoluteQuery.cs
- XPathItem.cs
- ApplicationDirectory.cs
- PageRequestManager.cs
- RangeValuePattern.cs
- StorageMappingItemCollection.cs
- SecurityRuntime.cs
- ColumnHeaderConverter.cs
- DbParameterCollectionHelper.cs
- IndicShape.cs
- IncrementalReadDecoders.cs
- EntityContainerRelationshipSetEnd.cs
- SelectedGridItemChangedEvent.cs
- LocationInfo.cs
- MessageHeaderDescription.cs
- StreamFormatter.cs
- PlatformCulture.cs
- TabRenderer.cs
- ApplicationHost.cs
- PropertyPushdownHelper.cs
- CriticalHandle.cs
- TypographyProperties.cs
- ChangeBlockUndoRecord.cs
- Simplifier.cs