openDecal/Native/Include/DecalInput.idl
erik d1442e3747 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>
2026-02-08 18:27:56 +01:00

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;
};
};