File: Shared\MS\Internal\SafeSecurityHelperAvalon.cs
Project: wpf\src\PresentationCore.csproj (PresentationCore)
/***************************************************************************\
*
* File: SafeSecurityHelper.cs
*
* Purpose:  Helper functions for avalon code that require elevation but are safe to use.
*                
* History:
*    12/09/04:    marka Created
*
* Copyright (C) 2004 by Microsoft Corporation.  All rights reserved.
*
\***************************************************************************/
 
using System;
using System.Globalization;
using System.Security;
using System.Security.Permissions;
using System.Reflection;
using System.Windows.Media ; 
using System.Windows; 
 
//****************
//
// this class is for helpers that require avalon.
// done this way so that Compiler doesn't build this file to minimize dependencies compiler has. 
//
//****************
 
#if WINDOWS_BASE
namespace MS.Internal.WindowsBase
#elif PRESENTATION_CORE
namespace MS.Internal.PresentationCore
#elif PRESENTATIONFRAMEWORK
namespace MS.Internal.PresentationFramework
#elif DRT
namespace MS.Internal.Drt
#else
#error Attempting to use this class from an unknown assembly.
#endif
{
    internal  static partial class SafeSecurityHelper
    {
 
        /// <summary> 
        /// is this visual connected to presentation source ? 
        /// i.e. is it "renderable" ?
        ///</summary> 
        /// <SecurityNote>
        /// Critical - extracts presentationsource
        /// TreatAsSafe - Knowing whether you're connected to presentation source is ok. 
        /// </SecurityNote>
        [SecurityCritical, SecurityTreatAsSafe] 
        internal static bool IsConnectedToPresentationSource( Visual visual ) 
        {
            bool isConnected = false; 
 
            isConnected = PresentationSource.CriticalFromVisual(visual ) != null;
 
            return isConnected ; 
        }
    }
}