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>
43 lines
No EOL
899 B
C++
43 lines
No EOL
899 B
C++
#ifndef __VSBRIDGE_H_
|
|
#define __VSBRIDGE_H_
|
|
|
|
namespace VSBridge
|
|
{
|
|
|
|
template<class _Ty>
|
|
class auto_ptr {
|
|
public:
|
|
typedef _Ty element_type;
|
|
explicit auto_ptr(_Ty *_P = 0) _THROW0()
|
|
: _Owns(_P != 0), _Ptr(_P) {}
|
|
auto_ptr(const auto_ptr<_Ty>& _Y) _THROW0()
|
|
: _Owns(_Y._Owns), _Ptr(_Y.release()) {}
|
|
auto_ptr<_Ty>& operator=(const auto_ptr<_Ty>& _Y) _THROW0()
|
|
{if (this != &_Y)
|
|
{if (_Ptr != _Y.get())
|
|
{if (_Owns)
|
|
delete _Ptr;
|
|
_Owns = _Y._Owns; }
|
|
else if (_Y._Owns)
|
|
_Owns = true;
|
|
_Ptr = _Y.release(); }
|
|
return (*this); }
|
|
~auto_ptr()
|
|
{if (_Owns)
|
|
delete _Ptr; }
|
|
_Ty& operator*() const _THROW0()
|
|
{return (*get()); }
|
|
_Ty *operator->() const _THROW0()
|
|
{return (get()); }
|
|
_Ty *get() const _THROW0()
|
|
{return (_Ptr); }
|
|
_Ty *release() const _THROW0()
|
|
{((auto_ptr<_Ty> *)this)->_Owns = false;
|
|
return (_Ptr); }
|
|
private:
|
|
bool _Owns;
|
|
_Ty *_Ptr;
|
|
};
|
|
}
|
|
|
|
#endif |