File: Shared\MS\Win32\UnsafeNativeMethodsCompiler.cs
Project: wpf\src\PresentationCore.csproj (PresentationCore)
//------------------------------------------------------------------------------
// <copyright file="UnsafeNativeMethodsCompiler.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
 
using System;
using System.Text;
using System.ComponentModel;
using System.Security;
using System.Security.Permissions;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
 
namespace MS.Win32.Compile
{
 
    //
    // Keep unsafe native methods used by Compiler related classes.
    // It can be shared by PresentationBuildTasks and PresentationFramework
    //
#if !PBTCOMPILER
    [MS.Internal.PresentationCore.FriendAccessAllowed] // Used by both PBT and PresentationFramework
#endif
    internal static partial class UnsafeNativeMethods {
 
        //------------------------------------------------------
        //
        //  Internal Methods
        //
        //------------------------------------------------------
 
        #region internal Methods
 
#if !PBTCOMPILER
        [DllImport(ExternDll.Shfolder, CharSet = CharSet.Auto, BestFitMapping = false)]
        public static extern int SHGetFolderPath(IntPtr hwndOwner, int nFolder, IntPtr hToken, int dwFlags, StringBuilder lpszPath);
#endif
 
        /// <SecurityNote>
        ///     Critical: This code calls into unmanaged code
        /// </SecurityNote>
        [SecurityCritical]
        [SuppressUnmanagedCodeSecurity]
        [DllImport("urlmon.dll", CharSet = CharSet.Unicode)]
        internal static extern int FindMimeFromData(
                        IBindCtx pBC,                   // bind context - can be NULL
                        string wszUrl,                  // url - can be null
                        IntPtr Buffer,                  // buffer with data to sniff -
                                                        // can be null (pwzUrl must be valid)
                        int cbSize,                     // size of buffer
                        string wzMimeProposed,          // proposed mime if - can be null
                        int dwMimeFlags,                // will be determined
                        out string wzMimeOut,           // the suggested mime
                        int dwReserved);
 
       #endregion
    }
}