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:
erik 2026-02-08 18:27:56 +01:00
commit d1442e3747
1382 changed files with 170725 additions and 0 deletions

View file

@ -0,0 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<AssemblyName>Decal.Interop.Filters</AssemblyName>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Decal.Interop.Net\Decal.Interop.Net.csproj" />
</ItemGroup>
</Project>

View file

@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComImport]
[CoClass(typeof(AllegianceInfoClass))]
[Guid("C8A16199-B649-41F3-BFCA-A1BD6E2E1F2C")]
public interface AllegianceInfo : IAllegianceInfo
{
}

View file

@ -0,0 +1,109 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("B2EB5B5A-5E3F-4F60-8BC0-BB729FFC04F6")]
[SuppressUnmanagedCodeSecurity]
[ClassInterface(ClassInterfaceType.None)]
public class AllegianceInfoClass : IAllegianceInfo, AllegianceInfo
{
[DispId(1)]
public virtual extern string Name
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(2)]
public virtual extern int GUID
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
get;
}
[DispId(3)]
public virtual extern int TreeParent
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(3)]
get;
}
[DispId(4)]
public virtual extern int Type
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(4)]
get;
}
[DispId(5)]
public virtual extern int XP
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(5)]
get;
}
[DispId(6)]
public virtual extern int Loyalty
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(6)]
get;
}
[DispId(7)]
public virtual extern int Leadership
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(7)]
get;
}
[DispId(8)]
public virtual extern int Gender
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(8)]
get;
}
[DispId(9)]
public virtual extern int Race
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(9)]
get;
}
[DispId(10)]
public virtual extern int Rank
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(10)]
get;
}
[DispId(11)]
public virtual extern double Unknown
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(11)]
get;
}
[DispId(12)]
public virtual extern long XP_64
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(12)]
get;
}
}

View file

@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComImport]
[CoClass(typeof(AttributeInfoClass))]
[Guid("B6496852-E977-4DA2-884D-09AFEA3D7582")]
public interface AttributeInfo : IAttributeInfo
{
}

View file

@ -0,0 +1,53 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[ClassInterface(ClassInterfaceType.None)]
[SuppressUnmanagedCodeSecurity]
[Guid("AF42E9D7-E3F3-416B-AF32-A411F3F6EE72")]
public class AttributeInfoClass : IAttributeInfo, AttributeInfo
{
[DispId(1)]
public virtual extern string Name
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(2)]
public virtual extern int Creation
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
get;
}
[DispId(3)]
public virtual extern int Exp
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(3)]
get;
}
[DispId(4)]
public virtual extern int Buffed
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(4)]
get;
}
[DispId(5)]
public virtual extern int Base
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(5)]
get;
}
}

View file

@ -0,0 +1,16 @@
namespace Decal.Interop.Filters;
public enum BoolValueKey
{
keyLockable = 201326592,
keyInscribable = 201326593,
keyOpen = 2,
keyLocked = 3,
keyHookVisibility = 24,
keyUnlimitedUses = 63,
keyCanBeSold = 69,
keyRetained = 91,
keyIvoryable = 99,
keyDyeable = 100,
keyAwayFromKeyboard = 110
}

View file

@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("0CE57594-4E30-4446-956D-CE460C7355AF")]
[CoClass(typeof(CharacterStatsClass))]
public interface CharacterStats : ICharacterStats, ICharacterStatsEvents_Event
{
}

View file

@ -0,0 +1,531 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[SuppressUnmanagedCodeSecurity]
[ComSourceInterfaces("Decal.Interop.Filters.ICharacterStatsEvents\0\0")]
[ClassInterface(ClassInterfaceType.None)]
[Guid("4540C969-08D1-46BF-97AD-6B19D3C10BEE")]
[TypeLibType(2)]
public class CharacterStatsClass : ICharacterStats, CharacterStats, ICharacterStatsEvents_Event
{
[DispId(1)]
public virtual extern int Character
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
get;
}
[DispId(2)]
public virtual extern int Level
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
get;
}
[DispId(3)]
public virtual extern int Rank
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(3)]
get;
}
[DispId(4)]
public virtual extern int TotalExp
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(4)]
get;
}
[DispId(5)]
public virtual extern int UnassignedExp
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(5)]
get;
}
[DispId(6)]
public virtual extern int SkillPoints
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(6)]
get;
}
[DispId(7)]
public virtual extern string Server
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(7)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(8)]
public virtual extern string Name
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(8)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(9)]
public virtual extern string Race
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(9)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(10)]
public virtual extern string Gender
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(10)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(11)]
public virtual extern string ClassTemplate
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(11)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(12)]
public virtual extern int AttributeCount
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(12)]
get;
}
[DispId(13)]
public virtual extern int SkillCount
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(13)]
get;
}
[DispId(14)]
public virtual extern int VitalCount
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(14)]
get;
}
[DispId(15)]
public virtual extern AttributeInfo Attribute
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(15)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(16)]
public virtual extern SkillInfo Skill
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(16)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(17)]
public virtual extern SkillInfo Vital
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(17)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(18)]
public virtual extern int SpellLearned
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(18)]
get;
}
[DispId(19)]
public virtual extern int TotalSpells
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(19)]
get;
}
[DispId(20)]
public virtual extern int Health
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(20)]
get;
}
[DispId(21)]
public virtual extern int Stamina
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(21)]
get;
}
[DispId(22)]
public virtual extern int Mana
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(22)]
get;
}
[DispId(23)]
public virtual extern int Birth
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(23)]
get;
}
[DispId(24)]
public virtual extern int Age
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(24)]
get;
}
[DispId(25)]
public virtual extern int Deaths
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(25)]
get;
}
[DispId(26)]
public virtual extern int VassalCount
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(26)]
get;
}
[DispId(27)]
public virtual extern AllegianceInfo Monarch
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(27)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(28)]
public virtual extern AllegianceInfo Patron
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(28)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(29)]
public virtual extern AllegianceInfo MyAllegiance
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(29)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(30)]
public virtual extern AllegianceInfo Vassal
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(30)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(31)]
public virtual extern int Followers
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(31)]
get;
}
[DispId(32)]
public virtual extern int MonarchFollowers
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(32)]
get;
}
[DispId(33)]
public virtual extern int EnchantmentCount
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(33)]
get;
}
[DispId(34)]
public virtual extern Enchantment Enchantment
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(34)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(35)]
public virtual extern int EffectiveAttribute
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(35)]
get;
}
[DispId(36)]
public virtual extern int EffectiveSkill
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(36)]
get;
}
[DispId(37)]
public virtual extern int EffectiveVital
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(37)]
get;
}
[DispId(38)]
public virtual extern int Vitae
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(38)]
get;
}
[DispId(39)]
public virtual extern int BurdenUnits
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(39)]
get;
}
[DispId(40)]
public virtual extern int Burden
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(40)]
get;
}
[DispId(41)]
public virtual extern long TotalXP_64
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(41)]
get;
}
[DispId(42)]
public virtual extern long UnassignedXP_64
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(42)]
get;
}
[DispId(43)]
public virtual extern int LoginStatus
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(43)]
get;
}
[DispId(44)]
public virtual extern int ServerPopulation
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(44)]
get;
}
[DispId(45)]
public virtual extern string AccountName
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(45)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(46)]
public virtual extern int AccountCharCount
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(46)]
get;
}
[DispId(47)]
public virtual extern int AccountCharID
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(47)]
get;
}
[DispId(48)]
public virtual extern string AccountCharName
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(48)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(49)]
public virtual extern int Quickslots
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(49)]
get;
}
[DispId(50)]
public virtual extern int CharacterOptions
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(50)]
get;
}
[DispId(51)]
public virtual extern uint XPToNextLevel
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(51)]
get;
}
[DispId(57)]
public virtual extern int[] SpellbookArray
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(57)]
[TypeLibFunc(64)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_I4)]
get;
}
[DispId(58)]
public virtual extern int[] AugmentationArray
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(58)]
[TypeLibFunc(64)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_I4)]
get;
}
[DispId(60)]
public virtual extern int CharacterOptionFlags
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(60)]
get;
}
public virtual extern event ICharacterStatsEvents_LoginEventHandler Login;
public virtual extern event ICharacterStatsEvents_Spellbook_AddEventHandler Spellbook_Add;
public virtual extern event ICharacterStatsEvents_Spellbook_DeleteEventHandler Spellbook_Delete;
public virtual extern event ICharacterStatsEvents_LoginCompleteEventHandler LoginComplete;
public virtual extern event ICharacterStatsEvents_ActionCompleteEventHandler ActionComplete;
public virtual extern event ICharacterStatsEvents_StatusMessageEventHandler StatusMessage;
public virtual extern event ICharacterStatsEvents_DeathEventHandler Death;
public virtual extern event ICharacterStatsEvents_ChangePortalModeEventHandler ChangePortalMode;
public virtual extern event ICharacterStatsEvents_ChangeEnchantmentsEventHandler ChangeEnchantments;
public virtual extern event ICharacterStatsEvents_ChangePlayerEventHandler ChangePlayer;
public virtual extern event ICharacterStatsEvents_ChangeVitalEventHandler ChangeVital;
public virtual extern event ICharacterStatsEvents_ChangeXPSEventHandler ChangeXPS;
public virtual extern event ICharacterStatsEvents_ChangeFellowshipEventHandler ChangeFellowship;
public virtual extern event ICharacterStatsEvents_LogoffEventHandler Logoff;
public virtual extern event ICharacterStatsEvents_CastSpellEventHandler CastSpell;
public virtual extern event ICharacterStatsEvents_ChangeShortcutEventHandler ChangeShortcut;
public virtual extern event ICharacterStatsEvents_ChangeSpellbarEventHandler ChangeSpellbar;
public virtual extern event ICharacterStatsEvents_ChangeSettingsEventHandler ChangeSettings;
public virtual extern event ICharacterStatsEvents_ChangeSettingFlagsEventHandler ChangeSettingFlags;
public virtual extern event ICharacterStatsEvents_ChangeOptionEventHandler ChangeOption;
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(52)]
public virtual extern bool AugmentationExists([In] eAugmentations key, out int pValue);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(53)]
public virtual extern int SpellBarCount([In] int barNumber);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(54)]
public virtual extern int SpellBar([In] int barNumber, [In] int index);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(55)]
public virtual extern int AugmentationCount();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(56)]
public virtual extern int Augmentation([In] int index);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[TypeLibFunc(64)]
[DispId(59)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_I4)]
public virtual extern int[] SpellBarArray([In] int barNumber);
}

View file

@ -0,0 +1,29 @@
namespace Decal.Interop.Filters;
public enum DoubleValueKey
{
keySlashProt = 167772160,
keyPierceProt = 167772161,
keyBludgeonProt = 167772162,
keyAcidProt = 167772163,
keyLightningProt = 167772164,
keyFireProt = 167772165,
keyColdProt = 167772166,
keyHeading = 167772167,
keyApproachDistance = 167772168,
keySalvageWorkmanship = 167772169,
keyScale = 167772170,
keyVariance = 167772171,
keyAttackBonus = 167772172,
keyRange = 167772173,
keyDamageBonus = 167772174,
keyManaRateOfChange = 5,
keyMeleeDefenseBonus = 29,
keyManaTransferEfficiency = 87,
keyHealingKitRestoreBonus = 100,
keyManaStoneChanceDestruct = 137,
keyManaCBonus = 144,
keyMissileDBonus = 149,
keyMagicDBonus = 150,
keyElemDmgVsMonsters = 152
}

View file

@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("7B7FEF07-DAE2-46F3-AC71-7E47F8EF3A44")]
[CoClass(typeof(EchoFilterClass))]
public interface EchoFilter : IEcho, IEchoSink_Event
{
}

View file

@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("002C8BAE-917E-4978-B223-B45B3E8B15E6")]
[CoClass(typeof(EchoFilter2Class))]
public interface EchoFilter2 : IEcho2, IEchoSink2_Event
{
}

View file

@ -0,0 +1,17 @@
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[SuppressUnmanagedCodeSecurity]
[ClassInterface(ClassInterfaceType.None)]
[ComSourceInterfaces("Decal.Interop.Filters.IEchoSink2\0\0")]
[Guid("34239EAD-6317-4C40-A405-193BA5232DD8")]
[TypeLibType(2)]
public class EchoFilter2Class : IEcho2, EchoFilter2, IEchoSink2_Event
{
public virtual extern event IEchoSink2_EchoServerEventHandler EchoServer;
public virtual extern event IEchoSink2_EchoClientEventHandler EchoClient;
}

View file

@ -0,0 +1,15 @@
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("8C2FA400-315D-41DE-B063-D6EF04F12E1F")]
[ComSourceInterfaces("Decal.Interop.Filters.IEchoSink\0\0")]
[SuppressUnmanagedCodeSecurity]
[ClassInterface(ClassInterfaceType.None)]
[TypeLibType(2)]
public class EchoFilterClass : IEcho, EchoFilter, IEchoSink_Event
{
public virtual extern event IEchoSink_EchoMessageEventHandler EchoMessage;
}

View file

@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComImport]
[CoClass(typeof(EnchantmentClass))]
[Guid("B83155F4-E298-4004-80C6-AA592F677430")]
public interface Enchantment : IEnchantment
{
}

View file

@ -0,0 +1,76 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[ClassInterface(ClassInterfaceType.None)]
[SuppressUnmanagedCodeSecurity]
[Guid("5DCF056E-B7F5-4AEB-93A0-628617B28488")]
public class EnchantmentClass : IEnchantment, Enchantment
{
[DispId(1)]
public virtual extern int SpellID
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
get;
}
[DispId(2)]
public virtual extern int Layer
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
get;
}
[DispId(3)]
public virtual extern int TimeRemaining
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(3)]
get;
}
[DispId(4)]
public virtual extern int Affected
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(4)]
get;
}
[DispId(5)]
public virtual extern int AffectedMask
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(5)]
get;
}
[DispId(6)]
public virtual extern int Family
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(6)]
get;
}
[DispId(7)]
public virtual extern double Adjustment
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(7)]
get;
}
[DispId(8)]
public virtual extern double Duration
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(8)]
get;
}
}

View file

@ -0,0 +1,109 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[TypeLibType(4160)]
[SuppressUnmanagedCodeSecurity]
[Guid("C8A16199-B649-41F3-BFCA-A1BD6E2E1F2C")]
public interface IAllegianceInfo
{
[DispId(1)]
string Name
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(2)]
int GUID
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
get;
}
[DispId(3)]
int TreeParent
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(3)]
get;
}
[DispId(4)]
int Type
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(4)]
get;
}
[DispId(5)]
int XP
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(5)]
get;
}
[DispId(6)]
int Loyalty
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(6)]
get;
}
[DispId(7)]
int Leadership
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(7)]
get;
}
[DispId(8)]
int Gender
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(8)]
get;
}
[DispId(9)]
int Race
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(9)]
get;
}
[DispId(10)]
int Rank
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(10)]
get;
}
[DispId(11)]
double Unknown
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(11)]
get;
}
[DispId(12)]
long XP_64
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(12)]
get;
}
}

View file

@ -0,0 +1,53 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[TypeLibType(4160)]
[SuppressUnmanagedCodeSecurity]
[Guid("B6496852-E977-4DA2-884D-09AFEA3D7582")]
public interface IAttributeInfo
{
[DispId(1)]
string Name
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(2)]
int Creation
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
get;
}
[DispId(3)]
int Exp
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(3)]
get;
}
[DispId(4)]
int Buffed
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(4)]
get;
}
[DispId(5)]
int Base
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(5)]
get;
}
}

View file

@ -0,0 +1,489 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[TypeLibType(4160)]
[SuppressUnmanagedCodeSecurity]
[Guid("0CE57594-4E30-4446-956D-CE460C7355AF")]
public interface ICharacterStats
{
[DispId(1)]
int Character
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
get;
}
[DispId(2)]
int Level
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
get;
}
[DispId(3)]
int Rank
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(3)]
get;
}
[DispId(4)]
int TotalExp
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(4)]
get;
}
[DispId(5)]
int UnassignedExp
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(5)]
get;
}
[DispId(6)]
int SkillPoints
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(6)]
get;
}
[DispId(7)]
string Server
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(7)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(8)]
string Name
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(8)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(9)]
string Race
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(9)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(10)]
string Gender
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(10)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(11)]
string ClassTemplate
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(11)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(12)]
int AttributeCount
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(12)]
get;
}
[DispId(13)]
int SkillCount
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(13)]
get;
}
[DispId(14)]
int VitalCount
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(14)]
get;
}
[DispId(15)]
AttributeInfo Attribute
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(15)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(16)]
SkillInfo Skill
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(16)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(17)]
SkillInfo Vital
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(17)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(18)]
int SpellLearned
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(18)]
get;
}
[DispId(19)]
int TotalSpells
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(19)]
get;
}
[DispId(20)]
int Health
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(20)]
get;
}
[DispId(21)]
int Stamina
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(21)]
get;
}
[DispId(22)]
int Mana
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(22)]
get;
}
[DispId(23)]
int Birth
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(23)]
get;
}
[DispId(24)]
int Age
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(24)]
get;
}
[DispId(25)]
int Deaths
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(25)]
get;
}
[DispId(26)]
int VassalCount
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(26)]
get;
}
[DispId(27)]
AllegianceInfo Monarch
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(27)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(28)]
AllegianceInfo Patron
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(28)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(29)]
AllegianceInfo MyAllegiance
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(29)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(30)]
AllegianceInfo Vassal
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(30)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(31)]
int Followers
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(31)]
get;
}
[DispId(32)]
int MonarchFollowers
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(32)]
get;
}
[DispId(33)]
int EnchantmentCount
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(33)]
get;
}
[DispId(34)]
Enchantment Enchantment
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(34)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(35)]
int EffectiveAttribute
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(35)]
get;
}
[DispId(36)]
int EffectiveSkill
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(36)]
get;
}
[DispId(37)]
int EffectiveVital
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(37)]
get;
}
[DispId(38)]
int Vitae
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(38)]
get;
}
[DispId(39)]
int BurdenUnits
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(39)]
get;
}
[DispId(40)]
int Burden
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(40)]
get;
}
[DispId(41)]
long TotalXP_64
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(41)]
get;
}
[DispId(42)]
long UnassignedXP_64
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(42)]
get;
}
[DispId(43)]
int LoginStatus
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(43)]
get;
}
[DispId(44)]
int ServerPopulation
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(44)]
get;
}
[DispId(45)]
string AccountName
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(45)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(46)]
int AccountCharCount
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(46)]
get;
}
[DispId(47)]
int AccountCharID
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(47)]
get;
}
[DispId(48)]
string AccountCharName
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(48)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(49)]
int Quickslots
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(49)]
get;
}
[DispId(50)]
int CharacterOptions
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(50)]
get;
}
[DispId(51)]
uint XPToNextLevel
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(51)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(52)]
bool AugmentationExists([In] eAugmentations key, out int pValue);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(53)]
int SpellBarCount([In] int barNumber);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(54)]
int SpellBar([In] int barNumber, [In] int index);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(55)]
int AugmentationCount();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(56)]
int Augmentation([In] int index);
[DispId(57)]
int[] SpellbookArray
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[TypeLibFunc(64)]
[DispId(57)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_I4)]
get;
}
[DispId(58)]
int[] AugmentationArray
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[TypeLibFunc(64)]
[DispId(58)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_I4)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(59)]
[TypeLibFunc(64)]
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_I4)]
int[] SpellBarArray([In] int barNumber);
[DispId(60)]
int CharacterOptionFlags
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(60)]
get;
}
}

View file

@ -0,0 +1,93 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[TypeLibType(4096)]
[InterfaceType(2)]
[Guid("0B60F187-13CD-4E35-B8A2-FE128F05CA6B")]
[SuppressUnmanagedCodeSecurity]
public interface ICharacterStatsEvents
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
void Login(int Character);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
void Spellbook_Add(int SpellAdded);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(3)]
void Spellbook_Delete(int SpellDeleted);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(4)]
void LoginComplete();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(5)]
void ActionComplete();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(6)]
void StatusMessage(int lType, [MarshalAs(UnmanagedType.BStr)] string bstrText);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(7)]
void Death([MarshalAs(UnmanagedType.BStr)] string bstrText);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(8)]
void ChangePortalMode(PlayerPortalType Change);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(9)]
void ChangeEnchantments(PlayerAddRemoveType Change, [MarshalAs(UnmanagedType.Interface)] Enchantment Enchantment);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(10)]
void ChangePlayer(PlayerModifyType Change, int StatID);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(11)]
void ChangeVital(PlayerVitalType Change, int Amount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(12)]
void ChangeXPS(PlayerXPType Change, int Amount);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(13)]
void ChangeFellowship(PlayerFellowshipType Change, int Character);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(14)]
void Logoff(PlayerLogoffType Type);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(15)]
void CastSpell(PlayerCastType Type, int SpellID, int TargetID);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(16)]
void ChangeShortcut(PlayerAddRemoveType Change, int Slot, int ObjectID);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(17)]
void ChangeSpellbar(PlayerAddRemoveType Change, int Tab, int Slot, int SpellID);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(18)]
void ChangeSettings(int Settings);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(19)]
void ChangeSettingFlags(int Settings);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(20)]
void ChangeOption(int key, int value);
}

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_ActionCompleteEventHandler();

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_CastSpellEventHandler(PlayerCastType Type, int SpellID, int TargetID);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_ChangeEnchantmentsEventHandler(PlayerAddRemoveType Change, [MarshalAs(UnmanagedType.Interface)] Enchantment Enchantment);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_ChangeFellowshipEventHandler(PlayerFellowshipType Change, int Character);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_ChangeOptionEventHandler(int key, int value);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_ChangePlayerEventHandler(PlayerModifyType Change, int StatID);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_ChangePortalModeEventHandler(PlayerPortalType Change);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_ChangeSettingFlagsEventHandler(int Settings);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_ChangeSettingsEventHandler(int Settings);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_ChangeShortcutEventHandler(PlayerAddRemoveType Change, int Slot, int ObjectID);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_ChangeSpellbarEventHandler(PlayerAddRemoveType Change, int Tab, int Slot, int SpellID);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_ChangeVitalEventHandler(PlayerVitalType Change, int Amount);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_ChangeXPSEventHandler(PlayerXPType Change, int Amount);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_DeathEventHandler([MarshalAs(UnmanagedType.BStr)] string bstrText);

View file

@ -0,0 +1,48 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[TypeLibType(16)]
[ComVisible(false)]
public interface ICharacterStatsEvents_Event
{
event ICharacterStatsEvents_LoginEventHandler Login;
event ICharacterStatsEvents_Spellbook_AddEventHandler Spellbook_Add;
event ICharacterStatsEvents_Spellbook_DeleteEventHandler Spellbook_Delete;
event ICharacterStatsEvents_LoginCompleteEventHandler LoginComplete;
event ICharacterStatsEvents_ActionCompleteEventHandler ActionComplete;
event ICharacterStatsEvents_StatusMessageEventHandler StatusMessage;
event ICharacterStatsEvents_DeathEventHandler Death;
event ICharacterStatsEvents_ChangePortalModeEventHandler ChangePortalMode;
event ICharacterStatsEvents_ChangeEnchantmentsEventHandler ChangeEnchantments;
event ICharacterStatsEvents_ChangePlayerEventHandler ChangePlayer;
event ICharacterStatsEvents_ChangeVitalEventHandler ChangeVital;
event ICharacterStatsEvents_ChangeXPSEventHandler ChangeXPS;
event ICharacterStatsEvents_ChangeFellowshipEventHandler ChangeFellowship;
event ICharacterStatsEvents_LogoffEventHandler Logoff;
event ICharacterStatsEvents_CastSpellEventHandler CastSpell;
event ICharacterStatsEvents_ChangeShortcutEventHandler ChangeShortcut;
event ICharacterStatsEvents_ChangeSpellbarEventHandler ChangeSpellbar;
event ICharacterStatsEvents_ChangeSettingsEventHandler ChangeSettings;
event ICharacterStatsEvents_ChangeSettingFlagsEventHandler ChangeSettingFlags;
event ICharacterStatsEvents_ChangeOptionEventHandler ChangeOption;
}

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_LoginCompleteEventHandler();

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_LoginEventHandler(int Character);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_LogoffEventHandler(PlayerLogoffType Type);

View file

@ -0,0 +1,256 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[TypeLibType(TypeLibTypeFlags.FHidden)]
[ClassInterface(ClassInterfaceType.None)]
public sealed class ICharacterStatsEvents_SinkHelper : ICharacterStatsEvents
{
public ICharacterStatsEvents_LoginEventHandler m_LoginDelegate;
public ICharacterStatsEvents_Spellbook_AddEventHandler m_Spellbook_AddDelegate;
public ICharacterStatsEvents_Spellbook_DeleteEventHandler m_Spellbook_DeleteDelegate;
public ICharacterStatsEvents_LoginCompleteEventHandler m_LoginCompleteDelegate;
public ICharacterStatsEvents_ActionCompleteEventHandler m_ActionCompleteDelegate;
public ICharacterStatsEvents_StatusMessageEventHandler m_StatusMessageDelegate;
public ICharacterStatsEvents_DeathEventHandler m_DeathDelegate;
public ICharacterStatsEvents_ChangePortalModeEventHandler m_ChangePortalModeDelegate;
public ICharacterStatsEvents_ChangeEnchantmentsEventHandler m_ChangeEnchantmentsDelegate;
public ICharacterStatsEvents_ChangePlayerEventHandler m_ChangePlayerDelegate;
public ICharacterStatsEvents_ChangeVitalEventHandler m_ChangeVitalDelegate;
public ICharacterStatsEvents_ChangeXPSEventHandler m_ChangeXPSDelegate;
public ICharacterStatsEvents_ChangeFellowshipEventHandler m_ChangeFellowshipDelegate;
public ICharacterStatsEvents_LogoffEventHandler m_LogoffDelegate;
public ICharacterStatsEvents_CastSpellEventHandler m_CastSpellDelegate;
public ICharacterStatsEvents_ChangeShortcutEventHandler m_ChangeShortcutDelegate;
public ICharacterStatsEvents_ChangeSpellbarEventHandler m_ChangeSpellbarDelegate;
public ICharacterStatsEvents_ChangeSettingsEventHandler m_ChangeSettingsDelegate;
public ICharacterStatsEvents_ChangeSettingFlagsEventHandler m_ChangeSettingFlagsDelegate;
public ICharacterStatsEvents_ChangeOptionEventHandler m_ChangeOptionDelegate;
public int m_dwCookie;
public void Login(int P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_LoginDelegate != null)
{
m_LoginDelegate(P_0);
}
}
public void Spellbook_Add(int P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_Spellbook_AddDelegate != null)
{
m_Spellbook_AddDelegate(P_0);
}
}
public void Spellbook_Delete(int P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_Spellbook_DeleteDelegate != null)
{
m_Spellbook_DeleteDelegate(P_0);
}
}
public void LoginComplete()
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_LoginCompleteDelegate != null)
{
m_LoginCompleteDelegate();
}
}
public void ActionComplete()
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ActionCompleteDelegate != null)
{
m_ActionCompleteDelegate();
}
}
public void StatusMessage(int P_0, string P_1)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_StatusMessageDelegate != null)
{
m_StatusMessageDelegate(P_0, P_1);
}
}
public void Death(string P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_DeathDelegate != null)
{
m_DeathDelegate(P_0);
}
}
public void ChangePortalMode(PlayerPortalType P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ChangePortalModeDelegate != null)
{
m_ChangePortalModeDelegate(P_0);
}
}
public void ChangeEnchantments(PlayerAddRemoveType P_0, Enchantment P_1)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ChangeEnchantmentsDelegate != null)
{
m_ChangeEnchantmentsDelegate(P_0, P_1);
}
}
public void ChangePlayer(PlayerModifyType P_0, int P_1)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ChangePlayerDelegate != null)
{
m_ChangePlayerDelegate(P_0, P_1);
}
}
public void ChangeVital(PlayerVitalType P_0, int P_1)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ChangeVitalDelegate != null)
{
m_ChangeVitalDelegate(P_0, P_1);
}
}
public void ChangeXPS(PlayerXPType P_0, int P_1)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ChangeXPSDelegate != null)
{
m_ChangeXPSDelegate(P_0, P_1);
}
}
public void ChangeFellowship(PlayerFellowshipType P_0, int P_1)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ChangeFellowshipDelegate != null)
{
m_ChangeFellowshipDelegate(P_0, P_1);
}
}
public void Logoff(PlayerLogoffType P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_LogoffDelegate != null)
{
m_LogoffDelegate(P_0);
}
}
public void CastSpell(PlayerCastType P_0, int P_1, int P_2)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_CastSpellDelegate != null)
{
m_CastSpellDelegate(P_0, P_1, P_2);
}
}
public void ChangeShortcut(PlayerAddRemoveType P_0, int P_1, int P_2)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ChangeShortcutDelegate != null)
{
m_ChangeShortcutDelegate(P_0, P_1, P_2);
}
}
public void ChangeSpellbar(PlayerAddRemoveType P_0, int P_1, int P_2, int P_3)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ChangeSpellbarDelegate != null)
{
m_ChangeSpellbarDelegate(P_0, P_1, P_2, P_3);
}
}
public void ChangeSettings(int P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ChangeSettingsDelegate != null)
{
m_ChangeSettingsDelegate(P_0);
}
}
public void ChangeSettingFlags(int P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ChangeSettingFlagsDelegate != null)
{
m_ChangeSettingFlagsDelegate(P_0);
}
}
public void ChangeOption(int P_0, int P_1)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ChangeOptionDelegate != null)
{
m_ChangeOptionDelegate(P_0, P_1);
}
}
internal ICharacterStatsEvents_SinkHelper()
{
//Error decoding local variables: Signature type sequence must have at least one element.
m_dwCookie = 0;
m_LoginDelegate = null;
m_Spellbook_AddDelegate = null;
m_Spellbook_DeleteDelegate = null;
m_LoginCompleteDelegate = null;
m_ActionCompleteDelegate = null;
m_StatusMessageDelegate = null;
m_DeathDelegate = null;
m_ChangePortalModeDelegate = null;
m_ChangeEnchantmentsDelegate = null;
m_ChangePlayerDelegate = null;
m_ChangeVitalDelegate = null;
m_ChangeXPSDelegate = null;
m_ChangeFellowshipDelegate = null;
m_LogoffDelegate = null;
m_CastSpellDelegate = null;
m_ChangeShortcutDelegate = null;
m_ChangeSpellbarDelegate = null;
m_ChangeSettingsDelegate = null;
m_ChangeSettingFlagsDelegate = null;
m_ChangeOptionDelegate = null;
}
}

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_Spellbook_AddEventHandler(int SpellAdded);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_Spellbook_DeleteEventHandler(int SpellDeleted);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void ICharacterStatsEvents_StatusMessageEventHandler(int lType, [MarshalAs(UnmanagedType.BStr)] string bstrText);

View file

@ -0,0 +1,12 @@
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("7B7FEF07-DAE2-46F3-AC71-7E47F8EF3A44")]
[SuppressUnmanagedCodeSecurity]
[TypeLibType(4160)]
public interface IEcho
{
}

View file

@ -0,0 +1,12 @@
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("002C8BAE-917E-4978-B223-B45B3E8B15E6")]
[TypeLibType(4160)]
[SuppressUnmanagedCodeSecurity]
public interface IEcho2
{
}

View file

@ -0,0 +1,18 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
using Decal.Interop.Net;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("236B3F19-8F40-492B-A462-0EB4447A6296")]
[SuppressUnmanagedCodeSecurity]
[TypeLibType(4096)]
[InterfaceType(2)]
public interface IEchoSink
{
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
void EchoMessage([MarshalAs(UnmanagedType.Interface)] IMessage pMsg);
}

View file

@ -0,0 +1,22 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
using Decal.Interop.Net;
namespace Decal.Interop.Filters;
[ComImport]
[InterfaceType(2)]
[SuppressUnmanagedCodeSecurity]
[TypeLibType(4096)]
[Guid("6C9BCC85-BAD0-4706-9CC5-D491E43F81C4")]
public interface IEchoSink2
{
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
void EchoServer([MarshalAs(UnmanagedType.Interface)] IMessage2 pMsg);
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
void EchoClient([MarshalAs(UnmanagedType.Interface)] IMessage2 pMsg);
}

View file

@ -0,0 +1,7 @@
using System.Runtime.InteropServices;
using Decal.Interop.Net;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IEchoSink2_EchoClientEventHandler([MarshalAs(UnmanagedType.Interface)] IMessage2 pMsg);

View file

@ -0,0 +1,7 @@
using System.Runtime.InteropServices;
using Decal.Interop.Net;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IEchoSink2_EchoServerEventHandler([MarshalAs(UnmanagedType.Interface)] IMessage2 pMsg);

View file

@ -0,0 +1,12 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[TypeLibType(16)]
[ComVisible(false)]
public interface IEchoSink2_Event
{
event IEchoSink2_EchoServerEventHandler EchoServer;
event IEchoSink2_EchoClientEventHandler EchoClient;
}

View file

@ -0,0 +1,230 @@
using System;
using System.Collections;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
using System.Threading;
namespace Decal.Interop.Filters;
internal sealed class IEchoSink2_EventProvider : IEchoSink2_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]
{
133, 204, 155, 108, 208, 186, 6, 71, 156, 197,
212, 145, 228, 63, 129, 196
});
m_ConnectionPointContainer.FindConnectionPoint(ref riid, out ppCP);
m_ConnectionPoint = ppCP;
m_aEventSinkHelpers = new ArrayList();
}
event IEchoSink2_EchoServerEventHandler IEchoSink2_Event.EchoServer
{
add
{
bool lockTaken = default(bool);
try
{
Monitor.Enter(this, ref lockTaken);
if (m_ConnectionPoint == null)
{
Init();
}
IEchoSink2_SinkHelper echoSink2_SinkHelper = new IEchoSink2_SinkHelper();
int pdwCookie = 0;
m_ConnectionPoint.Advise(echoSink2_SinkHelper, out pdwCookie);
echoSink2_SinkHelper.m_dwCookie = pdwCookie;
echoSink2_SinkHelper.m_EchoServerDelegate = value;
m_aEventSinkHelpers.Add(echoSink2_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
{
IEchoSink2_SinkHelper echoSink2_SinkHelper = (IEchoSink2_SinkHelper)m_aEventSinkHelpers[num];
if (echoSink2_SinkHelper.m_EchoServerDelegate != null && ((echoSink2_SinkHelper.m_EchoServerDelegate.Equals(value) ? 1u : 0u) & 0xFFu) != 0)
{
m_aEventSinkHelpers.RemoveAt(num);
m_ConnectionPoint.Unadvise(echoSink2_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 IEchoSink2_EchoClientEventHandler IEchoSink2_Event.EchoClient
{
add
{
bool lockTaken = default(bool);
try
{
Monitor.Enter(this, ref lockTaken);
if (m_ConnectionPoint == null)
{
Init();
}
IEchoSink2_SinkHelper echoSink2_SinkHelper = new IEchoSink2_SinkHelper();
int pdwCookie = 0;
m_ConnectionPoint.Advise(echoSink2_SinkHelper, out pdwCookie);
echoSink2_SinkHelper.m_dwCookie = pdwCookie;
echoSink2_SinkHelper.m_EchoClientDelegate = value;
m_aEventSinkHelpers.Add(echoSink2_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
{
IEchoSink2_SinkHelper echoSink2_SinkHelper = (IEchoSink2_SinkHelper)m_aEventSinkHelpers[num];
if (echoSink2_SinkHelper.m_EchoClientDelegate != null && ((echoSink2_SinkHelper.m_EchoClientDelegate.Equals(value) ? 1u : 0u) & 0xFFu) != 0)
{
m_aEventSinkHelpers.RemoveAt(num);
m_ConnectionPoint.Unadvise(echoSink2_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 IEchoSink2_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
{
IEchoSink2_SinkHelper echoSink2_SinkHelper = (IEchoSink2_SinkHelper)m_aEventSinkHelpers[num];
m_ConnectionPoint.Unadvise(echoSink2_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);
}
}

View file

@ -0,0 +1,41 @@
using System.Runtime.InteropServices;
using Decal.Interop.Net;
namespace Decal.Interop.Filters;
[ClassInterface(ClassInterfaceType.None)]
[TypeLibType(TypeLibTypeFlags.FHidden)]
public sealed class IEchoSink2_SinkHelper : IEchoSink2
{
public IEchoSink2_EchoServerEventHandler m_EchoServerDelegate;
public IEchoSink2_EchoClientEventHandler m_EchoClientDelegate;
public int m_dwCookie;
public void EchoServer(IMessage2 P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_EchoServerDelegate != null)
{
m_EchoServerDelegate(P_0);
}
}
public void EchoClient(IMessage2 P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_EchoClientDelegate != null)
{
m_EchoClientDelegate(P_0);
}
}
internal IEchoSink2_SinkHelper()
{
//Error decoding local variables: Signature type sequence must have at least one element.
m_dwCookie = 0;
m_EchoServerDelegate = null;
m_EchoClientDelegate = null;
}
}

View file

@ -0,0 +1,7 @@
using System.Runtime.InteropServices;
using Decal.Interop.Net;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IEchoSink_EchoMessageEventHandler([MarshalAs(UnmanagedType.Interface)] IMessage pMsg);

View file

@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[TypeLibType(16)]
[ComVisible(false)]
public interface IEchoSink_Event
{
event IEchoSink_EchoMessageEventHandler EchoMessage;
}

View file

@ -0,0 +1,154 @@
using System;
using System.Collections;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
using System.Threading;
namespace Decal.Interop.Filters;
internal sealed class IEchoSink_EventProvider : IEchoSink_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]
{
25, 63, 107, 35, 64, 143, 43, 73, 164, 98,
14, 180, 68, 122, 98, 150
});
m_ConnectionPointContainer.FindConnectionPoint(ref riid, out ppCP);
m_ConnectionPoint = ppCP;
m_aEventSinkHelpers = new ArrayList();
}
event IEchoSink_EchoMessageEventHandler IEchoSink_Event.EchoMessage
{
add
{
bool lockTaken = default(bool);
try
{
Monitor.Enter(this, ref lockTaken);
if (m_ConnectionPoint == null)
{
Init();
}
IEchoSink_SinkHelper echoSink_SinkHelper = new IEchoSink_SinkHelper();
int pdwCookie = 0;
m_ConnectionPoint.Advise(echoSink_SinkHelper, out pdwCookie);
echoSink_SinkHelper.m_dwCookie = pdwCookie;
echoSink_SinkHelper.m_EchoMessageDelegate = value;
m_aEventSinkHelpers.Add(echoSink_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
{
IEchoSink_SinkHelper echoSink_SinkHelper = (IEchoSink_SinkHelper)m_aEventSinkHelpers[num];
if (echoSink_SinkHelper.m_EchoMessageDelegate != null && ((echoSink_SinkHelper.m_EchoMessageDelegate.Equals(value) ? 1u : 0u) & 0xFFu) != 0)
{
m_aEventSinkHelpers.RemoveAt(num);
m_ConnectionPoint.Unadvise(echoSink_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 IEchoSink_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
{
IEchoSink_SinkHelper echoSink_SinkHelper = (IEchoSink_SinkHelper)m_aEventSinkHelpers[num];
m_ConnectionPoint.Unadvise(echoSink_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);
}
}

View file

@ -0,0 +1,29 @@
using System.Runtime.InteropServices;
using Decal.Interop.Net;
namespace Decal.Interop.Filters;
[TypeLibType(TypeLibTypeFlags.FHidden)]
[ClassInterface(ClassInterfaceType.None)]
public sealed class IEchoSink_SinkHelper : IEchoSink
{
public IEchoSink_EchoMessageEventHandler m_EchoMessageDelegate;
public int m_dwCookie;
public void EchoMessage(IMessage P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_EchoMessageDelegate != null)
{
m_EchoMessageDelegate(P_0);
}
}
internal IEchoSink_SinkHelper()
{
//Error decoding local variables: Signature type sequence must have at least one element.
m_dwCookie = 0;
m_EchoMessageDelegate = null;
}
}

View file

@ -0,0 +1,76 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("B83155F4-E298-4004-80C6-AA592F677430")]
[TypeLibType(4160)]
[SuppressUnmanagedCodeSecurity]
public interface IEnchantment
{
[DispId(1)]
int SpellID
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
get;
}
[DispId(2)]
int Layer
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
get;
}
[DispId(3)]
int TimeRemaining
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(3)]
get;
}
[DispId(4)]
int Affected
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(4)]
get;
}
[DispId(5)]
int AffectedMask
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(5)]
get;
}
[DispId(6)]
int Family
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(6)]
get;
}
[DispId(7)]
double Adjustment
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(7)]
get;
}
[DispId(8)]
double Duration
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(8)]
get;
}
}

View file

@ -0,0 +1,23 @@
using System.Collections;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("00020404-0000-0000-C000-000000000046")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IEnumVARIANT
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Next([In] uint celt, [In][MarshalAs(UnmanagedType.Struct)] ref object rgvar, out uint pceltFetched);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Skip([In] uint celt);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Reset();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
void Clone([MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "System.Runtime.InteropServices.CustomMarshalers.EnumeratorToEnumVariantMarshaler, CustomMarshalers, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] out IEnumerator ppenum);
}

View file

@ -0,0 +1,12 @@
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[SuppressUnmanagedCodeSecurity]
[Guid("6FD2E07C-7E9C-451B-8968-2FCB0226D0E8")]
[TypeLibType(4288)]
public interface IIdentifyQueue
{
}

View file

@ -0,0 +1,12 @@
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("3C1CBEF8-E72A-4BDF-B92E-4F3307109766")]
[SuppressUnmanagedCodeSecurity]
[TypeLibType(4160)]
public interface IPrefilter
{
}

View file

@ -0,0 +1,18 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
using Decal.Interop.Net;
namespace Decal.Interop.Filters;
[ComImport]
[InterfaceType(2)]
[SuppressUnmanagedCodeSecurity]
[Guid("A67C748D-2427-4A13-A114-7ACC1D4C9433")]
[TypeLibType(4096)]
public interface IPrefilterEvents
{
[MethodImpl(MethodImplOptions.PreserveSig | MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
void Event(int ID, [MarshalAs(UnmanagedType.Interface)] IMessage Message);
}

View file

@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[TypeLibType(16)]
[ComVisible(false)]
public interface IPrefilterEvents_Event
{
event IPrefilterEvents_EventEventHandler Event;
}

View file

@ -0,0 +1,7 @@
using System.Runtime.InteropServices;
using Decal.Interop.Net;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IPrefilterEvents_EventEventHandler(int ID, [MarshalAs(UnmanagedType.Interface)] IMessage Message);

View file

@ -0,0 +1,154 @@
using System;
using System.Collections;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
using System.Threading;
namespace Decal.Interop.Filters;
internal sealed class IPrefilterEvents_EventProvider : IPrefilterEvents_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]
{
141, 116, 124, 166, 39, 36, 19, 74, 161, 20,
122, 204, 29, 76, 148, 51
});
m_ConnectionPointContainer.FindConnectionPoint(ref riid, out ppCP);
m_ConnectionPoint = ppCP;
m_aEventSinkHelpers = new ArrayList();
}
event IPrefilterEvents_EventEventHandler IPrefilterEvents_Event.Event
{
add
{
bool lockTaken = default(bool);
try
{
Monitor.Enter(this, ref lockTaken);
if (m_ConnectionPoint == null)
{
Init();
}
IPrefilterEvents_SinkHelper prefilterEvents_SinkHelper = new IPrefilterEvents_SinkHelper();
int pdwCookie = 0;
m_ConnectionPoint.Advise(prefilterEvents_SinkHelper, out pdwCookie);
prefilterEvents_SinkHelper.m_dwCookie = pdwCookie;
prefilterEvents_SinkHelper.m_EventDelegate = value;
m_aEventSinkHelpers.Add(prefilterEvents_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
{
IPrefilterEvents_SinkHelper prefilterEvents_SinkHelper = (IPrefilterEvents_SinkHelper)m_aEventSinkHelpers[num];
if (prefilterEvents_SinkHelper.m_EventDelegate != null && ((prefilterEvents_SinkHelper.m_EventDelegate.Equals(value) ? 1u : 0u) & 0xFFu) != 0)
{
m_aEventSinkHelpers.RemoveAt(num);
m_ConnectionPoint.Unadvise(prefilterEvents_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 IPrefilterEvents_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
{
IPrefilterEvents_SinkHelper prefilterEvents_SinkHelper = (IPrefilterEvents_SinkHelper)m_aEventSinkHelpers[num];
m_ConnectionPoint.Unadvise(prefilterEvents_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);
}
}

View file

@ -0,0 +1,29 @@
using System.Runtime.InteropServices;
using Decal.Interop.Net;
namespace Decal.Interop.Filters;
[ClassInterface(ClassInterfaceType.None)]
[TypeLibType(TypeLibTypeFlags.FHidden)]
public sealed class IPrefilterEvents_SinkHelper : IPrefilterEvents
{
public IPrefilterEvents_EventEventHandler m_EventDelegate;
public int m_dwCookie;
public void Event(int P_0, IMessage P_1)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_EventDelegate != null)
{
m_EventDelegate(P_0, P_1);
}
}
internal IPrefilterEvents_SinkHelper()
{
//Error decoding local variables: Signature type sequence must have at least one element.
m_dwCookie = 0;
m_EventDelegate = null;
}
}

View file

@ -0,0 +1,103 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[SuppressUnmanagedCodeSecurity]
[Guid("6FBA5326-F234-4AEC-B844-2136A0D50FD5")]
[TypeLibType(4160)]
public interface ISkillInfo
{
[DispId(1)]
string Name
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(2)]
string ShortName
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(3)]
string Formula
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(3)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(4)]
int Base
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(4)]
get;
}
[DispId(5)]
int Current
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(5)]
get;
}
[DispId(6)]
int Exp
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(6)]
get;
}
[DispId(7)]
eTrainingType Training
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(7)]
get;
}
[DispId(8)]
bool Known
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(8)]
get;
}
[DispId(9)]
int Increment
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(9)]
get;
}
[DispId(10)]
int Bonus
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(10)]
get;
}
[DispId(11)]
int Buffed
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(11)]
get;
}
}

View file

@ -0,0 +1,112 @@
using System.Collections;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[SuppressUnmanagedCodeSecurity]
[Guid("6AA27887-088A-42F8-B319-2AFBF8C3A5FD")]
[TypeLibType(4160)]
public interface IVendor : IEnumerable
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
void Reset();
[DispId(2)]
int Count
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(3)]
bool Next([In][Out][MarshalAs(UnmanagedType.Interface)] ref WorldObject ppObject);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(4)]
void Pop();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(5)]
void ByAll();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(6)]
void ByName([MarshalAs(UnmanagedType.BStr)] string strName);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(7)]
void ByNameSubstring([MarshalAs(UnmanagedType.BStr)] string strSubstring);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(8)]
void ByObjectClass(eObjectClass Class);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(9)]
void ByCategory(int nCategory);
[DispId(10)]
int Quantity
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(10)]
get;
}
[DispId(11)]
int MerchantID
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(11)]
get;
}
[DispId(12)]
int BuyCategories
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(12)]
get;
}
[DispId(13)]
int BuyValue
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(13)]
get;
}
[DispId(14)]
float BuyRate
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(14)]
get;
}
[DispId(15)]
float SellRate
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(15)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(-4)]
[TypeLibFunc(1)]
[return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "System.Runtime.InteropServices.CustomMarshalers.EnumeratorToEnumVariantMarshaler, CustomMarshalers, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
new IEnumerator GetEnumerator();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(17)]
[return: MarshalAs(UnmanagedType.Interface)]
WorldObject GetByID(int pObjectId);
}

View file

@ -0,0 +1,128 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("C5F0FF7E-A043-4A28-8893-F6E43F4E9DED")]
[SuppressUnmanagedCodeSecurity]
[TypeLibType(4160)]
public interface IWorld
{
[DispId(0)]
WorldObject this[[In] int GUID]
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[TypeLibFunc(256)]
[DispId(0)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(2)]
WorldIterator ByName
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(3)]
WorldIterator All
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(3)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(4)]
WorldIterator ByObjectClass
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(4)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(5)]
WorldIterator ByNameSubstring
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(5)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(6)]
WorldIterator ByContainer
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(6)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(7)]
WorldIterator Inventory
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(7)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(8)]
double Distance2D(int GUID1, int GUID2);
[DispId(9)]
WorldIterator ByOwner
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(9)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(10)]
WorldIterator Landscape
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(10)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[DispId(11)]
int NumObjectClasses
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(11)]
get;
}
[DispId(12)]
WorldIterator ByCategory
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(12)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(13)]
double Distance3D(int GUID1, int GUID2);
[DispId(14)]
Vendor Vendor
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(14)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
}

View file

@ -0,0 +1,69 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("175F99F1-B937-47C5-846E-CACBB986AFD9")]
[InterfaceType(2)]
[SuppressUnmanagedCodeSecurity]
[TypeLibType(4096)]
public interface IWorldEvents
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
void CreateObject([MarshalAs(UnmanagedType.Interface)] WorldObject pObject);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
void ReleaseObject([MarshalAs(UnmanagedType.Interface)] WorldObject pObject);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(3)]
void ChangeObject([MarshalAs(UnmanagedType.Interface)] WorldObject pObject, WorldChangeType Change);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(4)]
void MoveObject([MarshalAs(UnmanagedType.Interface)] WorldObject pObject);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(5)]
void ReleaseDone();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(6)]
void EnterTrade(int trader, int tradee);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(7)]
void EndTrade(int reason);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(8)]
void AddTradeItem(int Item, int side);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(9)]
void AcceptTrade(int trader);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(10)]
void DeclineTrade(int trader);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(11)]
void ResetTrade(int trader);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(12)]
void FailToAddTradeItem(int Item, int reason);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(13)]
void FailToCompleteTrade();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(14)]
void ApproachVendor(int merchant);
}

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IWorldEvents_AcceptTradeEventHandler(int trader);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IWorldEvents_AddTradeItemEventHandler(int Item, int side);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IWorldEvents_ApproachVendorEventHandler(int merchant);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IWorldEvents_ChangeObjectEventHandler([MarshalAs(UnmanagedType.Interface)] WorldObject pObject, WorldChangeType Change);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IWorldEvents_CreateObjectEventHandler([MarshalAs(UnmanagedType.Interface)] WorldObject pObject);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IWorldEvents_DeclineTradeEventHandler(int trader);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IWorldEvents_EndTradeEventHandler(int reason);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IWorldEvents_EnterTradeEventHandler(int trader, int tradee);

View file

@ -0,0 +1,36 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[TypeLibType(16)]
[ComVisible(false)]
public interface IWorldEvents_Event
{
event IWorldEvents_CreateObjectEventHandler CreateObject;
event IWorldEvents_ReleaseObjectEventHandler ReleaseObject;
event IWorldEvents_ChangeObjectEventHandler ChangeObject;
event IWorldEvents_MoveObjectEventHandler MoveObject;
event IWorldEvents_ReleaseDoneEventHandler ReleaseDone;
event IWorldEvents_EnterTradeEventHandler EnterTrade;
event IWorldEvents_EndTradeEventHandler EndTrade;
event IWorldEvents_AddTradeItemEventHandler AddTradeItem;
event IWorldEvents_AcceptTradeEventHandler AcceptTrade;
event IWorldEvents_DeclineTradeEventHandler DeclineTrade;
event IWorldEvents_ResetTradeEventHandler ResetTrade;
event IWorldEvents_FailToAddTradeItemEventHandler FailToAddTradeItem;
event IWorldEvents_FailToCompleteTradeEventHandler FailToCompleteTrade;
event IWorldEvents_ApproachVendorEventHandler ApproachVendor;
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IWorldEvents_FailToAddTradeItemEventHandler(int Item, int reason);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IWorldEvents_FailToCompleteTradeEventHandler();

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IWorldEvents_MoveObjectEventHandler([MarshalAs(UnmanagedType.Interface)] WorldObject pObject);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IWorldEvents_ReleaseDoneEventHandler();

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IWorldEvents_ReleaseObjectEventHandler([MarshalAs(UnmanagedType.Interface)] WorldObject pObject);

View file

@ -0,0 +1,6 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComVisible(false)]
public delegate void IWorldEvents_ResetTradeEventHandler(int trader);

View file

@ -0,0 +1,184 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[TypeLibType(TypeLibTypeFlags.FHidden)]
[ClassInterface(ClassInterfaceType.None)]
public sealed class IWorldEvents_SinkHelper : IWorldEvents
{
public IWorldEvents_CreateObjectEventHandler m_CreateObjectDelegate;
public IWorldEvents_ReleaseObjectEventHandler m_ReleaseObjectDelegate;
public IWorldEvents_ChangeObjectEventHandler m_ChangeObjectDelegate;
public IWorldEvents_MoveObjectEventHandler m_MoveObjectDelegate;
public IWorldEvents_ReleaseDoneEventHandler m_ReleaseDoneDelegate;
public IWorldEvents_EnterTradeEventHandler m_EnterTradeDelegate;
public IWorldEvents_EndTradeEventHandler m_EndTradeDelegate;
public IWorldEvents_AddTradeItemEventHandler m_AddTradeItemDelegate;
public IWorldEvents_AcceptTradeEventHandler m_AcceptTradeDelegate;
public IWorldEvents_DeclineTradeEventHandler m_DeclineTradeDelegate;
public IWorldEvents_ResetTradeEventHandler m_ResetTradeDelegate;
public IWorldEvents_FailToAddTradeItemEventHandler m_FailToAddTradeItemDelegate;
public IWorldEvents_FailToCompleteTradeEventHandler m_FailToCompleteTradeDelegate;
public IWorldEvents_ApproachVendorEventHandler m_ApproachVendorDelegate;
public int m_dwCookie;
public void CreateObject(WorldObject P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_CreateObjectDelegate != null)
{
m_CreateObjectDelegate(P_0);
}
}
public void ReleaseObject(WorldObject P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ReleaseObjectDelegate != null)
{
m_ReleaseObjectDelegate(P_0);
}
}
public void ChangeObject(WorldObject P_0, WorldChangeType P_1)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ChangeObjectDelegate != null)
{
m_ChangeObjectDelegate(P_0, P_1);
}
}
public void MoveObject(WorldObject P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_MoveObjectDelegate != null)
{
m_MoveObjectDelegate(P_0);
}
}
public void ReleaseDone()
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ReleaseDoneDelegate != null)
{
m_ReleaseDoneDelegate();
}
}
public void EnterTrade(int P_0, int P_1)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_EnterTradeDelegate != null)
{
m_EnterTradeDelegate(P_0, P_1);
}
}
public void EndTrade(int P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_EndTradeDelegate != null)
{
m_EndTradeDelegate(P_0);
}
}
public void AddTradeItem(int P_0, int P_1)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_AddTradeItemDelegate != null)
{
m_AddTradeItemDelegate(P_0, P_1);
}
}
public void AcceptTrade(int P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_AcceptTradeDelegate != null)
{
m_AcceptTradeDelegate(P_0);
}
}
public void DeclineTrade(int P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_DeclineTradeDelegate != null)
{
m_DeclineTradeDelegate(P_0);
}
}
public void ResetTrade(int P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ResetTradeDelegate != null)
{
m_ResetTradeDelegate(P_0);
}
}
public void FailToAddTradeItem(int P_0, int P_1)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_FailToAddTradeItemDelegate != null)
{
m_FailToAddTradeItemDelegate(P_0, P_1);
}
}
public void FailToCompleteTrade()
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_FailToCompleteTradeDelegate != null)
{
m_FailToCompleteTradeDelegate();
}
}
public void ApproachVendor(int P_0)
{
//Error decoding local variables: Signature type sequence must have at least one element.
if (m_ApproachVendorDelegate != null)
{
m_ApproachVendorDelegate(P_0);
}
}
internal IWorldEvents_SinkHelper()
{
//Error decoding local variables: Signature type sequence must have at least one element.
m_dwCookie = 0;
m_CreateObjectDelegate = null;
m_ReleaseObjectDelegate = null;
m_ChangeObjectDelegate = null;
m_MoveObjectDelegate = null;
m_ReleaseDoneDelegate = null;
m_EnterTradeDelegate = null;
m_EndTradeDelegate = null;
m_AddTradeItemDelegate = null;
m_AcceptTradeDelegate = null;
m_DeclineTradeDelegate = null;
m_ResetTradeDelegate = null;
m_FailToAddTradeItemDelegate = null;
m_FailToCompleteTradeDelegate = null;
m_ApproachVendorDelegate = null;
}
}

View file

@ -0,0 +1,93 @@
using System.Collections;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[TypeLibType(4160)]
[SuppressUnmanagedCodeSecurity]
[Guid("6FC29250-9FB4-4A0C-AF16-329E35DF02F2")]
public interface IWorldIterator : IEnumerable
{
[DispId(1)]
WorldObject Next_Old
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
[TypeLibFunc(64)]
[return: MarshalAs(UnmanagedType.Interface)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
void Reset();
[DispId(3)]
int Count
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(3)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(4)]
bool Next([In][Out][MarshalAs(UnmanagedType.Interface)] ref WorldObject ppObject);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(5)]
void Pop();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(6)]
void ByName([MarshalAs(UnmanagedType.BStr)] string strName);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(7)]
void ByNameSubstring([MarshalAs(UnmanagedType.BStr)] string strSubstring);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(8)]
void ByObjectClass(eObjectClass Class);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(9)]
void ByAll();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(10)]
void ByInventory();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(11)]
void ByContainer(int nContainer);
[DispId(12)]
int Quantity
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(12)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(13)]
void ByOwner(int nOwner);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(14)]
void ByLandscape();
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(15)]
void ByCategory(int nCategory);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(-4)]
[TypeLibFunc(1)]
[return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "System.Runtime.InteropServices.CustomMarshalers.EnumeratorToEnumVariantMarshaler, CustomMarshalers, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
new IEnumerator GetEnumerator();
}

View file

@ -0,0 +1,184 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("3DDD1391-FDDB-4C43-BA28-8F624E021F05")]
[DefaultMember("GUID")]
[TypeLibType(4160)]
[SuppressUnmanagedCodeSecurity]
public interface IWorldObject
{
[DispId(0)]
int GUID
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(0)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(1)]
bool Offset(out double x, out double y, out double z);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(2)]
bool Coordinates([In][Out] ref double NorthSouth, [In][Out] ref double EastWest);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(3)]
bool RawCoordinates([In][Out] ref double pX, [In][Out] ref double pY, ref double pZ);
[DispId(4)]
eObjectClass ObjectClass
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(4)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(5)]
int Spell([In] int index);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(6)]
bool Orientation(out double w, out double x, out double y, out double z);
[DispId(7)]
bool HasIdData
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(7)]
get;
}
[DispId(8)]
int LastIdTime
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(8)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(9)]
int Longs([In] LongValueKey index, int defVal = 0);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(10)]
double Doubles([In] DoubleValueKey index, double defVal = 0.0);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(11)]
bool Bools([In] BoolValueKey index, bool defVal = false);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(12)]
[return: MarshalAs(UnmanagedType.BStr)]
string Strings([In] StringValueKey index, [MarshalAs(UnmanagedType.BStr)] string defVal = "");
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(13)]
bool LongExists([In] LongValueKey index, out int pValue);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(14)]
bool DoubleExists([In] DoubleValueKey index, out double pValue);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(15)]
bool BoolExists([In] BoolValueKey index, out bool pValue);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(16)]
bool StringExists([In] StringValueKey index, [MarshalAs(UnmanagedType.BStr)] out string pValue);
[DispId(17)]
string Name
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(17)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
[DispId(18)]
int PhysicsDataFlags
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(18)]
get;
}
[DispId(19)]
int GameDataFlags1
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(19)]
get;
}
[DispId(20)]
int Type
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(20)]
get;
}
[DispId(21)]
int Icon
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(21)]
get;
}
[DispId(22)]
int Category
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(22)]
get;
}
[DispId(23)]
int Behavior
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(23)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(24)]
int ActiveSpell([In] int index);
[DispId(25)]
int Container
{
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(25)]
get;
}
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(26)]
int EnumBoolKey([In] int index);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(27)]
int EnumLongKey([In] int index);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(28)]
int EnumDoubleKey([In] int index);
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
[DispId(29)]
int EnumStringKey([In] int index);
}

View file

@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("6FD2E07C-7E9C-451B-8968-2FCB0226D0E8")]
[CoClass(typeof(IdentifyQueueClass))]
public interface IdentifyQueue : IIdentifyQueue
{
}

View file

@ -0,0 +1,13 @@
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("B0C05A9A-273D-4BC4-B7BA-E27CF94C8EF4")]
[SuppressUnmanagedCodeSecurity]
[TypeLibType(2)]
[ClassInterface(ClassInterfaceType.None)]
public class IdentifyQueueClass : IIdentifyQueue, IdentifyQueue
{
}

View file

@ -0,0 +1,108 @@
namespace Decal.Interop.Filters;
public enum LongValueKey
{
keyType = 218103808,
keyIcon = 218103809,
keyContainer = 218103810,
keyLandblock = 218103811,
keyItemSlots = 218103812,
keyPackSlots = 218103813,
keyStackCount = 218103814,
keyStackMax = 218103815,
keyAssociatedSpell = 218103816,
keySlotLegacy = 218103817,
keyWielder = 218103818,
keyWieldingSlot = 218103819,
keyMonarch = 218103820,
keyCoverage = 218103821,
keyEquipableSlots = 218103822,
keyEquipType = 218103823,
keyIconOutline = 218103824,
keyMissileType = 218103825,
keyUsageMask = 218103826,
keyHouseOwner = 218103827,
keyHookMask = 218103828,
keyHookType = 218103829,
keyModel = 218103830,
keyFlags = 218103831,
keyCreateFlags1 = 218103832,
keyCreateFlags2 = 218103833,
keyCategory = 218103834,
keyBehavior = 218103835,
keyMagicDef = 218103836,
keySpecialProps = 218103837,
keySpellCount = 218103838,
keyWeapSpeed = 218103839,
keyEquipSkill = 218103840,
keyDamageType = 218103841,
keyMaxDamage = 218103842,
keyUnknown10 = 218103843,
keyUnknown100000 = 218103844,
keyUnknown800000 = 218103845,
keyUnknown8000000 = 218103846,
keyPhysicsDataFlags = 218103847,
keyActiveSpellCount = 218103848,
keyIconOverlay = 218103849,
keyIconUnderlay = 218103850,
keySpecies = 2,
keyBurden = 5,
keyEquippedSlots = 10,
keyRareID = 17,
keyValue = 19,
keyTotalValue = 20,
keySkillCreditsAvail = 24,
keyCreatureLevel = 25,
keyRestrictedToToD = 26,
keyArmorLevel = 28,
keyRank = 30,
keyBonded = 33,
keyNumberFollowers = 35,
keyUnenchantable = 36,
keyLockpickDifficulty = 38,
keyDeaths = 43,
keyWandElemDmgType = 45,
keyMinLevelRestrict = 86,
keyMaxLevelRestrict = 87,
keyLockpickSkillBonus = 88,
keyAffectsVitalID = 89,
keyAffectsVitalAmt = 90,
keyHealKitSkillBonus = 90,
keyUsesTotal = 91,
keyUsesRemaining = 92,
keyDateOfBirth = 98,
keyWorkmanship = 105,
keySpellcraft = 106,
keyCurrentMana = 107,
keyMaximumMana = 108,
keyLoreRequirement = 109,
keyRankRequirement = 110,
keyPortalRestrictions = 111,
keyGender = 113,
keyAttuned = 114,
keySkillLevelReq = 115,
keyManaCost = 117,
keyAge = 125,
keyXPForVPReduction = 129,
keyMaterial = 131,
keyWieldReqType = 158,
keyWieldReqAttribute = 159,
keyWieldReqValue = 160,
keySlayerSpecies = 166,
keyNumberItemsSalvagedFrom = 170,
keyNumberTimesTinkered = 171,
keyDescriptionFormat = 172,
keyPagesUsed = 174,
keyPagesTotal = 175,
keyActivationReqSkillID = 176,
keyGemSettingQty = 177,
keyGemSettingType = 178,
keyImbued = 179,
keyHeritage = 188,
keyFishingSkill = 192,
keyKeysHeld = 193,
keyElementalDmgBonus = 204,
keyCleaveType = 263,
keyArmorSet = 265,
keySlot = 231735296
}

View file

@ -0,0 +1,7 @@
namespace Decal.Interop.Filters;
public enum PlayerAddRemoveType
{
pevtAdd,
pevtRemove
}

View file

@ -0,0 +1,7 @@
namespace Decal.Interop.Filters;
public enum PlayerCastType
{
pevtTargetless,
pevtTargeted
}

View file

@ -0,0 +1,10 @@
namespace Decal.Interop.Filters;
public enum PlayerFellowshipType
{
pevtCreate,
pevtQuit,
pevtDismiss,
pevtRecruit,
pevtDisband
}

View file

@ -0,0 +1,7 @@
namespace Decal.Interop.Filters;
public enum PlayerLogoffType
{
pevtRequested,
pevtAuthorized
}

View file

@ -0,0 +1,11 @@
namespace Decal.Interop.Filters;
public enum PlayerModifyType
{
pevtSkill,
pevtAttribute,
pevtVital,
pevtStatistic,
pevtAllegiance,
pevtAugmentation
}

View file

@ -0,0 +1,7 @@
namespace Decal.Interop.Filters;
public enum PlayerPortalType
{
pevtEnterPortal,
pevtExitPortal
}

View file

@ -0,0 +1,8 @@
namespace Decal.Interop.Filters;
public enum PlayerVitalType
{
pevtHealth = 2,
pevtStamina = 4,
pevtMana = 6
}

View file

@ -0,0 +1,7 @@
namespace Decal.Interop.Filters;
public enum PlayerXPType
{
pevtTotal,
pevtUnassigned
}

View file

@ -0,0 +1,10 @@
using System.Runtime.InteropServices;
namespace Decal.Interop.Filters;
[ComImport]
[Guid("3C1CBEF8-E72A-4BDF-B92E-4F3307109766")]
[CoClass(typeof(PrefilterClass))]
public interface Prefilter : IPrefilter, IPrefilterEvents_Event
{
}

View file

@ -0,0 +1,15 @@
using System.Runtime.InteropServices;
using System.Security;
namespace Decal.Interop.Filters;
[ComImport]
[TypeLibType(2)]
[ClassInterface(ClassInterfaceType.None)]
[ComSourceInterfaces("Decal.Interop.Filters.IPrefilterEvents\0\0")]
[Guid("443D4A68-5422-4E0C-9460-973F8FBDB190")]
[SuppressUnmanagedCodeSecurity]
public class PrefilterClass : IPrefilter, Prefilter, IPrefilterEvents_Event
{
public virtual extern event IPrefilterEvents_EventEventHandler Event;
}

Some files were not shown because too many files have changed in this diff Show more