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
- SqlError.cs
- ComponentEditorPage.cs
- CodeGotoStatement.cs
- _IPv6Address.cs
- FrameworkContentElement.cs
- InspectionWorker.cs
- XmlObjectSerializerWriteContext.cs
- InvocationExpression.cs
- XmlSchemaSimpleTypeList.cs
- Point.cs
- ParallelLoopState.cs
- Preprocessor.cs
- ManualResetEvent.cs
- FillRuleValidation.cs
- EncodingNLS.cs
- ProfileManager.cs
- PrimitiveList.cs
- UpdateManifestForBrowserApplication.cs
- ArgumentValue.cs
- PropertyGeneratedEventArgs.cs
- XmlCharCheckingWriter.cs
- BaseProcessor.cs
- XmlElement.cs
- HostingPreferredMapPath.cs
- coordinatorscratchpad.cs
- WebZone.cs
- ExpressionTextBox.xaml.cs
- Panel.cs
- ProxyWebPartManager.cs
- SkipQueryOptionExpression.cs
- ResXResourceSet.cs
- EditorZone.cs
- DetailsViewModeEventArgs.cs
- MaterialGroup.cs
- _HeaderInfo.cs
- ImageAutomationPeer.cs
- TextAnchor.cs
- ConcatQueryOperator.cs
- XamlSerializerUtil.cs
- SqlBulkCopyColumnMapping.cs
- ContainerUIElement3D.cs
- OptimalBreakSession.cs
- StyleTypedPropertyAttribute.cs
- fixedPageContentExtractor.cs
- DataTableTypeConverter.cs
- MenuItem.cs
- BuildProviderUtils.cs
- DecoderBestFitFallback.cs
- SoundPlayer.cs
- Action.cs
- ManagementClass.cs
- QueryStatement.cs
- CqlErrorHelper.cs
- SignatureHelper.cs
- DefaultHttpHandler.cs
- HtmlElementCollection.cs
- HierarchicalDataBoundControlAdapter.cs
- XmlNullResolver.cs
- ListControlStringCollectionEditor.cs
- CheckBox.cs
- HMACRIPEMD160.cs
- Calendar.cs
- panel.cs
- PowerStatus.cs
- UnsafeNativeMethods.cs
- DataViewListener.cs
- RequestBringIntoViewEventArgs.cs
- XmlNode.cs
- AppLevelCompilationSectionCache.cs
- SqlDelegatedTransaction.cs
- InternalConfigHost.cs
- MSHTMLHost.cs
- ContentPlaceHolder.cs
- CanonicalXml.cs
- PhysicalFontFamily.cs
- ClientRolePrincipal.cs
- StreamWriter.cs
- ToolStripOverflowButton.cs
- XmlArrayAttribute.cs
- NameValueSectionHandler.cs
- thaishape.cs
- StorageComplexTypeMapping.cs
- EpmTargetTree.cs
- GeneralTransformGroup.cs
- Accessible.cs
- BasicViewGenerator.cs
- EditCommandColumn.cs
- KeyedHashAlgorithm.cs
- MessageQueueInstaller.cs
- Timer.cs
- GridLengthConverter.cs
- SQLInt64.cs
- BitmapSizeOptions.cs
- CheckBoxStandardAdapter.cs
- DeviceOverridableAttribute.cs
- StringAnimationBase.cs
- Table.cs
- CellTreeNodeVisitors.cs
- DirectoryInfo.cs
- BlockCollection.cs