WinInet.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Shared / MS / Win32 / WinInet.cs / 1 / WinInet.cs

                            using System; 
using System.Security;
using System.Runtime.InteropServices;

namespace MS.Win32 
{
internal static class WinInet 
{ 
    /// 
    /// Will return the location of the internet cache folder. 
    /// 
    /// The location of the internet cache folder.
    /// 
    /// Critical: 
    ///  1) Calls several Marshal methods which have a link demand on them.
    ///  2) Calls NativeMethods.GetUrlCacheConfigInfo which is SecurityCritical. 
    /// Not Safe: 
    ///  2) Returns a Path that may leak information about the system.
    ///  
    internal static Uri InternetCacheFolder
    {
        [SecurityCritical]
        get 
        {
            // copied value 260 from orginal implementation in BitmapDownload.cs 
            const int maxPathSize = 260; 
            const UInt32 fieldControl = (UInt32)maxPathSize;
 
            NativeMethods.InternetCacheConfigInfo icci =
                new NativeMethods.InternetCacheConfigInfo();

            icci.CachePath = new string(new char[maxPathSize]); 

            UInt32 size = (UInt32)Marshal.SizeOf(icci); 
            icci.dwStructSize = size; 

            bool passed = UnsafeNativeMethods.GetUrlCacheConfigInfo( 
                ref icci,
                ref size,
                fieldControl);
 
            if (!passed)
            { 
                int hr = Marshal.GetHRForLastWin32Error(); 

                if (hr != 0) 
                {
                    Marshal.ThrowExceptionForHR(hr);
                }
            } 

            return new Uri(icci.CachePath); 
        } 
    }
} 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
using System; 
using System.Security;
using System.Runtime.InteropServices;

namespace MS.Win32 
{
internal static class WinInet 
{ 
    /// 
    /// Will return the location of the internet cache folder. 
    /// 
    /// The location of the internet cache folder.
    /// 
    /// Critical: 
    ///  1) Calls several Marshal methods which have a link demand on them.
    ///  2) Calls NativeMethods.GetUrlCacheConfigInfo which is SecurityCritical. 
    /// Not Safe: 
    ///  2) Returns a Path that may leak information about the system.
    ///  
    internal static Uri InternetCacheFolder
    {
        [SecurityCritical]
        get 
        {
            // copied value 260 from orginal implementation in BitmapDownload.cs 
            const int maxPathSize = 260; 
            const UInt32 fieldControl = (UInt32)maxPathSize;
 
            NativeMethods.InternetCacheConfigInfo icci =
                new NativeMethods.InternetCacheConfigInfo();

            icci.CachePath = new string(new char[maxPathSize]); 

            UInt32 size = (UInt32)Marshal.SizeOf(icci); 
            icci.dwStructSize = size; 

            bool passed = UnsafeNativeMethods.GetUrlCacheConfigInfo( 
                ref icci,
                ref size,
                fieldControl);
 
            if (!passed)
            { 
                int hr = Marshal.GetHRForLastWin32Error(); 

                if (hr != 0) 
                {
                    Marshal.ThrowExceptionForHR(hr);
                }
            } 

            return new Uri(icci.CachePath); 
        } 
    }
} 
}

// 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