#ifndef CKEYBOARDHOOK_H
#define CKEYBOARDHOOK_H

#include <windows.h>
#include <memory>


class CKeyBoardHook
{
public:
    CKeyBoardHook();
    ~CKeyBoardHook();

    static LRESULT CALLBACK Hotkey_Filter(int nCode, WPARAM wParam, LPARAM lParam);
    bool Hotkey_Install(DWORD ThreadID);
    static CKeyBoardHook *m_pThis;
private:

    bool Hotkey_UnInstall();

    HMODULE h_module;
    HANDLE g_hProcess;
    HHOOK g_HotKey;
};

extern std::shared_ptr<CKeyBoardHook> g_keyBoardHookPtr;

#endif // CKEYBOARDHOOK_H
