openDecal/Native/Include/DecalNet.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

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