243 lines
6.0 KiB
C
243 lines
6.0 KiB
C
#define IDM_ABOUT 100
|
|
#define IDM_NEW 101
|
|
#define IDM_EXIT 105
|
|
|
|
#define IDM_VIR_NAME 149
|
|
#define IDM_KEY_NAME 150
|
|
#define IDM_SCAN_CODE 151
|
|
#define IDM_LOW_CASE 152
|
|
#define IDM_UPPER_CASE 153
|
|
#define IDM_CTRL_CASE 154
|
|
#define IDM_CAPS 155
|
|
#define IDM_CHAR 156
|
|
#define IDM_SHIFT 157
|
|
#define IDM_CTRL 158
|
|
#define IDM_ALTGR 159
|
|
#define IDM_ALTGR_CASE 160
|
|
#define IDM_SHIFT_ALTGR_CASE 161
|
|
#define IDM_WINDRUS 163
|
|
#define IDM_DOS 164
|
|
#define IDM_YSTEXT 166
|
|
|
|
#define IDM_DEAD 169
|
|
#define IDM_SHIFTDEAD 170
|
|
#define IDM_ALTGRDEAD 171
|
|
#define IDM_SHIFTALTGRDEAD 172
|
|
#define IDM_CTRLDEAD 173
|
|
|
|
#define IDM_ALTGR_TXT 173
|
|
#define IDM_SHIFT_ALTGR_TXT 174
|
|
|
|
#define IDM_K1U 201
|
|
#define IDM_K1L 202
|
|
#define IDM_K1AS 203
|
|
#define IDM_K1A 204
|
|
#define IDM_K8U 232
|
|
#define IDM_K8L 233
|
|
#define IDM_K8AS 234
|
|
#define IDM_K8A 235
|
|
|
|
/* Control IDs */
|
|
|
|
#define IDC_FILENAME 400
|
|
#define IDC_EDIT 401
|
|
#define IDC_FILES 402
|
|
#define IDC_PATH 403
|
|
#define IDC_LISTBOX 404
|
|
|
|
|
|
#define IDC_DNAME 500
|
|
#define IDC_DEDIT 501
|
|
#define IDC_DNAMS 502
|
|
#define IDC_DLISTBOX 504
|
|
|
|
#define IDC_COUNTNAME 510
|
|
#define IDC_CEDIT 511
|
|
|
|
/* IDM for Dead Keys */
|
|
#define IDM_DEAD_END 600
|
|
#define IDM_DEAD_1 601
|
|
#define IDM_DEAD_2 602
|
|
#define IDM_DEAD_3 603
|
|
#define IDM_DEAD_4 604
|
|
#define IDM_DEAD_5 605
|
|
#define IDM_DEAD_6 606
|
|
#define IDM_DEAD_7 607
|
|
#define IDM_DEAD_8 608
|
|
#define IDM_DEAD_9 609
|
|
#define IDM_DEAD_10 610
|
|
|
|
#define IDM_DEFKEY 700
|
|
#define IDM_CHANKEY 701
|
|
#define IDM_DELKEY 702
|
|
|
|
#define IDM_FONT 801
|
|
#define ID_SIZE 802
|
|
#define ID_TYPEFACE 803
|
|
#define IDS_FILTERSTRING 804
|
|
|
|
#define IDB_CP1250 301
|
|
#define IDB_CP1251 302
|
|
#define IDB_CP1252 303
|
|
#define IDB_CP1253 304
|
|
#define IDB_CP1254 305
|
|
|
|
#define BEGINX 10
|
|
#define BEGINY 10
|
|
#define MAXKEY 102 /* I know only 102 keyboard */
|
|
|
|
#define VK_0 0x30
|
|
#define VK_1 0x31
|
|
#define VK_2 0x32
|
|
#define VK_3 0x33
|
|
#define VK_4 0x34
|
|
#define VK_5 0x35
|
|
#define VK_6 0x36
|
|
#define VK_7 0x37
|
|
#define VK_8 0x38
|
|
#define VK_9 0x39
|
|
#define VK_A 0x41
|
|
#define VK_B 0x42
|
|
#define VK_C 0x43
|
|
#define VK_D 0x44
|
|
#define VK_E 0x45
|
|
#define VK_F 0x46
|
|
#define VK_G 0x47
|
|
#define VK_H 0x48
|
|
#define VK_I 0x49
|
|
#define VK_J 0x4A
|
|
#define VK_K 0x4B
|
|
#define VK_L 0x4C
|
|
#define VK_M 0x4D
|
|
#define VK_N 0x4E
|
|
#define VK_O 0x4F
|
|
#define VK_P 0x50
|
|
#define VK_Q 0x51
|
|
#define VK_R 0x52
|
|
#define VK_S 0x53
|
|
#define VK_T 0x54
|
|
#define VK_U 0x55
|
|
#define VK_V 0x56
|
|
#define VK_W 0x57
|
|
#define VK_X 0x58
|
|
#define VK_Y 0x59
|
|
#define VK_Z 0x5A
|
|
#define VK_DECIMAL 0x6E
|
|
#define VK_OEM_1 0xBA
|
|
#define VK_OEM_PLUS 0xBB
|
|
#define VK_OEM_COMMA 0xBC
|
|
#define VK_OEM_MINUS 0xBD
|
|
#define VK_OEM_PERIOD 0xBE
|
|
#define VK_OEM_2 0xBF
|
|
#define VK_OEM_3 0xC0
|
|
#define VK_OEM_4 0xDB
|
|
#define VK_OEM_5 0xDC
|
|
#define VK_OEM_6 0xDD
|
|
#define VK_OEM_7 0xDE
|
|
#define VK_OEM_8 0xDF
|
|
#define VK_OEM_102 0xE2
|
|
// C1h..DAh unassigned in USA version
|
|
// Added (YST) for Cyrillic and Greece drivers
|
|
//
|
|
#define SVK_Q 0xC1
|
|
#define SVK_W 0xC2
|
|
#define SVK_E 0xC3
|
|
#define SVK_R 0xC4
|
|
#define SVK_T 0xC5
|
|
#define SVK_Y 0xC6
|
|
#define SVK_U 0xC7
|
|
#define SVK_I 0xC8
|
|
#define SVK_O 0xC9
|
|
#define SVK_P 0xCA
|
|
#define SVK_A 0xCB
|
|
#define SVK_S 0xCC
|
|
#define SVK_D 0xCD
|
|
#define SVK_F 0xCE
|
|
#define SVK_G 0xCF
|
|
#define SVK_H 0xD0
|
|
#define SVK_J 0xD1
|
|
#define SVK_K 0xD2
|
|
#define SVK_L 0xD3
|
|
#define SVK_Z 0xD4
|
|
#define SVK_X 0xD5
|
|
#define SVK_C 0xD6
|
|
#define SVK_V 0xD7
|
|
#define SVK_B 0xD8
|
|
#define SVK_N 0xD9
|
|
#define SVK_M 0xDA
|
|
|
|
|
|
typedef struct _virt {
|
|
int vk;
|
|
WCHAR *name;
|
|
} VIRTN;
|
|
|
|
/*
|
|
* for KeyFlags field
|
|
*/
|
|
#define KF_CAPSLOCK 0x01
|
|
#define KF_DEAD_UNSHIFTED 0x02
|
|
#define KF_DEAD_SHIFT 0x04
|
|
#define KF_DEAD_ALTGR 0x08
|
|
#define KF_DEAD_SHIFT_ALTGR 0x10
|
|
#define KF_DEAD_CTRL 0x20
|
|
#define KF_DEAD_ANY (KF_DEAD_UNSHIFTED | \
|
|
KF_DEAD_SHIFT | \
|
|
KF_DEAD_ALTGR | \
|
|
KF_DEAD_SHIFT_ALTGR | \
|
|
KF_DEAD_CTRL )
|
|
|
|
typedef struct _Key {
|
|
int ScanCode;
|
|
int vk;
|
|
WCHAR LowCase;
|
|
WCHAR UpperCase;
|
|
WCHAR AltGrCase;
|
|
WCHAR ShiftAltGrCase;
|
|
WCHAR CtrlCase;
|
|
DWORD KeyFlags;
|
|
int xPos;
|
|
int yPos;
|
|
} KEY;
|
|
|
|
/* Struct for defining dead keys */
|
|
|
|
typedef struct _Def {
|
|
char Name[20]; /* name */
|
|
unsigned short Kod; /* ASCII code for dead char */
|
|
} DEFDEADKEY;
|
|
|
|
typedef struct _ChCD{
|
|
int numdead; /* index for ArrDeadKey */
|
|
int keyindex; /* index for Keys */
|
|
BYTE LowDead; /* Low case char */
|
|
BYTE UpperDead; /* Upper case char */
|
|
} CHARCORDEAD;
|
|
|
|
#define MAXFONT 20
|
|
#define MAXSIZE 20
|
|
|
|
BOOL InitApplication(HANDLE);
|
|
BOOL InitInstance(HANDLE, int);
|
|
LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
|
|
void FAR PASCAL SHOWFONT(HWND);
|
|
BOOL FAR PASCAL About(HWND, unsigned, WORD, LONG);
|
|
BOOL FAR PASCAL ShFont(HWND, unsigned, WORD, LONG);
|
|
BOOL FAR PASCAL ShKey(HWND, unsigned, WORD, LONG);
|
|
BOOL SaveFile(HWND);
|
|
BOOL QuerySaveFile(HWND);
|
|
HANDLE FAR PASCAL DeadDlg(HWND, unsigned, WORD, LONG);
|
|
HANDLE FAR PASCAL CountDlg(HWND, unsigned, WORD, LONG);
|
|
void DrawLetters(HDC hDC, short index);
|
|
void PutDlg(short index);
|
|
void FreeDead(short index);
|
|
void InitTosh(HDC hDC, HWND hWnd, BOOL First);
|
|
void CreateKeys(HWND hWnd);
|
|
void CreateInclDLL(HWND hWnd, char *country, char *filename);
|
|
BOOL bSaveFileAs(HWND hWnd);
|
|
HFILE OpenFileBox(HANDLE hInst, HWND hWnd);
|
|
BOOL FAR PASCAL UnicodeDlg(HWND hDlg, unsigned message, WPARAM wParam, LPARAM lParam);
|
|
BOOL CopyIncl(HWND hWnd, short fd, char *file);
|
|
void CreateNTDLL(HWND hWnd, LPSTR country, LPSTR filename, short sUTable);
|
|
void SelChanKeys(void);
|