diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/delphi/m_helpers.inc | 2 | ||||
-rw-r--r-- | include/delphi/m_hotkeys.inc | 57 | ||||
-rw-r--r-- | include/m_hotkeys.h | 107 |
3 files changed, 52 insertions, 114 deletions
diff --git a/include/delphi/m_helpers.inc b/include/delphi/m_helpers.inc index dd81e8e534..d5160da04c 100644 --- a/include/delphi/m_helpers.inc +++ b/include/delphi/m_helpers.inc @@ -333,7 +333,7 @@ end; function Hotkey_Register(hk:PHOTKEYDESC):int_ptr;
begin
- result:=CallService(MS_HOTKEY_REGISTER, hLangpack, LPARAM(hk));
+ result:=_Hotkey_Register(hk, hLangpack);
end;
function Skin_AddIcon(si:PSKINICONDESC):THANDLE;
diff --git a/include/delphi/m_hotkeys.inc b/include/delphi/m_hotkeys.inc index c1042bfabd..ba3450f33c 100644 --- a/include/delphi/m_hotkeys.inc +++ b/include/delphi/m_hotkeys.inc @@ -25,10 +25,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. const
HKD_UNICODE = $0001;
+ HKF_MIRANDA_LOCAL = $8000;
+
type
PHOTKEYDESC = ^THOTKEYDESC;
THOTKEYDESC = record
- cbSize :int;
pszName :PAnsiChar; // name to refer to hotkey when playing and in db
pszDescription:TChar; // description for options dialog
pszSection :TChar; // section name used to group sounds (NULL is acceptable)
@@ -38,60 +39,16 @@ type dwFlags :dword; // Miranda ver >=9.0
end;
-const
- HKF_MIRANDA_LOCAL = $8000;
-{ use this macro to defile hotkey codes like this:
- hkd.DefHotkey = HOTKEYCODE(HOTKEYF_SHIFT|HOTKEYF_EXT, 'A');
-}
-// HOTKEYCODE(mod,vk) (MAKEWORD((vk),(mod)))
-
-{ CoreHotkeys/Register service
-Registers new hotkey
- wParam=(WPARAM)0
- lParam=(LPARAM)(HOTKEYDESC *)hotkey
-Returns 0 on failure or hotkey atom id on success
-}
- MS_HOTKEY_REGISTER:PAnsiChar = 'CoreHotkeys/Register';
-
-{ CoreHotkeys/Unregister service
-Unregister existing hotkey
- wParam=(WPARAM)0
- lParam=(LPARAM)(AnsiChar *)pszName
-Returns 0 on success or nonzero otherwise
-}
- MS_HOTKEY_UNREGISTER:PAnsiChar = 'CoreHotkeys/Unregister';
-
-{ CoreHotkeys/Check service
-Checks if "manual" hotkey was activated and returns its id.
- wParam=(WPARAM)(MSG *)message
- lParam=(LPARAM)(AnsiChar *)pszSection
-Returns lParam associated with activated hotkey
-}
- MS_HOTKEY_CHECK:PAnsiChar = 'CoreHotkeys/Check';
-
-{ Subclass/unsubclass edit box to act as hotkey control
- wParam=(WPARAM)(HWND)hwndEdit
- lParam=(LPARAM)0
-Returns zero on success
-
-You will get notification with LOWORD(wParam) == 0 when users sets hotkey.
-
-Subclassed control processes HKM_SETHOTKEY and HKM_GETHOTKEY similarly to
-windows' hotkey, in all other it acts just like normal editbox (beware of
-standart notifications that occur on text updates!)
-
-Subclass procedure uses GWL_USERDATA to store internal information. Do not
-use it for own purposes.
-}
- MS_HOTKEY_SUBCLASS :PAnsiChar = 'CoreHotkeys/Subclass';
- MS_HOTKEY_UNSUBCLASS:PAnsiChar = 'CoreHotkeys/Unsubclass';
+function _Hotkey_Register(hk:PHOTKEYDESC; _hLang:int): int; stdcall; external AppDll name 'Hotkey_Register';
+function Hotkey_Unregister(hk:PAnsiChar): int; stdcall; external AppDll;
{
- This event is fired when hotkeys were changed (Mirver 9.0+ ?)
- wParam = lParam = 0
+ This event is fired when hotkeys were changed (Mirver 9.0+ ?)
+ wParam = lParam = 0
}
+const
ME_HOTKEYS_CHANGED:PAnsiChar = 'CoreHotkeys/Changed';
{$ENDIF}
diff --git a/include/m_hotkeys.h b/include/m_hotkeys.h index ce237cd877..6dabe8dfac 100644 --- a/include/m_hotkeys.h +++ b/include/m_hotkeys.h @@ -27,86 +27,67 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include <m_core.h>
-#define HKD_UNICODE 0x0001
+#define HKD_UNICODE 0x0001
+#define HKF_MIRANDA_LOCAL 0x8000
-typedef struct
+struct HOTKEYDESC
{
- int cbSize;
- const char *pszName; /* name to refer to hotkey when playing and in db */
- union {
- const char *pszDescription; /* description for options dialog */
- const wchar_t *pwszDescription;
- };
- union {
- const char *pszSection; /* section name used to group sounds (NULL is acceptable) */
- const wchar_t *pwszSection;
- };
- const char *pszService; /* Service to call when HotKey Pressed */
- WORD DefHotKey; /* default hot key for action */
- LPARAM lParam; /* lParam to pass to service */
+ const char *pszName; // name to refer to hotkey when playing and in db
+ MAllStrings szDescription; // description for options dialog
+ MAllStrings szSection; // section name used to group sounds (NULL is acceptable)
+ const char *pszService; // Service to call when HotKey Pressed
+ WORD DefHotKey; // default hot key for action
+ LPARAM lParam; // lParam to pass to service
DWORD dwFlags;
-} HOTKEYDESC;
-
-#define HKF_MIRANDA_LOCAL 0x8000
+};
extern int hLangpack;
-/* use this macro to defile hotkey codes like this:
- hkd.DefHotkey = HOTKEYCODE(HOTKEYF_SHIFT|HOTKEYF_EXT, 'A');
-*/
-#define HOTKEYCODE(mod, vk) (MAKEWORD((vk), (mod)))
+/////////////////////////////////////////////////////////////////////////////////////////
+// use this macro to defile hotkey codes like this:
+// hkd.DefHotkey = HOTKEYCODE(HOTKEYF_SHIFT|HOTKEYF_EXT, 'A');
-/* CoreHotkeys/Register service
-Registers new hotkey
- wParam = 0
- lParam = (LPARAM)(HOTKEYDESC *)hotkey
-Returns 0 on failure or hotkey atom id on success
-*/
+#define HOTKEYCODE(mod, vk) (MAKEWORD((vk), (mod)))
-__forceinline INT_PTR Hotkey_Register(HOTKEYDESC *hk)
-{
- return CallService("CoreHotkeys/Register", (WPARAM)hLangpack, (LPARAM)hk);
-}
-
-/* CoreHotkeys/Unregister service
-Unregister existing hotkey
- wParam = 0
- lParam = (LPARAM)(char *)pszName
-Returns 0 on success or nonzero otherwise
-*/
-#define MS_HOTKEY_UNREGISTER "CoreHotkeys/Unregister"
+/////////////////////////////////////////////////////////////////////////////////////////
+// Registers new hotkey
+// Returns 0 on failure or hotkey atom id on success
-/* CoreHotkeys/Check service
-Checks if "manual" hotkey was activated and returns its id.
- wParam = (WPARAM)(MSG *)message
- lParam = (LPARAM)(char *)pszSection
-Returns lParam associated with activated hotkey
-*/
-#define MS_HOTKEY_CHECK "CoreHotkeys/Check"
+EXTERN_C MIR_APP_DLL(int) Hotkey_Register(const HOTKEYDESC *hk, int = hLangpack);
-/* Subclass/unsubclass edit box to act as hotkey control
- wParam = (WPARAM)(HWND)hwndEdit
- lParam = 0
-Returns zero on success
+/////////////////////////////////////////////////////////////////////////////////////////
+// Unregister existing hotkey
-You will get notification with LOWORD(wParam) == 0 when users sets hotkey.
+EXTERN_C MIR_APP_DLL(int) Hotkey_Unregister(const char *pszName);
-Subclassed control processes HKM_SETHOTKEY and HKM_GETHOTKEY similarly to
-windows' hotkey, in all other it acts just like normal editbox (beware of
-standart notifications that occur on text updates!)
+/////////////////////////////////////////////////////////////////////////////////////////
+// Checks if "manual" hotkey was activated and returns its id.
+// Returns lParam associated with activated hotkey
-Subclass procedure uses GWLP_USERDATA to store internal information. Do not
-use it for own purposes.
-*/
-#define MS_HOTKEY_SUBCLASS "CoreHotkeys/Subclass"
-#define MS_HOTKEY_UNSUBCLASS "CoreHotkeys/Unsubclass"
+EXTERN_C MIR_APP_DLL(int) Hotkey_Check(MSG *pEvent, const char *pszSection);
-/* This event is fired when hotkeys were changed
- wParam = lParam = 0
-*/
+/////////////////////////////////////////////////////////////////////////////////////////
+// Subclasss/unsubclass edit box to act as hotkey control
+// You will get notification with LOWORD(wParam) == 0 when users sets hotkey.
+//
+// Subclassed control processes HKM_SETHOTKEY and HKM_GETHOTKEY similarly to
+// windows' hotkey, in all other it acts just like normal editbox (beware of
+// standart notifications that occur on text updates!)
+//
+// Subclass procedure uses GWLP_USERDATA to store internal information. Do not
+// use it for own purposes.
+
+EXTERN_C MIR_APP_DLL(void) Hotkey_Subclass(HWND hwndEdit);
+EXTERN_C MIR_APP_DLL(void) Hotkey_Unsubclass(HWND hwndEdit);
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// This event is fired when hotkeys were changed
+// wParam = lParam = 0
#define ME_HOTKEYS_CHANGED "CoreHotkeys/Changed"
+/////////////////////////////////////////////////////////////////////////////////////////
+
EXTERN_C MIR_APP_DLL(void) KillModuleHotkeys(int hLangpack);
#endif // M_HOTKEYS_H__
|