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
- HtmlShimManager.cs
- WriteableBitmap.cs
- PreviewPageInfo.cs
- WarningException.cs
- ErrorWebPart.cs
- DebugHandleTracker.cs
- IntAverageAggregationOperator.cs
- Decorator.cs
- KeyGestureConverter.cs
- HttpDictionary.cs
- UnSafeCharBuffer.cs
- RemotingServices.cs
- GridViewCommandEventArgs.cs
- AppSettingsReader.cs
- FixedTextBuilder.cs
- StringToken.cs
- ExpressionLexer.cs
- Collection.cs
- Int32CAMarshaler.cs
- MediaTimeline.cs
- XmlC14NWriter.cs
- WsdlInspector.cs
- ContentFilePart.cs
- safex509handles.cs
- AudienceUriMode.cs
- SerializerProvider.cs
- GridViewCommandEventArgs.cs
- SerializationEventsCache.cs
- HashHelper.cs
- ListViewCancelEventArgs.cs
- SQLByte.cs
- HelpExampleGenerator.cs
- ServerType.cs
- EmptyStringExpandableObjectConverter.cs
- typedescriptorpermission.cs
- ZipIOExtraFieldZip64Element.cs
- Types.cs
- BinaryUtilClasses.cs
- SafeFindHandle.cs
- ControlPropertyNameConverter.cs
- Material.cs
- DetailsViewModeEventArgs.cs
- BitmapFrameEncode.cs
- BitmapEffectDrawingContextWalker.cs
- ControlPaint.cs
- WebControlsSection.cs
- WebProxyScriptElement.cs
- DbConnectionPoolOptions.cs
- CriticalExceptions.cs
- WindowsAuthenticationModule.cs
- GatewayDefinition.cs
- WindowsListViewItem.cs
- BaseDataBoundControl.cs
- CodeMemberEvent.cs
- BulletDecorator.cs
- RoleGroupCollection.cs
- CachedBitmap.cs
- FilePrompt.cs
- SortedSet.cs
- CombinedGeometry.cs
- XmlParserContext.cs
- UserNameServiceElement.cs
- RichTextBoxDesigner.cs
- PeerHopCountAttribute.cs
- DocumentPageView.cs
- ParseNumbers.cs
- RequestTimeoutManager.cs
- XmlSchemaType.cs
- SqlStream.cs
- TdsParser.cs
- RunWorkerCompletedEventArgs.cs
- PeerNameRegistration.cs
- ContentTypeSettingDispatchMessageFormatter.cs
- HtmlInputButton.cs
- MatrixStack.cs
- CodeMethodReturnStatement.cs
- AssemblyUtil.cs
- TypeConverterHelper.cs
- HybridDictionary.cs
- TextElementEnumerator.cs
- FtpWebResponse.cs
- MessageBox.cs
- DataGridViewRowCancelEventArgs.cs
- FullTextBreakpoint.cs
- UInt32Converter.cs
- hwndwrapper.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- Behavior.cs
- DocumentEventArgs.cs
- ArgumentException.cs
- RTLAwareMessageBox.cs
- Header.cs
- SettingsSavedEventArgs.cs
- SecurityKeyEntropyMode.cs
- DispatcherTimer.cs
- WebPartZone.cs
- QilInvokeLateBound.cs
- BaseTemplateParser.cs
- AttachmentService.cs
- Boolean.cs