Initial commit: Complete open-source Decal rebuild
All 5 phases of the open-source Decal rebuild: Phase 1: 14 decompiled .NET projects (Interop.*, Adapter, FileService, DecalUtil) Phase 2: 10 native DLLs rewritten as C# COM servers with matching GUIDs - DecalDat, DHS, SpellFilter, DecalInput, DecalNet, DecalFilters - Decal.Core, DecalControls, DecalRender, D3DService Phase 3: C++ shims for Inject.DLL (D3D9 hooking) and LauncherHook.DLL Phase 4: DenAgent WinForms tray application Phase 5: WiX installer and build script 25 C# projects building with 0 errors. Native C++ projects require VS 2022 + Windows SDK (x86). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
commit
d1442e3747
1382 changed files with 170725 additions and 0 deletions
8
Managed/Decal.Interop.Net/Decal.Interop.Net.csproj
Normal file
8
Managed/Decal.Interop.Net/Decal.Interop.Net.csproj
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<AssemblyName>Decal.Interop.Net</AssemblyName>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Decal.Interop.Core\Decal.Interop.Core.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
75
Managed/Decal.Interop.Net/Decal.Interop.Net/IMessage.cs
Normal file
75
Managed/Decal.Interop.Net/Decal.Interop.Net/IMessage.cs
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[TypeLibType(4160)]
|
||||
[Guid("23EE0804-EAC7-493B-BB9D-2298FD44FFA1")]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
public interface IMessage
|
||||
{
|
||||
[DispId(1610743808)]
|
||||
int Type
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743808)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743809)]
|
||||
byte[] RawData
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743809)]
|
||||
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_UI1)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743810)]
|
||||
object Value
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743810)]
|
||||
[TypeLibFunc(256)]
|
||||
[return: MarshalAs(UnmanagedType.Struct)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743811)]
|
||||
IMessageMember Struct
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743811)]
|
||||
[TypeLibFunc(256)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743812)]
|
||||
byte[] RawValue
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743812)]
|
||||
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_UI1)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743813)]
|
||||
string FieldName
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743813)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743814)]
|
||||
int Count
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743814)]
|
||||
get;
|
||||
}
|
||||
}
|
||||
84
Managed/Decal.Interop.Net/Decal.Interop.Net/IMessage2.cs
Normal file
84
Managed/Decal.Interop.Net/Decal.Interop.Net/IMessage2.cs
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[TypeLibType(4160)]
|
||||
[Guid("38AFE740-9189-4F7C-8DE2-E61087DD9F19")]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
public interface IMessage2 : IMessage
|
||||
{
|
||||
[DispId(1610743808)]
|
||||
new int Type
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743808)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743809)]
|
||||
new byte[] RawData
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743809)]
|
||||
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_UI1)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743810)]
|
||||
new object Value
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743810)]
|
||||
[TypeLibFunc(256)]
|
||||
[return: MarshalAs(UnmanagedType.Struct)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743811)]
|
||||
new IMessageMember Struct
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[TypeLibFunc(256)]
|
||||
[DispId(1610743811)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743812)]
|
||||
new byte[] RawValue
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743812)]
|
||||
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_UI1)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743813)]
|
||||
new string FieldName
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743813)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743814)]
|
||||
new int Count
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743814)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610809344)]
|
||||
MessageRoot Begin
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610809344)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[TypeLibType(4160)]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[Guid("2D030423-5D22-4100-8C3A-6BF721C4DE50")]
|
||||
public interface IMessageFactory
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743808)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
IMessage2 CreateMessage(int pData, int size, bool outgoing);
|
||||
}
|
||||
111
Managed/Decal.Interop.Net/Decal.Interop.Net/IMessageIterator.cs
Normal file
111
Managed/Decal.Interop.Net/Decal.Interop.Net/IMessageIterator.cs
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[Guid("853BFE61-6C14-4244-8B96-96F0C9647DE6")]
|
||||
[TypeLibType(4160)]
|
||||
public interface IMessageIterator
|
||||
{
|
||||
[DispId(1610743808)]
|
||||
object Next
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743808)]
|
||||
[return: MarshalAs(UnmanagedType.Struct)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743809)]
|
||||
object Current
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743809)]
|
||||
[return: MarshalAs(UnmanagedType.Struct)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743810)]
|
||||
string FieldName
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743810)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743811)]
|
||||
int Index
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743811)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743812)]
|
||||
string NextString
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743812)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743813)]
|
||||
int NextInt
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743813)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743814)]
|
||||
double NextFloat
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743814)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743815)]
|
||||
MessageRoot NextObject
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743815)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743816)]
|
||||
MessageRoot NextObjectIndex
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743816)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743817)]
|
||||
IMessage Message
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743817)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743818)]
|
||||
void Reset();
|
||||
|
||||
[DispId(1610743819)]
|
||||
ulong NextQWord
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743819)]
|
||||
get;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[TypeLibType(4160)]
|
||||
[Guid("05D14E34-0A23-4A9F-95CF-9DB24B3CFB9F")]
|
||||
public interface IMessageMember
|
||||
{
|
||||
[DispId(1610743808)]
|
||||
object Value
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743808)]
|
||||
[TypeLibFunc(256)]
|
||||
[return: MarshalAs(UnmanagedType.Struct)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743809)]
|
||||
byte[] RawValue
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743809)]
|
||||
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_UI1)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743810)]
|
||||
IMessageMember Struct
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[TypeLibFunc(256)]
|
||||
[DispId(1610743810)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743811)]
|
||||
string FieldName
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743811)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743812)]
|
||||
int Count
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743812)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743813)]
|
||||
int BeginOffset
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743813)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743814)]
|
||||
int EndOffset
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743814)]
|
||||
get;
|
||||
}
|
||||
}
|
||||
45
Managed/Decal.Interop.Net/Decal.Interop.Net/INetService.cs
Normal file
45
Managed/Decal.Interop.Net/Decal.Interop.Net/INetService.cs
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
using Decal.Interop.Core;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[InterfaceType(1)]
|
||||
[Guid("AA405035-E001-4CC3-B43A-156206843D64")]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
public interface INetService
|
||||
{
|
||||
[DispId(1610678272)]
|
||||
DecalCore Decal
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610678273)]
|
||||
object Filter
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[return: MarshalAs(UnmanagedType.IUnknown)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610678274)]
|
||||
object FilterVB
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[return: MarshalAs(UnmanagedType.IDispatch)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610678275)]
|
||||
ACHooks Hooks
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[TypeLibType(4160)]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[Guid("B04FC03E-504A-4711-AB82-6258149AB8E9")]
|
||||
public interface INetworkFilter
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
void Dispatch([MarshalAs(UnmanagedType.Interface)] IMessage Message);
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[Guid("07F65937-387A-4539-8745-5603A2E029B1")]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[InterfaceType(1)]
|
||||
public interface INetworkFilter2
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
void DispatchServer([MarshalAs(UnmanagedType.Interface)] IMessage2 Message);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
void DispatchClient([MarshalAs(UnmanagedType.Interface)] IMessage2 Message);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
void Initialize([MarshalAs(UnmanagedType.Interface)] NetService pService);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
void Terminate();
|
||||
}
|
||||
20
Managed/Decal.Interop.Net/Decal.Interop.Net/IWebRequest.cs
Normal file
20
Managed/Decal.Interop.Net/Decal.Interop.Net/IWebRequest.cs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[Guid("03F3E2D0-7026-4C11-988A-4B3C58C71917")]
|
||||
[TypeLibType(4160)]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
public interface IWebRequest
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743808)]
|
||||
void Get([MarshalAs(UnmanagedType.BStr)] string strURL);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743809)]
|
||||
void Post([MarshalAs(UnmanagedType.BStr)] string strURL, [MarshalAs(UnmanagedType.BStr)] string strPostData);
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[Guid("EEFA38DC-15B2-4232-B5BE-5A9ECB8E1A58")]
|
||||
[InterfaceType(2)]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[TypeLibType(4096)]
|
||||
public interface IWebRequestEvents
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
void Begin();
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
void End(int nResultCode, [MarshalAs(UnmanagedType.BStr)] string strText);
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComVisible(false)]
|
||||
public delegate void IWebRequestEvents_BeginEventHandler();
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComVisible(false)]
|
||||
public delegate void IWebRequestEvents_EndEventHandler(int nResultCode, [MarshalAs(UnmanagedType.BStr)] string strText);
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComVisible(false)]
|
||||
[TypeLibType(16)]
|
||||
public interface IWebRequestEvents_Event
|
||||
{
|
||||
event IWebRequestEvents_BeginEventHandler Begin;
|
||||
|
||||
event IWebRequestEvents_EndEventHandler End;
|
||||
}
|
||||
|
|
@ -0,0 +1,230 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.InteropServices.ComTypes;
|
||||
using System.Threading;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
internal sealed class IWebRequestEvents_EventProvider : IWebRequestEvents_Event, IDisposable
|
||||
{
|
||||
private IConnectionPointContainer m_ConnectionPointContainer;
|
||||
|
||||
private ArrayList m_aEventSinkHelpers;
|
||||
|
||||
private IConnectionPoint m_ConnectionPoint;
|
||||
|
||||
private void Init()
|
||||
{
|
||||
IConnectionPoint ppCP = null;
|
||||
Guid riid = new Guid(new byte[16]
|
||||
{
|
||||
220, 56, 250, 238, 178, 21, 50, 66, 181, 190,
|
||||
90, 158, 203, 142, 26, 88
|
||||
});
|
||||
m_ConnectionPointContainer.FindConnectionPoint(ref riid, out ppCP);
|
||||
m_ConnectionPoint = ppCP;
|
||||
m_aEventSinkHelpers = new ArrayList();
|
||||
}
|
||||
|
||||
event IWebRequestEvents_BeginEventHandler IWebRequestEvents_Event.Begin
|
||||
{
|
||||
add
|
||||
{
|
||||
|
||||
bool lockTaken = default(bool);
|
||||
try
|
||||
{
|
||||
Monitor.Enter(this, ref lockTaken);
|
||||
if (m_ConnectionPoint == null)
|
||||
{
|
||||
Init();
|
||||
}
|
||||
IWebRequestEvents_SinkHelper webRequestEvents_SinkHelper = new IWebRequestEvents_SinkHelper();
|
||||
int pdwCookie = 0;
|
||||
m_ConnectionPoint.Advise(webRequestEvents_SinkHelper, out pdwCookie);
|
||||
webRequestEvents_SinkHelper.m_dwCookie = pdwCookie;
|
||||
webRequestEvents_SinkHelper.m_BeginDelegate = value;
|
||||
m_aEventSinkHelpers.Add(webRequestEvents_SinkHelper);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (lockTaken)
|
||||
{
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
remove
|
||||
{
|
||||
|
||||
bool lockTaken = default(bool);
|
||||
try
|
||||
{
|
||||
Monitor.Enter(this, ref lockTaken);
|
||||
if (m_aEventSinkHelpers == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
int count = m_aEventSinkHelpers.Count;
|
||||
int num = 0;
|
||||
if (0 >= count)
|
||||
{
|
||||
return;
|
||||
}
|
||||
do
|
||||
{
|
||||
IWebRequestEvents_SinkHelper webRequestEvents_SinkHelper = (IWebRequestEvents_SinkHelper)m_aEventSinkHelpers[num];
|
||||
if (webRequestEvents_SinkHelper.m_BeginDelegate != null && ((webRequestEvents_SinkHelper.m_BeginDelegate.Equals(value) ? 1u : 0u) & 0xFFu) != 0)
|
||||
{
|
||||
m_aEventSinkHelpers.RemoveAt(num);
|
||||
m_ConnectionPoint.Unadvise(webRequestEvents_SinkHelper.m_dwCookie);
|
||||
if (count <= 1)
|
||||
{
|
||||
Marshal.ReleaseComObject(m_ConnectionPoint);
|
||||
m_ConnectionPoint = null;
|
||||
m_aEventSinkHelpers = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
num++;
|
||||
}
|
||||
while (num < count);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (lockTaken)
|
||||
{
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
event IWebRequestEvents_EndEventHandler IWebRequestEvents_Event.End
|
||||
{
|
||||
add
|
||||
{
|
||||
|
||||
bool lockTaken = default(bool);
|
||||
try
|
||||
{
|
||||
Monitor.Enter(this, ref lockTaken);
|
||||
if (m_ConnectionPoint == null)
|
||||
{
|
||||
Init();
|
||||
}
|
||||
IWebRequestEvents_SinkHelper webRequestEvents_SinkHelper = new IWebRequestEvents_SinkHelper();
|
||||
int pdwCookie = 0;
|
||||
m_ConnectionPoint.Advise(webRequestEvents_SinkHelper, out pdwCookie);
|
||||
webRequestEvents_SinkHelper.m_dwCookie = pdwCookie;
|
||||
webRequestEvents_SinkHelper.m_EndDelegate = value;
|
||||
m_aEventSinkHelpers.Add(webRequestEvents_SinkHelper);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (lockTaken)
|
||||
{
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
remove
|
||||
{
|
||||
|
||||
bool lockTaken = default(bool);
|
||||
try
|
||||
{
|
||||
Monitor.Enter(this, ref lockTaken);
|
||||
if (m_aEventSinkHelpers == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
int count = m_aEventSinkHelpers.Count;
|
||||
int num = 0;
|
||||
if (0 >= count)
|
||||
{
|
||||
return;
|
||||
}
|
||||
do
|
||||
{
|
||||
IWebRequestEvents_SinkHelper webRequestEvents_SinkHelper = (IWebRequestEvents_SinkHelper)m_aEventSinkHelpers[num];
|
||||
if (webRequestEvents_SinkHelper.m_EndDelegate != null && ((webRequestEvents_SinkHelper.m_EndDelegate.Equals(value) ? 1u : 0u) & 0xFFu) != 0)
|
||||
{
|
||||
m_aEventSinkHelpers.RemoveAt(num);
|
||||
m_ConnectionPoint.Unadvise(webRequestEvents_SinkHelper.m_dwCookie);
|
||||
if (count <= 1)
|
||||
{
|
||||
Marshal.ReleaseComObject(m_ConnectionPoint);
|
||||
m_ConnectionPoint = null;
|
||||
m_aEventSinkHelpers = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
num++;
|
||||
}
|
||||
while (num < count);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (lockTaken)
|
||||
{
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public IWebRequestEvents_EventProvider(object P_0)
|
||||
{
|
||||
//Error decoding local variables: Signature type sequence must have at least one element.
|
||||
m_ConnectionPointContainer = (IConnectionPointContainer)P_0;
|
||||
}
|
||||
|
||||
public void Finalize()
|
||||
{
|
||||
bool lockTaken = default(bool);
|
||||
try
|
||||
{
|
||||
Monitor.Enter(this, ref lockTaken);
|
||||
if (m_ConnectionPoint == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
int count = m_aEventSinkHelpers.Count;
|
||||
int num = 0;
|
||||
if (0 < count)
|
||||
{
|
||||
do
|
||||
{
|
||||
IWebRequestEvents_SinkHelper webRequestEvents_SinkHelper = (IWebRequestEvents_SinkHelper)m_aEventSinkHelpers[num];
|
||||
m_ConnectionPoint.Unadvise(webRequestEvents_SinkHelper.m_dwCookie);
|
||||
num++;
|
||||
}
|
||||
while (num < count);
|
||||
}
|
||||
Marshal.ReleaseComObject(m_ConnectionPoint);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (lockTaken)
|
||||
{
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
//Error decoding local variables: Signature type sequence must have at least one element.
|
||||
Finalize();
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[TypeLibType(TypeLibTypeFlags.FHidden)]
|
||||
[ClassInterface(ClassInterfaceType.None)]
|
||||
public sealed class IWebRequestEvents_SinkHelper : IWebRequestEvents
|
||||
{
|
||||
public IWebRequestEvents_BeginEventHandler m_BeginDelegate;
|
||||
|
||||
public IWebRequestEvents_EndEventHandler m_EndDelegate;
|
||||
|
||||
public int m_dwCookie;
|
||||
|
||||
public void Begin()
|
||||
{
|
||||
//Error decoding local variables: Signature type sequence must have at least one element.
|
||||
if (m_BeginDelegate != null)
|
||||
{
|
||||
m_BeginDelegate();
|
||||
}
|
||||
}
|
||||
|
||||
public void End(int P_0, string P_1)
|
||||
{
|
||||
//Error decoding local variables: Signature type sequence must have at least one element.
|
||||
if (m_EndDelegate != null)
|
||||
{
|
||||
m_EndDelegate(P_0, P_1);
|
||||
}
|
||||
}
|
||||
|
||||
internal IWebRequestEvents_SinkHelper()
|
||||
{
|
||||
//Error decoding local variables: Signature type sequence must have at least one element.
|
||||
m_dwCookie = 0;
|
||||
m_BeginDelegate = null;
|
||||
m_EndDelegate = null;
|
||||
}
|
||||
}
|
||||
10
Managed/Decal.Interop.Net/Decal.Interop.Net/MessageRoot.cs
Normal file
10
Managed/Decal.Interop.Net/Decal.Interop.Net/MessageRoot.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[CoClass(typeof(MessageRootClass))]
|
||||
[Guid("853BFE61-6C14-4244-8B96-96F0C9647DE6")]
|
||||
public interface MessageRoot : IMessageIterator
|
||||
{
|
||||
}
|
||||
111
Managed/Decal.Interop.Net/Decal.Interop.Net/MessageRootClass.cs
Normal file
111
Managed/Decal.Interop.Net/Decal.Interop.Net/MessageRootClass.cs
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[ClassInterface(ClassInterfaceType.None)]
|
||||
[Guid("7A85E352-B133-4AB5-A9DA-85978005BF88")]
|
||||
public class MessageRootClass : IMessageIterator, MessageRoot
|
||||
{
|
||||
[DispId(1610743808)]
|
||||
public virtual extern object Next
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743808)]
|
||||
[return: MarshalAs(UnmanagedType.Struct)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743809)]
|
||||
public virtual extern object Current
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743809)]
|
||||
[return: MarshalAs(UnmanagedType.Struct)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743810)]
|
||||
public virtual extern string FieldName
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743810)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743811)]
|
||||
public virtual extern int Index
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743811)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743812)]
|
||||
public virtual extern string NextString
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743812)]
|
||||
[return: MarshalAs(UnmanagedType.BStr)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743813)]
|
||||
public virtual extern int NextInt
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743813)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743814)]
|
||||
public virtual extern double NextFloat
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743814)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743815)]
|
||||
public virtual extern MessageRoot NextObject
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743815)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743816)]
|
||||
public virtual extern MessageRoot NextObjectIndex
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743816)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743817)]
|
||||
public virtual extern IMessage Message
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743817)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610743819)]
|
||||
public virtual extern ulong NextQWord
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743819)]
|
||||
get;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743818)]
|
||||
public virtual extern void Reset();
|
||||
}
|
||||
10
Managed/Decal.Interop.Net/Decal.Interop.Net/NetService.cs
Normal file
10
Managed/Decal.Interop.Net/Decal.Interop.Net/NetService.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[Guid("AA405035-E001-4CC3-B43A-156206843D64")]
|
||||
[CoClass(typeof(NetServiceClass))]
|
||||
public interface NetService : INetService
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
using Decal.Interop.Core;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[Guid("C8C406F8-BA2E-4964-8B04-FF38394A8E0E")]
|
||||
[TypeLibType(2)]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[ClassInterface(ClassInterfaceType.None)]
|
||||
public class NetServiceClass : INetService, NetService
|
||||
{
|
||||
[DispId(1610678272)]
|
||||
public virtual extern DecalCore Decal
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610678273)]
|
||||
public virtual extern object Filter
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[return: MarshalAs(UnmanagedType.IUnknown)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610678274)]
|
||||
public virtual extern object FilterVB
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[return: MarshalAs(UnmanagedType.IDispatch)]
|
||||
get;
|
||||
}
|
||||
|
||||
[DispId(1610678275)]
|
||||
public virtual extern ACHooks Hooks
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
get;
|
||||
}
|
||||
}
|
||||
10
Managed/Decal.Interop.Net/Decal.Interop.Net/WebRequest.cs
Normal file
10
Managed/Decal.Interop.Net/Decal.Interop.Net/WebRequest.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[Guid("03F3E2D0-7026-4C11-988A-4B3C58C71917")]
|
||||
[CoClass(typeof(WebRequestClass))]
|
||||
public interface WebRequest : IWebRequest, IWebRequestEvents_Event
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.Net;
|
||||
|
||||
[ComImport]
|
||||
[TypeLibType(2)]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[ClassInterface(ClassInterfaceType.None)]
|
||||
[ComSourceInterfaces("Decal.Interop.Net.IWebRequestEvents\0\0")]
|
||||
[Guid("15631E36-55CB-4D16-ADE7-74D9F8A5F4B6")]
|
||||
public class WebRequestClass : IWebRequest, WebRequest, IWebRequestEvents_Event
|
||||
{
|
||||
public virtual extern event IWebRequestEvents_BeginEventHandler Begin;
|
||||
|
||||
public virtual extern event IWebRequestEvents_EndEventHandler End;
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743808)]
|
||||
public virtual extern void Get([MarshalAs(UnmanagedType.BStr)] string strURL);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1610743809)]
|
||||
public virtual extern void Post([MarshalAs(UnmanagedType.BStr)] string strURL, [MarshalAs(UnmanagedType.BStr)] string strPostData);
|
||||
}
|
||||
10
Managed/Decal.Interop.Net/Properties/AssemblyInfo.cs
Normal file
10
Managed/Decal.Interop.Net/Properties/AssemblyInfo.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
[assembly: ImportedFromTypeLib("DecalNet")]
|
||||
[assembly: SecurityRules(SecurityRuleSet.Level2)]
|
||||
[assembly: Guid("572b87c4-93bd-46b3-a291-cd58181d25dc")]
|
||||
[assembly: TypeLibVersion(2, 0)]
|
||||
[assembly: PrimaryInteropAssembly(2, 0)]
|
||||
[assembly: AssemblyVersion("2.9.8.3")]
|
||||
Loading…
Add table
Add a link
Reference in a new issue