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,87 @@
// ChoicePopup.h : Declaration of the cChoicePopup
#ifndef __CHOICEPOPUP_H_
#define __CHOICEPOPUP_H_
#include "resource.h" // main symbols
#include "SinkImpl.h"
class cChoice;
/////////////////////////////////////////////////////////////////////////////
// cChoicePopup
class ATL_NO_VTABLE cChoicePopup :
public CComObjectRootEx<CComMultiThreadModel>,
public ILayerImpl< cChoicePopup >,
public ILayerRenderImpl,
public ILayerMouseImpl,
public cNoEventsImpl,
public IChoicePopup
{
public:
cChoicePopup()
: m_pChoice( NULL ),
m_bMouseDown( false )
{
}
cChoice *m_pChoice;
CComPtr< IImageCache > m_pActive;
bool m_bMouseDown;
void onCreate();
void onDestroy();
BEGIN_COM_MAP(cChoicePopup)
COM_INTERFACE_ENTRY(ILayerRender)
COM_INTERFACE_ENTRY(ILayerMouse)
COM_INTERFACE_ENTRY(ILayer)
COM_INTERFACE_ENTRY(IChoicePopup)
END_COM_MAP()
void hotSelect( MouseState *pMS );
public:
// IChoicePopup Methods
// ILayerRender Methods
STDMETHOD(Render)(ICanvas *pCanvas);
// ILayerMouse Methods
STDMETHOD(MouseDown)(MouseState *pMS)
{
m_bMouseDown = true;
hotSelect( pMS );
return S_OK;
}
STDMETHOD(MouseEnter)(MouseState *pMS)
{
if( m_bMouseDown )
hotSelect( pMS );
return S_OK;
}
STDMETHOD(MouseExit)(MouseState *pMS)
{
if( m_bMouseDown )
hotSelect( pMS );
return S_OK;
}
STDMETHOD(MouseMove)(MouseState *pMS)
{
if( m_bMouseDown )
hotSelect( pMS );
return S_OK;
}
STDMETHOD(MouseUp)(MouseState *pMS);
};
#endif //__CHOICEPOPUP_H_