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>
187 lines
5.8 KiB
Text
187 lines
5.8 KiB
Text
// DecalNet.idl : IDL source for DecalNet.dll
|
|
//
|
|
|
|
// This file will be processed by the MIDL tool to
|
|
// produce the type library (DecalNet.tlb) and marshalling code.
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
import "Decal.idl";
|
|
|
|
interface IMessage;
|
|
|
|
[
|
|
object,
|
|
uuid(05D14E34-0A23-4A9F-95CF-9DB24B3CFB9F),
|
|
dual,
|
|
helpstring("IMessageMember Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMessageMember : IDispatch
|
|
{
|
|
[id(5), propget, helpstring("property Member"), defaultcollelem] HRESULT Member(VARIANT vIndex, [out, retval] VARIANT *pVal);
|
|
[id(6), propget, helpstring("property MemberName")] HRESULT MemberName(long Index, [out, retval] BSTR *pVal);
|
|
[id(7), propget, helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(23EE0804-EAC7-493B-BB9D-2298FD44FFA1),
|
|
dual,
|
|
helpstring("IMessage Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMessage : IDispatch
|
|
{
|
|
[id(2), propget, helpstring("property Type")] HRESULT Type([out, retval] long *pVal);
|
|
[id(3), propget, helpstring("property Data")] HRESULT Data([out, retval] VARIANT *pVal);
|
|
[id(5), propget, helpstring("property Member"), defaultcollelem] HRESULT Member(VARIANT vElement, [out, retval] VARIANT *pVal);
|
|
[id(6), propget, helpstring("property MemberName")] HRESULT MemberName(long Index, [out, retval] BSTR *pVal);
|
|
[id(7), propget, helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(853BFE61-6C14-4244-8B96-96F0C9647DE6),
|
|
dual,
|
|
helpstring("IMessageMember Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMessageIterator : IDispatch
|
|
{
|
|
[propget, id(10), helpstring("Move the cursor to the next position")] HRESULT Next([optional] VARIANT vIndex, [out, retval] VARIANT *pbValue);
|
|
[propget, id(1), helpstring("Data at the current position")] HRESULT Current([out, retval] VARIANT *pData);
|
|
[propget, id(2), helpstring("Name of a member at a particular index")] HRESULT MemberName([out, retval] BSTR *pVal);
|
|
[propget, id(3), helpstring("Current index of the iterator")] HRESULT Index([out,retval] long *pIndex);
|
|
[propget, id(4), helpstring("String member by name")] HRESULT NextString (BSTR Name, [out, retval] BSTR *pValue);
|
|
[propget, id(5), helpstring("Integer member by name")] HRESULT NextInt (BSTR Name, [out, retval] long *pValue);
|
|
[propget, id(6), helpstring("Float member by name")] HRESULT NextFloat (BSTR Name, [out, retval] float *pValue);
|
|
[propget, id(7), helpstring("Object member by name")] HRESULT NextObject (BSTR Name, [out, retval] IMessageIterator **pValue);
|
|
[propget, id(8), helpstring("Object member by index")] HRESULT NextObjectIndex ([out, retval] IMessageIterator **pValue);
|
|
[id(9), helpstring("Reset the iterator")] HRESULT Reset();
|
|
[propget, id(11), helpstring("Parent Message Object")] HRESULT Message([out, retval] IMessage **ppMsg);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(38AFE740-9189-4f7c-8DE2-E61087DD9F19),
|
|
dual,
|
|
helpstring("IMessage Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMessage2 : IMessage
|
|
{
|
|
[propget, id(101), helpstring("property Members")] HRESULT Begin([out, retval] IMessageIterator * *pVal);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(AA405035-E001-4CC3-B43A-156206843D64),
|
|
helpstring("INetService Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface INetService : IUnknown
|
|
{
|
|
[propget, helpstring("property Decal")] HRESULT Decal([out, retval] IDecal * *pVal);
|
|
[propget, helpstring("property Filter")] HRESULT Filter(REFCLSID clsid, REFIID iid, [out, retval, iid_is(iid)] LPVOID *pVal);
|
|
[propget, helpstring("property FilterVB")] HRESULT FilterVB(BSTR strProgID, [out, retval] LPDISPATCH *pVal);
|
|
[propget, helpstring("property Hooks")] HRESULT Hooks([out, retval] IACHooks * *pVal);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(EEB0BE9E-46BD-493F-97E2-330670C09F59),
|
|
dual,
|
|
helpstring("INetworkFilter Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface INetworkFilter : IDispatch
|
|
{
|
|
[id(1), helpstring("method Dispatch")] HRESULT Dispatch(IMessage *Message);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(CE518B62-714F-4993-B0C2-C703A7062F38),
|
|
helpstring("INetworkFilter Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface INetworkFilter2 : IUnknown
|
|
{
|
|
[helpstring("method Dispatch")] HRESULT DispatchServer(IMessage2 *Message);
|
|
[helpstring("method Dispatch")] HRESULT DispatchClient(IMessage2 *Message);
|
|
[helpstring("method Initialize")] HRESULT Initialize(INetService *pService);
|
|
[helpstring("method Terminate")] HRESULT Terminate();
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(03F3E2D0-7026-4C11-988A-4B3C58C71917),
|
|
dual,
|
|
helpstring("IWebRequest Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IWebRequest : IDispatch
|
|
{
|
|
[id(1), helpstring("method Get")] HRESULT Get(BSTR strURL);
|
|
[id(2), helpstring("method Post")] HRESULT Post(BSTR strURL, BSTR strPostData);
|
|
};
|
|
|
|
[
|
|
uuid(572B87C4-93BD-46B3-A291-CD58181D25DC),
|
|
version(1.0),
|
|
helpstring("DecalNet 1.0 Type Library")
|
|
]
|
|
library DecalNet
|
|
{
|
|
importlib("stdole32.tlb");
|
|
importlib("stdole2.tlb");
|
|
|
|
interface IMessageMember;
|
|
interface IMessage;
|
|
interface IMessage2;
|
|
interface INetworkFilter;
|
|
interface INetworkFilter2;
|
|
interface IMessageIterator;
|
|
|
|
[
|
|
uuid(C8C406F8-BA2E-4964-8B04-FF38394A8E0E),
|
|
helpstring("NetService Class")
|
|
]
|
|
coclass NetService
|
|
{
|
|
[default] interface INetService;
|
|
};
|
|
|
|
[
|
|
uuid(EEFA38DC-15B2-4232-B5BE-5A9ECB8E1A58),
|
|
helpstring("_IWebRequestEvents Interface")
|
|
]
|
|
dispinterface IWebRequestEvents
|
|
{
|
|
properties:
|
|
methods:
|
|
[id(1), helpstring("method Begin")] HRESULT Begin();
|
|
[id(2), helpstring("method End")] HRESULT End(long nResultCode, BSTR strText);
|
|
};
|
|
|
|
[
|
|
uuid(15631E36-55CB-4D16-ADE7-74D9F8A5F4B6),
|
|
helpstring("WebRequest Class")
|
|
]
|
|
coclass WebRequest
|
|
{
|
|
[default] interface IWebRequest;
|
|
[default, source] dispinterface IWebRequestEvents;
|
|
};
|
|
|
|
[
|
|
uuid(7A85E352-B133-4AB5-A9DA-85978005BF88),
|
|
helpstring("MessageRoot Class"),
|
|
noncreatable
|
|
]
|
|
coclass MessageRoot
|
|
{
|
|
[default] interface IMessageIterator;
|
|
};
|
|
};
|