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

68 lines
1 KiB
C++

// DecalInputImpl.h
// Declaration of classes for inputing Input Actions
#ifndef __DECALINPUTIMPL_H
#define __DECALINPUTIMPL_H
#include "DecalInput.h"
template< class ImplT >
class IInputActionImpl
: public IInputAction
{
public:
CComPtr< IInputActionSite > m_pSite;
HRESULT onLoad( LPTSTR szData )
{
return S_OK;
}
STDMETHOD(Initialize)(IInputActionSite *pSite, BSTR strData)
{
USES_CONVERSION;
m_pSite = pSite;
HRESULT hRes = static_cast< ImplT * >( this )->onLoad( OLE2T( strData ) );
if( FAILED( hRes ) )
m_pSite.Release();
return hRes;
}
STDMETHOD(Terminate)()
{
m_pSite.Release();
return S_OK;
}
// Default Implementation returns false
STDMETHOD(get_Stackable)(VARIANT_BOOL *pVal)
{
*pVal = VARIANT_FALSE;
return S_OK;
}
STDMETHOD(Push)()
{
return S_OK;
}
STDMETHOD(Pop)()
{
return S_OK;
}
STDMETHOD(Execute)()
{
return S_OK;
}
STDMETHOD(Reset)()
{
return S_OK;
}
};
#endif