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
- GenericPrincipal.cs
- StatusBar.cs
- ProjectionPlan.cs
- ExpressionReplacer.cs
- DropShadowBitmapEffect.cs
- Completion.cs
- BitmapEffectOutputConnector.cs
- HashAlgorithm.cs
- MailMessageEventArgs.cs
- BamlStream.cs
- StyleXamlTreeBuilder.cs
- ValidationSummary.cs
- HttpWebRequest.cs
- SizeConverter.cs
- StorageModelBuildProvider.cs
- DesignerAttribute.cs
- PenContext.cs
- CodeIterationStatement.cs
- WindowsMenu.cs
- EventMap.cs
- OneOfScalarConst.cs
- WSHttpSecurityElement.cs
- ScaleTransform3D.cs
- PhysicalOps.cs
- SafeMemoryMappedViewHandle.cs
- TextReader.cs
- DeclarativeCatalogPart.cs
- EventInfo.cs
- IRCollection.cs
- Activity.cs
- ServiceX509SecurityTokenProvider.cs
- GcHandle.cs
- SingleAnimationBase.cs
- X509Utils.cs
- GridViewColumnHeaderAutomationPeer.cs
- CollectionEditor.cs
- RegexCompilationInfo.cs
- CompensationToken.cs
- assemblycache.cs
- TypeUtils.cs
- MimeMapping.cs
- BuildProviderCollection.cs
- NameTable.cs
- CustomPopupPlacement.cs
- DesignConnection.cs
- DataIdProcessor.cs
- CodeDOMUtility.cs
- DataControlFieldCollection.cs
- Set.cs
- DefaultEventAttribute.cs
- HtmlControlPersistable.cs
- PropertyPath.cs
- BufferBuilder.cs
- BitmapCodecInfoInternal.cs
- CodeExpressionRuleDeclaration.cs
- TextTreeUndo.cs
- RangeContentEnumerator.cs
- SafeEventLogReadHandle.cs
- RadioButtonAutomationPeer.cs
- _NegoStream.cs
- AttachedPropertyInfo.cs
- FixedSOMLineCollection.cs
- fixedPageContentExtractor.cs
- DataBinder.cs
- ThemeableAttribute.cs
- UserMapPath.cs
- WebServiceErrorEvent.cs
- BitmapCacheBrush.cs
- TreeViewAutomationPeer.cs
- HostingEnvironmentWrapper.cs
- XsltLibrary.cs
- HttpCachePolicyElement.cs
- DynamicRenderer.cs
- TranslateTransform3D.cs
- TextEffect.cs
- RecipientInfo.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- Comparer.cs
- NamespaceEmitter.cs
- ResXResourceWriter.cs
- ResourcePermissionBaseEntry.cs
- MediaPlayerState.cs
- SqlProcedureAttribute.cs
- OutputCacheModule.cs
- StateRuntime.cs
- Error.cs
- DataColumnChangeEvent.cs
- RangeValidator.cs
- DataContractSerializerOperationGenerator.cs
- ManipulationDevice.cs
- ErrorView.xaml.cs
- RSAPKCS1SignatureDeformatter.cs
- WebPartConnectionsConfigureVerb.cs
- ObjectSecurity.cs
- IDataContractSurrogate.cs
- XmlSchemaComplexContentExtension.cs
- SqlInternalConnectionSmi.cs
- XmlAggregates.cs
- DynamicEndpointElement.cs
- _AutoWebProxyScriptHelper.cs