From eb93c9842bc5dae03d6cc6df7bef86b620329196 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 28 Sep 2012 11:50:04 +0000 Subject: NotifyFastHook - new core function to call event hooks in the same thread, it never switches to the main thread to execute event's hooks git-svn-id: http://svn.miranda-ng.org/main/trunk@1704 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- bin10/lib/mir_core.lib | Bin 29498 -> 29718 bytes include/m_core.h | 1 + src/mir_core/mir_core.def | 2 ++ src/mir_core/modules.cpp | 10 ++++++++++ 4 files changed, 13 insertions(+) diff --git a/bin10/lib/mir_core.lib b/bin10/lib/mir_core.lib index 3f95da8dc2..a9496214cf 100644 Binary files a/bin10/lib/mir_core.lib and b/bin10/lib/mir_core.lib differ diff --git a/include/m_core.h b/include/m_core.h index e0534750be..e617b0ca98 100644 --- a/include/m_core.h +++ b/include/m_core.h @@ -137,6 +137,7 @@ MIR_CORE_DLL(int) DestroyHookableEvent(HANDLE hEvent); MIR_CORE_DLL(int) SetHookDefaultForHookableEvent(HANDLE hEvent, MIRANDAHOOK pfnHook); MIR_CORE_DLL(int) CallPluginEventHook(HINSTANCE hInst, HANDLE hEvent, WPARAM wParam, LPARAM lParam); MIR_CORE_DLL(int) NotifyEventHooks(HANDLE hEvent, WPARAM wParam, LPARAM lParam); +MIR_CORE_DLL(int) NotifyFastHook(HANDLE hEvent, WPARAM wParam, LPARAM lParam); MIR_CORE_DLL(HANDLE) HookEvent(const char* name, MIRANDAHOOK hookProc); MIR_CORE_DLL(HANDLE) HookEventParam(const char* name, MIRANDAHOOKPARAM hookProc, LPARAM lParam); diff --git a/src/mir_core/mir_core.def b/src/mir_core/mir_core.def index 0a13752fff..9e4253fc91 100644 --- a/src/mir_core/mir_core.def +++ b/src/mir_core/mir_core.def @@ -131,3 +131,5 @@ CmdLine_GetOption @128 CmdLine_Parse @129 Utf8CheckString @130 GetSubscribersCount @131 +NotifyFastHook @132 + diff --git a/src/mir_core/modules.cpp b/src/mir_core/modules.cpp index 4e9a518d26..7ab515e469 100644 --- a/src/mir_core/modules.cpp +++ b/src/mir_core/modules.cpp @@ -275,6 +275,16 @@ MIR_CORE_DLL(int) NotifyEventHooks(HANDLE hEvent, WPARAM wParam, LPARAM lParam) return item->result; } +MIR_CORE_DLL(int) NotifyFastHook(HANDLE hEvent, WPARAM wParam, LPARAM lParam) +{ + switch ( checkHook((THook*)hEvent)) { + case hookInvalid: return -1; + case hookEmpty: return 0; + } + + return CallHookSubscribers((THook*)hEvent, wParam, lParam); +} + extern "C" MIR_CORE_DLL(int) GetSubscribersCount(THook* pHook) { switch ( checkHook(pHook)) { -- cgit v1.2.3