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
- SmuggledIUnknown.cs
- TraceContextRecord.cs
- XMLSyntaxException.cs
- ApplicationHost.cs
- Tokenizer.cs
- ReadOnlyMetadataCollection.cs
- StatementContext.cs
- KeyTime.cs
- SwitchLevelAttribute.cs
- Executor.cs
- ConnectionStringSettingsCollection.cs
- PropertyIDSet.cs
- AnnotationResourceChangedEventArgs.cs
- ByteStack.cs
- ReliabilityContractAttribute.cs
- StatusBarItem.cs
- LinkArea.cs
- DiscoveryCallbackBehavior.cs
- SizeAnimationClockResource.cs
- BitmapEncoder.cs
- TextEncodedRawTextWriter.cs
- XmlName.cs
- MetadataFile.cs
- RegistrationServices.cs
- ResizeGrip.cs
- DebugView.cs
- ColumnMap.cs
- XNodeValidator.cs
- ActiveDocumentEvent.cs
- TextParentUndoUnit.cs
- Nullable.cs
- GridViewColumnHeaderAutomationPeer.cs
- MatrixCamera.cs
- tabpagecollectioneditor.cs
- PropertyBuilder.cs
- TypeForwardedToAttribute.cs
- ErrorTableItemStyle.cs
- ReferenceEqualityComparer.cs
- SqlTypesSchemaImporter.cs
- SqlErrorCollection.cs
- ZipIOExtraField.cs
- CodeExporter.cs
- DrawingGroup.cs
- GradientSpreadMethodValidation.cs
- QilList.cs
- ObjectViewFactory.cs
- HybridWebProxyFinder.cs
- CreateParams.cs
- RadioButtonAutomationPeer.cs
- JapaneseLunisolarCalendar.cs
- SystemIcmpV4Statistics.cs
- OracleBinary.cs
- SqlDataReaderSmi.cs
- ThreadInterruptedException.cs
- CompressionTransform.cs
- XmlElementList.cs
- ImageSourceTypeConverter.cs
- PipelineModuleStepContainer.cs
- FileLevelControlBuilderAttribute.cs
- ParserContext.cs
- DataGridViewImageColumn.cs
- BaseAsyncResult.cs
- ProtocolsSection.cs
- SamlDoNotCacheCondition.cs
- AsymmetricSecurityBindingElement.cs
- ScriptControlDescriptor.cs
- MatrixTransform.cs
- SolidBrush.cs
- DurableInstancingOptions.cs
- AsymmetricAlgorithm.cs
- MenuItemBindingCollection.cs
- DataGridViewCellCollection.cs
- PropertyValueChangedEvent.cs
- WebOperationContext.cs
- DataGridItemEventArgs.cs
- SHA384.cs
- RtfFormatStack.cs
- Gdiplus.cs
- IpcClientChannel.cs
- CornerRadiusConverter.cs
- QuadraticBezierSegment.cs
- TextDocumentView.cs
- ProfileServiceManager.cs
- WindowAutomationPeer.cs
- RequestCacheEntry.cs
- DataGridColumn.cs
- DbConnectionPool.cs
- DataBindingValueUIHandler.cs
- DBSqlParserColumnCollection.cs
- ExpressionStringBuilder.cs
- UnsignedPublishLicense.cs
- EntityProviderFactory.cs
- NamedObject.cs
- UnmanagedHandle.cs
- AuthenticationConfig.cs
- RefType.cs
- AuthenticationModuleElement.cs
- ImportContext.cs
- StructuralCache.cs
- DataGridViewColumnCollection.cs