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>
319 lines
8.5 KiB
Text
319 lines
8.5 KiB
Text
// DecalInput.idl : IDL source for DecalInput.dll
|
|
//
|
|
|
|
// This file will be processed by the MIDL tool to
|
|
// produce the type library (DecalInput.tlb) and marshalling code.
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
import "Decal.idl";
|
|
|
|
[
|
|
object,
|
|
uuid(27A63073-10D6-4282-85CF-77E4DEB8C6B8),
|
|
dual,
|
|
helpstring("IInputService Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IInputService : IDispatch
|
|
{
|
|
[propget, id(1), helpstring("property Command")] HRESULT Command(BSTR strCommandName, [out, retval] BSTR *pVal);
|
|
[propget, id(2), helpstring("property Decal")] HRESULT Decal([out, retval] IDecal * *pVal);
|
|
[propget, id(3), helpstring("property KeyByName")] HRESULT KeyByName(BSTR strName, [out, retval] long *pVal);
|
|
[propget, id(4), helpstring("property CommandKey")] HRESULT CommandKey(BSTR strCommand, [out, retval] long *pVal);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(6CE124D7-534E-4BB6-AAF2-2BE22F69326D),
|
|
dual,
|
|
helpstring("IDecalTimer Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IDecalTimer : IDispatch
|
|
{
|
|
[id(1), helpstring("method Start")] HRESULT Start(long Interval);
|
|
[id(2), helpstring("method Stop")] HRESULT Stop();
|
|
[propget, id(3), helpstring("property Tag")] HRESULT Tag([out, retval] VARIANT *pVal);
|
|
[propput, id(3), helpstring("property Tag")] HRESULT Tag([in] VARIANT newVal);
|
|
[propget, id(4), helpstring("property Running")] HRESULT Running([out, retval] VARIANT_BOOL *pVal);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(95AF8DF7-F2A0-476E-9D8C-B23493B1698D),
|
|
dual,
|
|
helpstring("IHotkey Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IHotkey : IDispatch
|
|
{
|
|
[propget, id(1), helpstring("property Tag")] HRESULT Tag([out, retval] VARIANT *pVal);
|
|
[propput, id(1), helpstring("property Tag")] HRESULT Tag([in] VARIANT newVal);
|
|
[propget, id(2), helpstring("property Key")] HRESULT Key([out, retval] BSTR *pVal);
|
|
[propput, id(2), helpstring("property Key")] HRESULT Key([in] BSTR newVal);
|
|
[propget, id(3), helpstring("property Enabled")] HRESULT Enabled([out, retval] VARIANT_BOOL *pVal);
|
|
[propput, id(3), helpstring("property Enabled")] HRESULT Enabled([in] VARIANT_BOOL newVal);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(F4E4EA59-0E47-4BAD-819A-722F5FFD506F),
|
|
dual,
|
|
helpstring("IWinMsgHook Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IWinMsgHook : IDispatch
|
|
{
|
|
[propget, id(1), helpstring("property Tag")] HRESULT Tag([out, retval] VARIANT *pVal);
|
|
[propput, id(1), helpstring("property Tag")] HRESULT Tag([in] VARIANT newVal);
|
|
[propget, id(2), helpstring("property Enabled")] HRESULT Enabled([out, retval] VARIANT_BOOL *pVal);
|
|
[propput, id(2), helpstring("property Enabled")] HRESULT Enabled([in] VARIANT_BOOL newVal);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(BDAD721B-7A00-440D-8964-70427167DD36),
|
|
dual,
|
|
helpstring("IWndMsg Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IWndMsg : IDispatch
|
|
{
|
|
[propget, id(1), helpstring("property HWND")] HRESULT HWND([out, retval] long *pVal);
|
|
[propget, id(2), helpstring("property Message")] HRESULT Message([out, retval] long *pVal);
|
|
[propget, id(3), helpstring("property WParam")] HRESULT WParam([out, retval] long *pVal);
|
|
[propget, id(4), helpstring("property LParam")] HRESULT LParam([out, retval] long *pVal);
|
|
[propget, id(5), helpstring("property Eat")] HRESULT Eat([out, retval] VARIANT_BOOL *pVal);
|
|
[propput, id(5), helpstring("property Eat")] HRESULT Eat([in] VARIANT_BOOL newVal);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(B772FDC3-36AD-4957-9143-5A10FBDA6D1D),
|
|
dual,
|
|
helpstring("IInputBuffer Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IInputBuffer : IDispatch
|
|
{
|
|
[propget, id(1), helpstring("property Tag")] HRESULT Tag([out, retval] VARIANT *pVal);
|
|
[propput, id(1), helpstring("property Tag")] HRESULT Tag([in] VARIANT newVal);
|
|
[id(2), helpstring("method Add")] HRESULT Add(BSTR Command);
|
|
[id(3), helpstring("method Push")] HRESULT Push(BSTR Command);
|
|
[id(4), helpstring("method Pop")] HRESULT Pop();
|
|
[propget, id(5), helpstring("property CanRun")] HRESULT CanRun([out, retval] VARIANT_BOOL *pVal);
|
|
[id(6), helpstring("method Run")] HRESULT Run();
|
|
[id(7), helpstring("method Stop")] HRESULT Stop();
|
|
};
|
|
|
|
interface IInputActionSite;
|
|
|
|
enum eActionUse
|
|
{
|
|
eActionExecute,
|
|
eActionStack
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(C73A3F3D-8286-4250-BF97-155EE341E42F),
|
|
helpstring("IInputAction Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IInputAction : IUnknown
|
|
{
|
|
[helpstring("method Initialize")] HRESULT Initialize(IInputActionSite *pSite, BSTR strData);
|
|
[helpstring("method Terminate")] HRESULT Terminate();
|
|
[propget, helpstring("property Stackable")] HRESULT Stackable([out, retval] VARIANT_BOOL *pVal);
|
|
[helpstring("method Reset")] HRESULT Reset();
|
|
[helpstring("method Push")] HRESULT Push();
|
|
[helpstring("method Pop")] HRESULT Pop();
|
|
[helpstring("method Execute")] HRESULT Execute();
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(1751F4E5-4E11-42f1-A00F-ED5B1D899C66),
|
|
helpstring("IInputActionSite Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IInputActionSite : IUnknown
|
|
{
|
|
[helpstring("method Delay")] HRESULT Delay(long Time, VARIANT_BOOL Advance);
|
|
[helpstring("method FireEvent")] HRESULT FireEvent(long nEventID, VARIANT vParam);
|
|
[helpstring("method MoveMouse")] HRESULT MoveMouse(long X, long Y);
|
|
[propget, helpstring("property Service")] HRESULT Service([out, retval] IInputService * *pVal);
|
|
};
|
|
|
|
[
|
|
uuid(3A985F2B-BAD5-43BF-9008-ED4EBBB45B6E),
|
|
version(1.0),
|
|
helpstring("DecalInput 1.0 Type Library")
|
|
]
|
|
library DecalInput
|
|
{
|
|
importlib("stdole32.tlb");
|
|
importlib("stdole2.tlb");
|
|
|
|
interface IInputAction;
|
|
interface IInputActionSite;
|
|
|
|
[
|
|
uuid(B33307BA-706D-474A-80B9-70BB8D13EF3E),
|
|
helpstring("InputService Class")
|
|
]
|
|
coclass InputService
|
|
{
|
|
[default] interface IInputService;
|
|
};
|
|
|
|
[
|
|
uuid(BBF25010-50FE-4398-BB78-BF8B9D392915),
|
|
helpstring("ITimerEvents Interface")
|
|
]
|
|
dispinterface ITimerEvents
|
|
{
|
|
properties:
|
|
methods:
|
|
[id(1), helpstring("method Timeout")] HRESULT Timeout(IDecalTimer *Source);
|
|
};
|
|
|
|
[
|
|
uuid(79497C87-92E1-416B-AE5C-9D6C4C59133C),
|
|
helpstring("Timer Class")
|
|
]
|
|
coclass Timer
|
|
{
|
|
[default] interface IDecalTimer;
|
|
[default, source] dispinterface ITimerEvents;
|
|
};
|
|
|
|
[
|
|
uuid(15EAEB82-6EC8-4A09-8FA3-2D691BBB732F),
|
|
helpstring("IHotkeyEvents Interface")
|
|
]
|
|
dispinterface IHotkeyEvents
|
|
{
|
|
properties:
|
|
methods:
|
|
[id(1), helpstring("method Hotkey")] HRESULT Hotkey(IHotkey *Source);
|
|
};
|
|
|
|
[
|
|
uuid(F183506A-3664-49D6-8CA4-CFD295F2811D),
|
|
helpstring("Hotkey Class")
|
|
]
|
|
coclass Hotkey
|
|
{
|
|
[default] interface IHotkey;
|
|
[default, source] dispinterface IHotkeyEvents;
|
|
};
|
|
|
|
[
|
|
uuid(7E3E2EE8-1E06-4CFD-87D9-E4AEAB4CFE31),
|
|
helpstring("IWinMsgHookEvents Interface")
|
|
]
|
|
dispinterface IWinMsgHookEvents
|
|
{
|
|
properties:
|
|
methods:
|
|
[id(1), helpstring("method Message")] HRESULT Message(IWinMsgHook *Hook, IWndMsg *Message);
|
|
};
|
|
|
|
[
|
|
uuid(F3170E85-517E-43A4-B7B4-6F006A7B1B85),
|
|
helpstring("WinMsgHook Class")
|
|
]
|
|
coclass WinMsgHook
|
|
{
|
|
[default] interface IWinMsgHook;
|
|
[default, source] dispinterface IWinMsgHookEvents;
|
|
};
|
|
|
|
[
|
|
uuid(85AB0296-124E-4E68-A6A8-FCF5721AC09B),
|
|
noncreatable,
|
|
helpstring("WndMsg Class")
|
|
]
|
|
coclass WndMsg
|
|
{
|
|
[default] interface IWndMsg;
|
|
};
|
|
|
|
[
|
|
uuid(04CD59E6-672E-45A6-AE0A-454B1F59377A),
|
|
helpstring("IInputBufferEvents Interface")
|
|
]
|
|
dispinterface IInputBufferEvents
|
|
{
|
|
properties:
|
|
methods:
|
|
[id(1), helpstring("method Begin")] HRESULT Begin(IInputBuffer *Buffer);
|
|
[id(2), helpstring("method End")] HRESULT End(IInputBuffer *Buffer);
|
|
[id(3), helpstring("method Event")] HRESULT Event(IInputBuffer *Buffer, long EventID, VARIANT Param);
|
|
};
|
|
|
|
[
|
|
uuid(F0A17A04-7F8F-4A17-A41D-8C297A1E929B),
|
|
helpstring("InputBuffer Class")
|
|
]
|
|
coclass InputBuffer
|
|
{
|
|
[default] interface IInputBuffer;
|
|
[default, source] dispinterface IInputBufferEvents;
|
|
};
|
|
|
|
[
|
|
uuid(9CDCEEDC-F8AC-42D5-9A05-52B9346D00A4),
|
|
helpstring("TypeAction Class")
|
|
]
|
|
coclass TypeAction
|
|
{
|
|
[default] interface IInputAction;
|
|
};
|
|
|
|
[
|
|
uuid(57D18578-0BF0-4DE5-A0A9-E7CB531C0429),
|
|
helpstring("MouseMoveAction Class")
|
|
]
|
|
coclass MouseMoveAction
|
|
{
|
|
[default] interface IInputAction;
|
|
};
|
|
|
|
[
|
|
uuid(324D76B8-D8C7-4A81-B867-E4E1F874E488),
|
|
helpstring("DelayAction Class")
|
|
]
|
|
coclass DelayAction
|
|
{
|
|
[default] interface IInputAction;
|
|
};
|
|
|
|
[
|
|
uuid(D6E4BD19-4900-4515-BCE2-A9EA4AAE2699),
|
|
helpstring("EventAction Class")
|
|
]
|
|
coclass EventAction
|
|
{
|
|
[default] interface IInputAction;
|
|
};
|
|
|
|
[
|
|
uuid(762335B2-2274-4BB4-8B1F-F7286C949FF7),
|
|
helpstring("PolledDelayAction Class")
|
|
]
|
|
coclass PolledDelayAction
|
|
{
|
|
[default] interface IInputAction;
|
|
};
|
|
[
|
|
uuid(6EE2F682-7129-44BE-84B9-787BAE35EC1C),
|
|
helpstring("RestoreAction Class")
|
|
]
|
|
coclass RestoreAction
|
|
{
|
|
[default] interface IInputAction;
|
|
};
|
|
};
|