aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/platform/MSWindowsHookResource.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2018-04-25 18:07:30 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2018-04-25 18:07:30 -0400
commit9b1b081cfdb1c0fb6457278775e0823f8bc10f62 (patch)
treece8840148d8445055ba9e4f12263b2208f234c16 /src/lib/platform/MSWindowsHookResource.cpp
Import Upstream version 2.0.0+dfsgupstream/2.0.0+dfsg
Diffstat (limited to 'src/lib/platform/MSWindowsHookResource.cpp')
-rw-r--r--src/lib/platform/MSWindowsHookResource.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/lib/platform/MSWindowsHookResource.cpp b/src/lib/platform/MSWindowsHookResource.cpp
new file mode 100644
index 0000000..ced5ff1
--- /dev/null
+++ b/src/lib/platform/MSWindowsHookResource.cpp
@@ -0,0 +1,33 @@
+#include "MSWindowsHookResource.h"
+
+WindowsHookResource::WindowsHookResource() :
+ _hook(NULL)
+{
+}
+
+WindowsHookResource::~WindowsHookResource()
+{
+ unset();
+}
+
+bool WindowsHookResource::set(int idHook, HOOKPROC lpfn, HINSTANCE hmod, DWORD dwThreadId)
+{
+ if (is_set())
+ return false;
+ _hook = SetWindowsHookEx(idHook, lpfn, hmod, dwThreadId);
+ return is_set();
+}
+
+bool WindowsHookResource::unset()
+{
+ if (is_set()) {
+ if (UnhookWindowsHookEx(_hook) == 0) {
+ return false;
+ }
+ _hook = NULL;
+ }
+ return true;
+}
+
+bool WindowsHookResource::is_set() const { return _hook != NULL; }
+WindowsHookResource::operator HHOOK() const { return _hook; } \ No newline at end of file