2016-08-07 13:07:23 +00:00
|
|
|
#ifndef _INPUT_H
|
|
|
|
#define _INPUT_H
|
|
|
|
|
2017-04-21 00:22:39 +00:00
|
|
|
#include <stdlib.h>
|
|
|
|
#include <wchar.h>
|
2016-08-07 13:07:23 +00:00
|
|
|
|
|
|
|
#define WIN32_NO_STATUS
|
|
|
|
#include <windef.h>
|
|
|
|
#include <winbase.h>
|
|
|
|
#include <winnls.h>
|
|
|
|
#include <winreg.h>
|
|
|
|
#include <winuser.h>
|
2016-08-07 23:28:50 +00:00
|
|
|
#include <wingdi.h>
|
2016-08-07 13:07:23 +00:00
|
|
|
#include <commctrl.h>
|
2016-08-08 20:30:36 +00:00
|
|
|
#include <windowsx.h>
|
|
|
|
#include <setupapi.h>
|
2016-08-07 23:28:50 +00:00
|
|
|
#include <strsafe.h>
|
2020-03-15 14:10:14 +00:00
|
|
|
#include <cpl.h>
|
2016-08-07 13:07:23 +00:00
|
|
|
|
|
|
|
#include "resource.h"
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int idIcon;
|
|
|
|
int idName;
|
|
|
|
int idDescription;
|
2020-03-15 14:10:14 +00:00
|
|
|
APPLET_PROC AppletProc;
|
2016-08-07 13:07:23 +00:00
|
|
|
} APPLET, *PAPPLET;
|
|
|
|
|
|
|
|
extern HINSTANCE hApplet;
|
|
|
|
|
|
|
|
// Character Count of a layout ID like "00000409"
|
|
|
|
#define CCH_LAYOUT_ID 8
|
|
|
|
|
|
|
|
// Maximum Character Count of a ULONG in decimal
|
|
|
|
#define CCH_ULONG_DEC 10
|
|
|
|
|
2016-08-07 23:28:50 +00:00
|
|
|
#define MAX_STR_LEN 256
|
|
|
|
|
2016-08-08 20:30:36 +00:00
|
|
|
/* settings_page.c */
|
2016-08-07 13:07:23 +00:00
|
|
|
INT_PTR CALLBACK
|
2016-08-07 23:28:50 +00:00
|
|
|
SettingsPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
2016-08-07 13:07:23 +00:00
|
|
|
|
2016-08-08 20:30:36 +00:00
|
|
|
/* advanced_settings_page.c */
|
|
|
|
INT_PTR CALLBACK
|
|
|
|
AdvancedSettingsPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
|
|
|
|
|
|
/* add_dialog.c */
|
|
|
|
INT_PTR CALLBACK
|
|
|
|
AddDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
|
2016-08-07 13:07:23 +00:00
|
|
|
|
2016-08-09 14:01:52 +00:00
|
|
|
/* edit_dialog.c */
|
|
|
|
INT_PTR CALLBACK
|
|
|
|
EditDialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
|
|
|
|
|
|
/* key_settings_dialog.c */
|
2016-08-09 21:03:55 +00:00
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
DWORD dwAttributes;
|
|
|
|
DWORD dwLanguage;
|
|
|
|
DWORD dwLayout;
|
|
|
|
} KEY_SETTINGS;
|
|
|
|
|
2016-08-09 14:01:52 +00:00
|
|
|
INT_PTR CALLBACK
|
|
|
|
KeySettingsDialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
|
|
|
2016-08-10 19:04:11 +00:00
|
|
|
DWORD
|
|
|
|
ReadAttributes(VOID);
|
|
|
|
|
2016-08-09 21:03:55 +00:00
|
|
|
/* key_sequence_dialog.c */
|
|
|
|
INT_PTR CALLBACK
|
|
|
|
ChangeKeySeqDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
|
|
|
2016-08-09 14:01:52 +00:00
|
|
|
|
2016-08-08 20:30:36 +00:00
|
|
|
static inline DWORD
|
|
|
|
DWORDfromString(const WCHAR *pszString)
|
|
|
|
{
|
|
|
|
WCHAR *pszEnd;
|
|
|
|
|
|
|
|
return wcstoul(pszString, &pszEnd, 16);
|
|
|
|
}
|
|
|
|
|
2022-09-15 23:09:37 +00:00
|
|
|
#define IME_MASK (0xE0000000UL)
|
|
|
|
#define SUBST_MASK (0xD0000000UL)
|
|
|
|
#define SPECIAL_MASK (0xF0000000UL)
|
|
|
|
|
|
|
|
#define IS_IME_HKL(hKL) ((((ULONG_PTR)(hKL)) & 0xF0000000) == IME_MASK)
|
|
|
|
#define IS_SPECIAL_HKL(hKL) ((((ULONG_PTR)(hKL)) & 0xF0000000) == SPECIAL_MASK)
|
|
|
|
#define SPECIALIDFROMHKL(hKL) ((WORD)(HIWORD(hKL) & 0x0FFF))
|
|
|
|
|
|
|
|
#define IS_IME_KLID(dwKLID) ((((ULONG)(dwKLID)) & 0xF0000000) == IME_MASK)
|
|
|
|
#define IS_SUBST_KLID(dwKLID) ((((ULONG)(dwKLID)) & 0xF0000000) == SUBST_MASK)
|
|
|
|
|
|
|
|
VOID GetSystemLibraryPath(LPWSTR pszPath, INT cchPath, LPCWSTR pszFileName);
|
|
|
|
|
2016-08-07 13:07:23 +00:00
|
|
|
#endif /* _INPUT_H */
|