#pragma once #include "ProcessLauncher.h" #include #include class ScriptHookPlugin final : public IWTSPlugin { public: ScriptHookPlugin(); HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject) override; ULONG STDMETHODCALLTYPE AddRef() override; ULONG STDMETHODCALLTYPE Release() override; HRESULT STDMETHODCALLTYPE Initialize(IWTSVirtualChannelManager* channelManager) override; HRESULT STDMETHODCALLTYPE Connected() override; HRESULT STDMETHODCALLTYPE Disconnected(DWORD disconnectCode) override; HRESULT STDMETHODCALLTYPE Terminated() override; private: ~ScriptHookPlugin(); LONG refCount_ = 1; hook::ProcessLauncher launcher_; };