// This file is decompiled C# from an assembly generated by tlbimp against a copy of urlmon's idl file

// UrlMonTypeLib.IInternetSecurityManager
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

[ComImport]
[Guid("79EAC9EE-BAF9-11CE-8C82-00AA004BA90B")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[ComConversionLoss]
interface IInternetSecurityManager
{
	[MethodImpl(MethodImplOptions.InternalCall)]
	void SetSecuritySite([In] [MarshalAs(UnmanagedType.Interface)] IInternetSecurityMgrSite pSite);

	[MethodImpl(MethodImplOptions.InternalCall)]
	void GetSecuritySite([MarshalAs(UnmanagedType.Interface)] out IInternetSecurityMgrSite ppSite);

	[MethodImpl(MethodImplOptions.InternalCall)]
	void MapUrlToZone([In] [MarshalAs(UnmanagedType.LPWStr)] string pwszUrl, out int pdwZone, [In] int dwFlags);

	[MethodImpl(MethodImplOptions.InternalCall)]
	void GetSecurityId([In] [MarshalAs(UnmanagedType.LPWStr)] string pwszUrl, out byte pbSecurityId, [In] [Out] ref int pcbSecurityId, [In] [ComAliasName("UrlMonTypeLib.ULONG_PTR")] int dwReserved);

	[MethodImpl(MethodImplOptions.InternalCall)]
	void ProcessUrlAction([In] [MarshalAs(UnmanagedType.LPWStr)] string pwszUrl, [In] int dwAction, out byte pPolicy, [In] int cbPolicy, [In] ref byte pContext, [In] int cbContext, [In] int dwFlags, [In] int dwReserved);

	[MethodImpl(MethodImplOptions.InternalCall)]
	void QueryCustomPolicy([In] [MarshalAs(UnmanagedType.LPWStr)] string pwszUrl, [In] [ComAliasName("UrlMonTypeLib.GUID")] ref GUID guidKey, [Out] IntPtr ppPolicy, out int pcbPolicy, [In] ref byte pContext, [In] int cbContext, [In] int dwReserved);

	[MethodImpl(MethodImplOptions.InternalCall)]
	void SetZoneMapping([In] int dwZone, [In] [MarshalAs(UnmanagedType.LPWStr)] string lpszPattern, [In] int dwFlags);

	[MethodImpl(MethodImplOptions.InternalCall)]
	void GetZoneMappings([In] int dwZone, [MarshalAs(UnmanagedType.Interface)] out IEnumString ppenumString, [In] int dwFlags);
}

// UrlMonTypeLib.IInternetSecurityMgrSite
[ComImport]
[ComConversionLoss]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("79EAC9ED-BAF9-11CE-8C82-00AA004BA90B")]
interface IInternetSecurityMgrSite
{
    [MethodImpl(MethodImplOptions.InternalCall)]
    void GetWindow([Out] [ComAliasName("UrlMonTypeLib.wireHWND")] IntPtr phwnd);

    [MethodImpl(MethodImplOptions.InternalCall)]
    void EnableModeless([In] int fEnable);
}

[StructLayout(LayoutKind.Sequential, Pack = 4)]
struct GUID
{
    public int Data1;

    public ushort Data2;

    public ushort Data3;

    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
    public byte[] Data4;
}

[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("00000101-0000-0000-C000-000000000046")]
interface IEnumString
{
    [MethodImpl(MethodImplOptions.InternalCall)]
    void RemoteNext([In] int celt, [MarshalAs(UnmanagedType.LPWStr)] out string rgelt, out int pceltFetched);

    [MethodImpl(MethodImplOptions.InternalCall)]
    void Skip([In] int celt);

    [MethodImpl(MethodImplOptions.InternalCall)]
    void Reset();

    [MethodImpl(MethodImplOptions.InternalCall)]
    void Clone([MarshalAs(UnmanagedType.Interface)] out IEnumString ppenum);
}
