SafeThemeHandle.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / UIAutomation / Win32Providers / MS / Internal / AutomationProxies / SafeThemeHandle.cs / 1 / SafeThemeHandle.cs

                            //---------------------------------------------------------------------------- 
//
// 
//    Copyright (C) Microsoft Corporation.  All rights reserved.
//  
//
// Description: 
// 
// History:
//  10/04/2003 : [....]    Created 
//---------------------------------------------------------------------------

using System;
using System.Security; 
using System.Security.Permissions;
using System.Runtime.InteropServices; 
//using System.Runtime.CompilerServices; 
using System.Windows.Automation;
using Microsoft.Win32.SafeHandles; 
using MS.Win32;

namespace MS.Internal.AutomationProxies
{ 
    internal sealed class SafeThemeHandle : SafeHandleZeroOrMinusOneIsInvalid
    { 
        // This constructor is used by the P/Invoke marshaling layer 
        // to allocate a SafeHandle instance.  P/Invoke then does the
        // appropriate method call, storing the handle in this class. 
        private SafeThemeHandle() : base(true) {}

        // Uncomment this if & only if we need a constructor
        // that takes a handle from external code 
        internal SafeThemeHandle(IntPtr preexistingHandle, bool ownsHandle) : base(ownsHandle)
        { 
            SetHandle(preexistingHandle); 
        }
 
        //


 
        protected override bool ReleaseHandle()
        { 
            // MustRun methods may only call other MustRun methods, 
            // must not allocate along paths that must succeed, etc.
            return !IsInvalid ? CloseThemeData(handle) == (IntPtr)NativeMethods.S_OK : true; 
        }

        [DllImport("UxTheme.dll", CharSet = CharSet.Auto)/*, SuppressUnmanagedCodeSecurity*/]
        // 

 
 
        private static extern IntPtr CloseThemeData(IntPtr handle);
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------------------- 
//
// 
//    Copyright (C) Microsoft Corporation.  All rights reserved.
//  
//
// Description: 
// 
// History:
//  10/04/2003 : [....]    Created 
//---------------------------------------------------------------------------

using System;
using System.Security; 
using System.Security.Permissions;
using System.Runtime.InteropServices; 
//using System.Runtime.CompilerServices; 
using System.Windows.Automation;
using Microsoft.Win32.SafeHandles; 
using MS.Win32;

namespace MS.Internal.AutomationProxies
{ 
    internal sealed class SafeThemeHandle : SafeHandleZeroOrMinusOneIsInvalid
    { 
        // This constructor is used by the P/Invoke marshaling layer 
        // to allocate a SafeHandle instance.  P/Invoke then does the
        // appropriate method call, storing the handle in this class. 
        private SafeThemeHandle() : base(true) {}

        // Uncomment this if & only if we need a constructor
        // that takes a handle from external code 
        internal SafeThemeHandle(IntPtr preexistingHandle, bool ownsHandle) : base(ownsHandle)
        { 
            SetHandle(preexistingHandle); 
        }
 
        //


 
        protected override bool ReleaseHandle()
        { 
            // MustRun methods may only call other MustRun methods, 
            // must not allocate along paths that must succeed, etc.
            return !IsInvalid ? CloseThemeData(handle) == (IntPtr)NativeMethods.S_OK : true; 
        }

        [DllImport("UxTheme.dll", CharSet = CharSet.Auto)/*, SuppressUnmanagedCodeSecurity*/]
        // 

 
 
        private static extern IntPtr CloseThemeData(IntPtr handle);
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.

                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK