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
|
|
@ -0,0 +1,5 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<AssemblyName>Decal.Interop.D3DService</AssemblyName>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.D3DService;
|
||||
|
||||
[ComImport]
|
||||
[Guid("68753CB9-267F-482F-9F6B-A932A70E0057")]
|
||||
[CoClass(typeof(CD3DObjClass))]
|
||||
public interface CD3DObj : ID3DObj
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,252 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.D3DService;
|
||||
|
||||
[ComImport]
|
||||
[ClassInterface(ClassInterfaceType.None)]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[Guid("81E79859-2783-4B9A-ADC4-308073F5BB3F")]
|
||||
public class CD3DObjClass : ID3DObj, CD3DObj
|
||||
{
|
||||
[DispId(8)]
|
||||
public virtual extern float scaleX
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(8)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(8)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(9)]
|
||||
public virtual extern float scaleY
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(9)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(9)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(10)]
|
||||
public virtual extern float scaleZ
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(10)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(10)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(11)]
|
||||
public virtual extern bool autoscale
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(11)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(11)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(12)]
|
||||
public virtual extern int color
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(12)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(12)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(13)]
|
||||
public virtual extern int color2
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(13)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(13)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(14)]
|
||||
public virtual extern float pFade
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(14)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(14)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(17)]
|
||||
public virtual extern float pBounce
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(17)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(17)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(18)]
|
||||
public virtual extern float hBounce
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(18)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(18)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(19)]
|
||||
public virtual extern float pOrbit
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(19)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(19)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(20)]
|
||||
public virtual extern float rOrbit
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(20)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(20)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(25)]
|
||||
public virtual extern float pSpin
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(25)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(25)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(26)]
|
||||
public virtual extern bool visible
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(26)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(26)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(27)]
|
||||
public virtual extern bool drawBackface
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(27)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(27)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(30)]
|
||||
public virtual extern float AnimationPhaseOffset
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(30)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(30)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
public virtual extern void SetIcon([In] int icon);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
public virtual extern void SetIconFromResource([In] int hmodule, [In] int idr);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(3)]
|
||||
public virtual extern void SetIconFromFile([In][MarshalAs(UnmanagedType.BStr)] string bstrFilename);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(4)]
|
||||
public virtual extern void SetShape([In] eShape shape);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(5)]
|
||||
public virtual extern void SetShapeFromResource([In] int hmodule, [In] int idr);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(6)]
|
||||
public virtual extern void SetShapeFromFile([In][MarshalAs(UnmanagedType.BStr)] string bstrFilename);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(28)]
|
||||
public virtual extern void Set2DText([In][MarshalAs(UnmanagedType.BStr)] string szText, [In][MarshalAs(UnmanagedType.BStr)] string szFont, [In] int options = 0);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(29)]
|
||||
public virtual extern void Set3DText([In][MarshalAs(UnmanagedType.BStr)] string szText, [In][MarshalAs(UnmanagedType.BStr)] string szFont, [In] int options = 0);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(7)]
|
||||
public virtual extern void SetScale([In] float scale);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(15)]
|
||||
public virtual extern void AnchorToObject([In] int guid, [In] float fractHeight, [In] float dx, [In] float dy, [In] float dz);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(16)]
|
||||
public virtual extern void AnchorToCoords([In] float lat, [In] float lng, [In] float alt);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(21)]
|
||||
public virtual extern void OrientToCamera([In] bool fTilt = false);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(22)]
|
||||
public virtual extern void OrientToPlayer([In] bool fTilt = false);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(23)]
|
||||
public virtual extern void OrientToObject([In] int guid, [In] float fractHeight, [In] bool fTilt = false);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(24)]
|
||||
public virtual extern void OrientToCoords([In] float lat, [In] float lng, [In] float alt, [In] bool fTilt = false);
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Decal.Interop.D3DService;
|
||||
|
||||
[ComImport]
|
||||
[Guid("0BB41679-549E-4916-8B70-6A7B3CA1A31C")]
|
||||
[CoClass(typeof(CServiceClass))]
|
||||
public interface CService : ID3DService
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.D3DService;
|
||||
|
||||
[ComImport]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[ClassInterface(ClassInterfaceType.None)]
|
||||
[Guid("F0CC07A0-2C89-4FA4-9356-714665BC2F8B")]
|
||||
[TypeLibType(2)]
|
||||
public class CServiceClass : ID3DService, CService
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
public virtual extern CD3DObj NewD3DObj();
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
public virtual extern CD3DObj PointToObject([In] int guid, [In] int color);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(3)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
public virtual extern CD3DObj PointToCoords([In] float lat, [In] float lng, [In] float alt, [In] int color);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(4)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
public virtual extern CD3DObj MarkObjectWithIcon([In] int guid, [In] int icon);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(5)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
public virtual extern CD3DObj MarkObjectWithIconFromFile([In] int guid, [In][MarshalAs(UnmanagedType.BStr)] string bstrFilename);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(6)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
public virtual extern CD3DObj MarkObjectWithShape([In] int guid, [In] eShape shape, [In] int color);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(7)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
public virtual extern CD3DObj MarkObjectWithShapeFromFile([In] int guid, [In][MarshalAs(UnmanagedType.BStr)] string bstrFilename, [In] int color);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(13)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
public virtual extern CD3DObj MarkObjectWith2DText([In] int guid, [In][MarshalAs(UnmanagedType.BStr)] string szText, [In][MarshalAs(UnmanagedType.BStr)] string szFont, [In] int options = 0);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(14)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
public virtual extern CD3DObj MarkObjectWith3DText([In] int guid, [In][MarshalAs(UnmanagedType.BStr)] string szText, [In][MarshalAs(UnmanagedType.BStr)] string szFont, [In] int options = 0);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(8)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
public virtual extern CD3DObj MarkCoordsWithIcon([In] float lat, [In] float lng, [In] float alt, [In] int icon);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(9)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
public virtual extern CD3DObj MarkCoordsWithIconFromFile([In] float lat, [In] float lng, [In] float alt, [In][MarshalAs(UnmanagedType.BStr)] string bstrFilename);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(10)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
public virtual extern CD3DObj MarkCoordsWithShape([In] float lat, [In] float lng, [In] float alt, [In] eShape shape, [In] int color);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(11)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
public virtual extern CD3DObj MarkCoordsWithShapeFromFile([In] float lat, [In] float lng, [In] float alt, [In][MarshalAs(UnmanagedType.BStr)] string bstrFilename, [In] int color);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(15)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
public virtual extern CD3DObj MarkCoordsWith2DText([In] float lat, [In] float lng, [In] float alt, [In][MarshalAs(UnmanagedType.BStr)] string szText, [In][MarshalAs(UnmanagedType.BStr)] string szFont, [In] int options = 0);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(16)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
public virtual extern CD3DObj MarkCoordsWith3DText([In] float lat, [In] float lng, [In] float alt, [In][MarshalAs(UnmanagedType.BStr)] string szText, [In][MarshalAs(UnmanagedType.BStr)] string szFont, [In] int options = 0);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(12)]
|
||||
public virtual extern void TraceOneFrame();
|
||||
}
|
||||
|
|
@ -0,0 +1,252 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.D3DService;
|
||||
|
||||
[ComImport]
|
||||
[Guid("68753CB9-267F-482F-9F6B-A932A70E0057")]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[TypeLibType(4160)]
|
||||
public interface ID3DObj
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
void SetIcon([In] int icon);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
void SetIconFromResource([In] int hmodule, [In] int idr);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(3)]
|
||||
void SetIconFromFile([In][MarshalAs(UnmanagedType.BStr)] string bstrFilename);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(4)]
|
||||
void SetShape([In] eShape shape);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(5)]
|
||||
void SetShapeFromResource([In] int hmodule, [In] int idr);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(6)]
|
||||
void SetShapeFromFile([In][MarshalAs(UnmanagedType.BStr)] string bstrFilename);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(28)]
|
||||
void Set2DText([In][MarshalAs(UnmanagedType.BStr)] string szText, [In][MarshalAs(UnmanagedType.BStr)] string szFont, [In] int options = 0);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(29)]
|
||||
void Set3DText([In][MarshalAs(UnmanagedType.BStr)] string szText, [In][MarshalAs(UnmanagedType.BStr)] string szFont, [In] int options = 0);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(7)]
|
||||
void SetScale([In] float scale);
|
||||
|
||||
[DispId(8)]
|
||||
float scaleX
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(8)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(8)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(9)]
|
||||
float scaleY
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(9)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(9)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(10)]
|
||||
float scaleZ
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(10)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(10)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(11)]
|
||||
bool autoscale
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(11)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(11)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(12)]
|
||||
int color
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(12)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(12)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(13)]
|
||||
int color2
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(13)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(13)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(14)]
|
||||
float pFade
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(14)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(14)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(15)]
|
||||
void AnchorToObject([In] int guid, [In] float fractHeight, [In] float dx, [In] float dy, [In] float dz);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(16)]
|
||||
void AnchorToCoords([In] float lat, [In] float lng, [In] float alt);
|
||||
|
||||
[DispId(17)]
|
||||
float pBounce
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(17)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(17)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(18)]
|
||||
float hBounce
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(18)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(18)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(19)]
|
||||
float pOrbit
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(19)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(19)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(20)]
|
||||
float rOrbit
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(20)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(20)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(21)]
|
||||
void OrientToCamera([In] bool fTilt = false);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(22)]
|
||||
void OrientToPlayer([In] bool fTilt = false);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(23)]
|
||||
void OrientToObject([In] int guid, [In] float fractHeight, [In] bool fTilt = false);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(24)]
|
||||
void OrientToCoords([In] float lat, [In] float lng, [In] float alt, [In] bool fTilt = false);
|
||||
|
||||
[DispId(25)]
|
||||
float pSpin
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(25)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(25)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(26)]
|
||||
bool visible
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(26)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(26)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(27)]
|
||||
bool drawBackface
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(27)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(27)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
|
||||
[DispId(30)]
|
||||
float AnimationPhaseOffset
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(30)]
|
||||
get;
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(30)]
|
||||
[param: In]
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
namespace Decal.Interop.D3DService;
|
||||
|
||||
[ComImport]
|
||||
[Guid("0BB41679-549E-4916-8B70-6A7B3CA1A31C")]
|
||||
[SuppressUnmanagedCodeSecurity]
|
||||
[TypeLibType(4160)]
|
||||
public interface ID3DService
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(1)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
CD3DObj NewD3DObj();
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(2)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
CD3DObj PointToObject([In] int guid, [In] int color);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(3)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
CD3DObj PointToCoords([In] float lat, [In] float lng, [In] float alt, [In] int color);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(4)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
CD3DObj MarkObjectWithIcon([In] int guid, [In] int icon);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(5)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
CD3DObj MarkObjectWithIconFromFile([In] int guid, [In][MarshalAs(UnmanagedType.BStr)] string bstrFilename);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(6)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
CD3DObj MarkObjectWithShape([In] int guid, [In] eShape shape, [In] int color);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(7)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
CD3DObj MarkObjectWithShapeFromFile([In] int guid, [In][MarshalAs(UnmanagedType.BStr)] string bstrFilename, [In] int color);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(13)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
CD3DObj MarkObjectWith2DText([In] int guid, [In][MarshalAs(UnmanagedType.BStr)] string szText, [In][MarshalAs(UnmanagedType.BStr)] string szFont, [In] int options = 0);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(14)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
CD3DObj MarkObjectWith3DText([In] int guid, [In][MarshalAs(UnmanagedType.BStr)] string szText, [In][MarshalAs(UnmanagedType.BStr)] string szFont, [In] int options = 0);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(8)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
CD3DObj MarkCoordsWithIcon([In] float lat, [In] float lng, [In] float alt, [In] int icon);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(9)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
CD3DObj MarkCoordsWithIconFromFile([In] float lat, [In] float lng, [In] float alt, [In][MarshalAs(UnmanagedType.BStr)] string bstrFilename);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(10)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
CD3DObj MarkCoordsWithShape([In] float lat, [In] float lng, [In] float alt, [In] eShape shape, [In] int color);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(11)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
CD3DObj MarkCoordsWithShapeFromFile([In] float lat, [In] float lng, [In] float alt, [In][MarshalAs(UnmanagedType.BStr)] string bstrFilename, [In] int color);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(15)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
CD3DObj MarkCoordsWith2DText([In] float lat, [In] float lng, [In] float alt, [In][MarshalAs(UnmanagedType.BStr)] string szText, [In][MarshalAs(UnmanagedType.BStr)] string szFont, [In] int options = 0);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(16)]
|
||||
[return: MarshalAs(UnmanagedType.Interface)]
|
||||
CD3DObj MarkCoordsWith3DText([In] float lat, [In] float lng, [In] float alt, [In][MarshalAs(UnmanagedType.BStr)] string szText, [In][MarshalAs(UnmanagedType.BStr)] string szFont, [In] int options = 0);
|
||||
|
||||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
|
||||
[DispId(12)]
|
||||
void TraceOneFrame();
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
namespace Decal.Interop.D3DService;
|
||||
|
||||
public enum eShape
|
||||
{
|
||||
eHArrow,
|
||||
eVArrow,
|
||||
eRing,
|
||||
eCylinder,
|
||||
eSphere,
|
||||
eCube,
|
||||
eTiltedCube
|
||||
}
|
||||
10
Managed/Decal.Interop.D3DService/Properties/AssemblyInfo.cs
Normal file
10
Managed/Decal.Interop.D3DService/Properties/AssemblyInfo.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
|
||||
[assembly: Guid("8f6ef6ad-e982-40a4-b6cc-79e80b77313b")]
|
||||
[assembly: PrimaryInteropAssembly(1, 0)]
|
||||
[assembly: SecurityRules(SecurityRuleSet.Level2)]
|
||||
[assembly: ImportedFromTypeLib("D3DService")]
|
||||
[assembly: TypeLibVersion(1, 0)]
|
||||
[assembly: AssemblyVersion("2.9.8.3")]
|
||||
Loading…
Add table
Add a link
Reference in a new issue