-
Notifications
You must be signed in to change notification settings - Fork 1.4k
/
Copy pathInterop.cs
83 lines (64 loc) · 3.25 KB
/
Interop.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// UrlMonTypeLib.IInternetSecurityManager
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[ComImport]
[Guid("79EAC9EE-BAF9-11CE-8C82-00AA004BA90B")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[ComConversionLoss]
internal 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")]
internal 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)]
internal 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")]
internal 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);
}