summaryrefslogtreecommitdiff
path: root/packages/winunits-base
diff options
context:
space:
mode:
authormarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-08-14 14:59:04 +0000
committermarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-08-14 14:59:04 +0000
commitb6c80f9776cad1ad8b281fad278df149c2b9238c (patch)
treed897c6ff1398b429e3679612fc3c1b9522e1779c /packages/winunits-base
parent92d061136a51b117963f8a03ef4c2f8d43497bc8 (diff)
downloadfpc-b6c80f9776cad1ad8b281fad278df149c2b9238c.tar.gz
* Patch from Dmitry. imm + a dynloaded variant to be used for w9x. Mantis 17167
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15810 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/winunits-base')
-rw-r--r--packages/winunits-base/Makefile124
-rw-r--r--packages/winunits-base/Makefile.fpc2
-rw-r--r--packages/winunits-base/src/buildwinutilsbase.pp2
-rw-r--r--packages/winunits-base/src/imm.pas652
-rw-r--r--packages/winunits-base/src/imm_dyn.pas224
5 files changed, 940 insertions, 64 deletions
diff --git a/packages/winunits-base/Makefile b/packages/winunits-base/Makefile
index 608f38e524..2292cdd3a5 100644
--- a/packages/winunits-base/Makefile
+++ b/packages/winunits-base/Makefile
@@ -1,5 +1,5 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2010/08/05]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2010/08/11]
#
default: all
MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux
@@ -450,187 +450,187 @@ ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=buildwinutilsbase
endif
ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+override TARGET_IMPLICITUNITS+=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_RSTS+=jwawintype comconst
diff --git a/packages/winunits-base/Makefile.fpc b/packages/winunits-base/Makefile.fpc
index 277f35271e..92b1bfb54b 100644
--- a/packages/winunits-base/Makefile.fpc
+++ b/packages/winunits-base/Makefile.fpc
@@ -12,7 +12,7 @@ packages=fcl-registry fcl-base
[target]
units=buildwinutilsbase
implicitunits=flatsb winver mmsystem comobj comconst commdlg commctrl ole2 activex shellapi shlobj oleserver \
- shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool
+ shfolder richedit imagehlp wininet uxtheme dwmapi multimon htmlhelp winutils comserv winspool imm imm_dyn
examples=examples
diff --git a/packages/winunits-base/src/buildwinutilsbase.pp b/packages/winunits-base/src/buildwinutilsbase.pp
index 917dc3b78a..c855bc2e41 100644
--- a/packages/winunits-base/src/buildwinutilsbase.pp
+++ b/packages/winunits-base/src/buildwinutilsbase.pp
@@ -24,7 +24,7 @@ uses
flatsb, winver, mmsystem, comconst, commctrl, comobj, commdlg,
ole2, activex, shellapi, shlobj, oleserver, shfolder, richedit,
imagehlp, wininet, uxtheme, dwmapi, multimon, htmlhelp, winutils,
- comserv, winspool;
+ comserv, winspool, imm, imm_dyn;
implementation
diff --git a/packages/winunits-base/src/imm.pas b/packages/winunits-base/src/imm.pas
new file mode 100644
index 0000000000..21e1b2ded8
--- /dev/null
+++ b/packages/winunits-base/src/imm.pas
@@ -0,0 +1,652 @@
+(********************************************************************* *)
+(* imm.h - Input Method Manager definitions *)
+(* *)
+(* Copyright (c) Microsoft Corporation. All rights reserved. *)
+(* *)
+(* Converted to pascal by Dmitry Boyarintsev, using Chelper. *)
+(* *)
+(********************************************************************* *)
+
+unit
+ imm;
+
+{$mode delphi}
+
+interface
+
+uses
+ Windows;
+
+{$PACKRECORDS C}
+
+// IME_Codes
+// bit field for conversion mode
+const
+ IME_CMODE_ALPHANUMERIC = $0000;
+ IME_CMODE_NATIVE = $0001;
+ IME_CMODE_CHINESE = IME_CMODE_NATIVE;
+ IME_CMODE_HANGUL = IME_CMODE_NATIVE;
+ IME_CMODE_JAPANESE = IME_CMODE_NATIVE;
+ IME_CMODE_KATAKANA = $0002; // only effect under IME_CMODE_NATIVE
+ IME_CMODE_LANGUAGE = $0003;
+ IME_CMODE_FULLSHAPE = $0008;
+ IME_CMODE_ROMAN = $0010;
+ IME_CMODE_CHARCODE = $0020;
+ IME_CMODE_HANJACONVERT = $0040;
+
+type
+ HIMC = DWORD;
+ HIMCC = DWORD;
+
+type
+ PHKL = ^HKL;
+ LPHKL = PHKL;
+
+type
+ LPUINT = PUINT;
+
+// declared at rtl\win\wininc\struct.inc
+{type
+ PtagCOMPOSITIONFORM = ^tagCOMPOSITIONFORM;
+ tagCOMPOSITIONFORM = record
+ dwStyle : DWORD;
+ ptCurrentPos : POINT;
+ rcArea : RECT;
+ end;
+ COMPOSITIONFORM = tagCOMPOSITIONFORM;
+ PCOMPOSITIONFORM = PtagCOMPOSITIONFORM;
+ NPCOMPOSITIONFORM = PtagCOMPOSITIONFORM;
+ LPCOMPOSITIONFORM = PtagCOMPOSITIONFORM;}
+
+// declared at rtl\win\wininc\struct.inc
+{type
+ PtagCANDIDATEFORM = ^tagCANDIDATEFORM;
+ tagCANDIDATEFORM = packed record
+ dwIndex : DWORD;
+ dwStyle : DWORD;
+ ptCurrentPos : POINT;
+ rcArea : RECT;
+ end;
+ CANDIDATEFORM = tagCANDIDATEFORM;
+ PCANDIDATEFORM = PtagCANDIDATEFORM;
+ NPCANDIDATEFORM = PtagCANDIDATEFORM;
+ LPCANDIDATEFORM = PtagCANDIDATEFORM;}
+
+
+// declared at rtl\win\wininc\struct.inc
+{type
+ PtagCANDIDATELIST = ^tagCANDIDATELIST;
+ tagCANDIDATELIST = packed record
+ dwSize : DWORD;
+ dwStyle : DWORD;
+ dwCount : DWORD;
+ dwSelection : DWORD;
+ dwPageStart : DWORD;
+ dwPageSize : DWORD;
+ dwOffset : array [0..0] of DWORD;
+ end;
+ CANDIDATELIST = tagCANDIDATELIST;
+ PCANDIDATELIST = PtagCANDIDATELIST;
+ NPCANDIDATELIST = PtagCANDIDATELIST;
+ LPCANDIDATELIST = PtagCANDIDATELIST;}
+
+
+type
+ PtagREGISTERWORDA = ^tagREGISTERWORDA;
+ tagREGISTERWORDA = packed record
+ lpReading : LPSTR;
+ lpWord : LPSTR;
+ end;
+ REGISTERWORDA = tagREGISTERWORDA;
+ TREGISTERWORDA = REGISTERWORDA;
+ PREGISTERWORDA = PtagREGISTERWORDA;
+ NPREGISTERWORDA = PtagREGISTERWORDA;
+ LPREGISTERWORDA = PtagREGISTERWORDA;
+
+type
+ PtagREGISTERWORDW = ^tagREGISTERWORDW;
+ tagREGISTERWORDW = packed record
+ lpReading : LPWSTR;
+ lpWord : LPWSTR;
+ end;
+ REGISTERWORDW = tagREGISTERWORDW;
+ TREGISTERWORDW = REGISTERWORDW;
+ PREGISTERWORDW = PtagREGISTERWORDW;
+ NPREGISTERWORDW = PtagREGISTERWORDW;
+ LPREGISTERWORDW = PtagREGISTERWORDW;
+
+type
+ PtagRECONVERTSTRING = ^tagRECONVERTSTRING;
+ tagRECONVERTSTRING = packed record
+ dwSize : DWORD;
+ dwVersion : DWORD;
+ dwStrLen : DWORD;
+ dwStrOffset : DWORD;
+ dwCompStrLen : DWORD;
+ dwCompStrOffset : DWORD;
+ dwTargetStrLen : DWORD;
+ dwTargetStrOffset : DWORD;
+ end;
+ RECONVERTSTRING = tagRECONVERTSTRING;
+ TRECONVERTSTRING = RECONVERTSTRING;
+ PRECONVERTSTRING = PtagRECONVERTSTRING;
+ NPRECONVERTSTRING = PtagRECONVERTSTRING;
+ LPRECONVERTSTRING = PtagRECONVERTSTRING;
+
+const
+ STYLE_DESCRIPTION_SIZE = 32;
+
+type
+ PtagSTYLEBUFA = ^tagSTYLEBUFA;
+ tagSTYLEBUFA = packed record
+ dwStyle : DWORD;
+ szDescription : array [0..STYLE_DESCRIPTION_SIZE-1] of AnsiChar;
+ end;
+ STYLEBUFA = tagSTYLEBUFA;
+ TSTYLEBUFA = STYLEBUFA;
+ PSTYLEBUFA = PtagSTYLEBUFA;
+ NPSTYLEBUFA = PtagSTYLEBUFA;
+ LPSTYLEBUFA = PtagSTYLEBUFA;
+
+type
+ PtagSTYLEBUFW = ^tagSTYLEBUFW;
+ tagSTYLEBUFW = packed record
+ dwStyle : DWORD;
+ szDescription : array [0..STYLE_DESCRIPTION_SIZE-1] of WCHAR;
+ end;
+ STYLEBUFW = tagSTYLEBUFW;
+ TSTYLEBUFW = STYLEBUFW;
+ PSTYLEBUFW = PtagSTYLEBUFW;
+ NPSTYLEBUFW = PtagSTYLEBUFW;
+ LPSTYLEBUFW = PtagSTYLEBUFW;
+
+const
+ IMEMENUITEM_STRING_SIZE = 80;
+
+type
+ PtagIMEMENUITEMINFOA = ^tagIMEMENUITEMINFOA;
+ tagIMEMENUITEMINFOA = packed record
+ cbSize : UINT;
+ fType : UINT;
+ fState : UINT;
+ wID : UINT;
+ hbmpChecked : HBITMAP;
+ hbmpUnchecked : HBITMAP;
+ dwItemData : DWORD;
+ szString : array [0..IMEMENUITEM_STRING_SIZE-1] of AnsiChar;
+ hbmpItem : HBITMAP;
+ end;
+ IMEMENUITEMINFOA = tagIMEMENUITEMINFOA;
+ TIMEMENUITEMINFOA = IMEMENUITEMINFOA;
+ PIMEMENUITEMINFOA = PtagIMEMENUITEMINFOA;
+ NPIMEMENUITEMINFOA = PtagIMEMENUITEMINFOA;
+ LPIMEMENUITEMINFOA = PtagIMEMENUITEMINFOA;
+
+type
+ PtagIMEMENUITEMINFOW = ^tagIMEMENUITEMINFOW;
+ tagIMEMENUITEMINFOW = packed record
+ cbSize : UINT;
+ fType : UINT;
+ fState : UINT;
+ wID : UINT;
+ hbmpChecked : HBITMAP;
+ hbmpUnchecked : HBITMAP;
+ dwItemData : DWORD;
+ szString : array [0..IMEMENUITEM_STRING_SIZE-1] of WCHAR;
+ hbmpItem : HBITMAP;
+ end;
+ IMEMENUITEMINFOW = tagIMEMENUITEMINFOW;
+ TIMEMENUITEMINFOW = IMEMENUITEMINFOW;
+ PIMEMENUITEMINFOW = PtagIMEMENUITEMINFOW;
+ NPIMEMENUITEMINFOW = PtagIMEMENUITEMINFOW;
+ LPIMEMENUITEMINFOW = PtagIMEMENUITEMINFOW;
+
+type
+ PtagIMECHARPOSITION = ^tagIMECHARPOSITION;
+ tagIMECHARPOSITION = packed record
+ dwSize : DWORD;
+ dwCharPos : DWORD;
+ pt : POINT;
+ cLineHeight : UINT;
+ rcDocument : RECT;
+ end;
+ IMECHARPOSITION = tagIMECHARPOSITION;
+ TIMECHARPOSITION = IMECHARPOSITION;
+ PIMECHARPOSITION = PtagIMECHARPOSITION;
+ NPIMECHARPOSITION = PtagIMECHARPOSITION;
+ LPIMECHARPOSITION = PtagIMECHARPOSITION;
+
+type
+ IMCENUMPROC = function(par0: HIMC; par1: LPARAM): LongBool; stdcall;
+ TIMCENUMPROC = IMCENUMPROC;
+
+// prototype of IMM API
+
+const
+ Imm = 'imm32';
+
+function ImmInstallIMEA(lpszIMEFileName, lpszLayoutText: LPCSTR): HKL; stdcall; external Imm name 'ImmInstallIMEA';
+function ImmInstallIMEW(lpszIMEFileName, lpszLayoutText: LPCWSTR): HKL; stdcall; external Imm name 'ImmInstallIMEW';
+function ImmGetDefaultIMEWnd(wnd: HWND): HWND; stdcall; external Imm name 'ImmGetDefaultIMEWnd';
+function ImmGetDescriptionA(kl: HKL; lpszDescription: LPSTR; uBufLen: UINT): UINT; stdcall; external Imm name 'ImmGetDescriptionA';
+function ImmGetDescriptionW(kl: HKL; lpszDescription: LPWSTR; uBufLen: UINT): UINT; stdcall; external Imm name 'ImmGetDescriptionW';
+
+function ImmGetIMEFileNameA(kl: HKL; lpszFileName: LPSTR; uBufLen: UINT): UINT; stdcall; external Imm name 'ImmGetIMEFileNameA';
+function ImmGetIMEFileNameW(kl: HKL; lpszFileName: LPWSTR; uBufLen: UINT): UINT; stdcall; external Imm name 'ImmGetIMEFileNameW';
+
+function ImmGetProperty (kl: HKL; fdwIndex: DWORD): DWORD; stdcall; external Imm name 'ImmGetProperty';
+function ImmIsIME(kl: HKL): LongBool; stdcall; external Imm name 'ImmIsIME';
+function ImmSimulateHotKey(wnd: HWND; dwHotKeyID: DWORD): LongBool; stdcall; external Imm name 'ImmSimulateHotKey';
+
+function ImmCreateContext: HIMC; stdcall; external Imm name 'ImmCreateContext';
+function ImmDestroyContext(imc: HIMC): LongBool; stdcall; external Imm name 'ImmDestroyContext';
+function ImmGetContext(wnd: HWND): HIMC; stdcall; external Imm name 'ImmGetContext';
+
+function ImmReleaseContext(wnd: HWND; imc: HIMC): LongBool; stdcall; external Imm name 'ImmReleaseContext';
+function ImmAssociateContext(wnd: HWND; imc: HIMC): HIMC; stdcall; external Imm name 'ImmAssociateContext';
+
+function ImmAssociateContextEx(wnd: HWND; imc: HIMC; dwFlags: DWORD): LongBool; stdcall; external Imm name 'ImmAssociateContextEx';
+function ImmGetCompositionStringA(imc: HIMC; dwIndex: DWORD;
+ lpBuf: LPVOID; dwBufLen: DWORD): Longword; stdcall; external Imm name 'ImmGetCompositionStringA';
+function ImmGetCompositionStringW(imc: HIMC; dwIndex: DWORD;
+ lpBuf: LPVOID; dwBufLen: DWORD): Longword; stdcall; external Imm name 'ImmGetCompositionStringW';
+
+function ImmSetCompositionStringA(imc: HIMC; dwIndex: DWORD; lpComp: LPVOID;
+ dwCompLen: DWORD; lpRead: LPVOID; dwReadLen: DWORD): LongBool; stdcall; external Imm name 'ImmSetCompositionStringA';
+function ImmSetCompositionStringW(imc: HIMC; dwIndex: DWORD; lpComp: LPVOID;
+ dwCompLen: DWORD; lpRead: LPVOID; dwReadLen: DWORD): LongBool; stdcall; external Imm name 'ImmSetCompositionStringW';
+
+function ImmGetCandidateListCountA(imc: HIMC; lpdwListCount: LPDWORD): DWORD; stdcall; external Imm name 'ImmGetCandidateListCountA';
+function ImmGetCandidateListCountW(imc: HIMC; lpdwListCount: LPDWORD): DWORD; stdcall; external Imm name 'ImmGetCandidateListCountW';
+
+function ImmGetCandidateListA(imc: HIMC; deIndex: DWORD;
+ lpCandList: LPCANDIDATELIST; dwBufLen: DWORD): DWORD; stdcall; external Imm name 'ImmGetCandidateListA';
+function ImmGetCandidateListW(imc: HIMC; deIndex: DWORD;
+ lpCandList: LPCANDIDATELIST; dwBufLen: DWORD): DWORD; stdcall; external Imm name 'ImmGetCandidateListW';
+
+function ImmGetGuideLineA(imc: HIMC; dwIndex: DWORD; lpBuf: LPSTR;
+ dwBufLen: DWORD): DWORD; stdcall ; external Imm name 'ImmGetGuideLineA';
+function ImmGetGuideLineW(imc: HIMC; dwIndex: DWORD; lpBuf: LPWSTR;
+ dwBufLen: DWORD): DWORD; stdcall ; external Imm name 'ImmGetGuideLineW';
+
+function ImmGetConversionStatus(imc: HIMC; lpfdwConversion, lpfdwSentence: LPDWORD): LongBool; stdcall ; external Imm name 'ImmGetConversionStatus';
+function ImmSetConversionStatus(imc: HIMC; fdwConversion, fdwSentence: DWORD): LongBool; stdcall ; external Imm name 'ImmSetConversionStatus';
+function ImmGetOpenStatus(imc: HIMC): LongBool; stdcall ; external Imm name 'ImmGetOpenStatus';
+function ImmSetOpenStatus(imc: HIMC; par1: LongBool): LongBool; stdcall ; external Imm name 'ImmSetOpenStatus';
+
+function ImmGetCompositionFontA(imc: HIMC; lplf: PLOGFONTA): LongBool; stdcall ; external Imm name 'ImmGetCompositionFontA';
+function ImmGetCompositionFontW(imc: HIMC; lplf: PLOGFONTW): LongBool; stdcall ; external Imm name 'ImmGetCompositionFontW';
+
+function ImmSetCompositionFontA(imc: HIMC; lplf: PLOGFONTA): LongBool; stdcall ; external Imm name 'ImmSetCompositionFontA';
+function ImmSetCompositionFontW(imc: HIMC; lplf: PLOGFONTW): LongBool; stdcall ; external Imm name 'ImmSetCompositionFontW';
+
+function ImmConfigureIMEA(kl: HKL; wnd: HWND; dwMode: DWORD; lpData: LPVOID): LongBool; stdcall ; external Imm name 'ImmConfigureIMEA';
+function ImmConfigureIMEW(kl: HKL; wnd: HWND; dwMode: DWORD; lpData: LPVOID): LongBool; stdcall ; external Imm name 'ImmConfigureIMEW';
+
+function ImmEscapeA(kl: HKL; imc: HIMC; uEscape: UINT; lpData: LPVOID): LRESULT; stdcall ; external Imm name 'ImmEscapeA';
+function ImmEscapeW(kl: HKL; imc: HIMC; uEscape: UINT; lpData: LPVOID): LRESULT; stdcall ; external Imm name 'ImmEscapeW';
+
+function ImmGetConversionListA(kl: HKL; imc: HIMC; lpSrc: LPCSTR;
+ lpDst: LPCANDIDATELIST; dwBufLen: DWORD; uFlag: UINT): DWORD; stdcall ; external Imm name 'ImmGetConversionListA';
+function ImmGetConversionListW(kl: HKL; imc: HIMC; lpSrc: LPCWSTR;
+ lpDst: LPCANDIDATELIST; dwBufLen: DWORD; uFlag: UINT): DWORD; stdcall ; external Imm name 'ImmGetConversionListW';
+
+function ImmNotifyIME(imc: HIMC; dwAction, dwIndex, dwValue: DWORD): LongBool; stdcall ; external Imm name 'ImmNotifyIME';
+function ImmGetStatusWindowPos(imc: HIMC; lpptPos: LPPOINT): LongBool; stdcall ; external Imm name 'ImmGetStatusWindowPos';
+function ImmSetStatusWindowPos(imc: HIMC; lpptPos: LPPOINT): LongBool; stdcall ; external Imm name 'ImmSetStatusWindowPos';
+function ImmGetCompositionWindow(imc: HIMC; lpCompForm: LPCOMPOSITIONFORM): LongBool; stdcall ; external Imm name 'ImmGetCompositionWindow';
+function ImmSetCompositionWindow(imc: HIMC; lpCompForm: LPCOMPOSITIONFORM): LongBool; stdcall ; external Imm name 'ImmSetCompositionWindow';
+function ImmGetCandidateWindow(imc: HIMC; par1: DWORD; lpCandidate: LPCANDIDATEFORM): LongBool; stdcall ; external Imm name 'ImmGetCandidateWindow(';
+function ImmSetCandidateWindow(imc: HIMC; lpCandidate: LPCANDIDATEFORM): LongBool; stdcall ; external Imm name 'ImmSetCandidateWindow';
+
+function ImmIsUIMessageA(wnd: HWND; msg: UINT; wPar: WPARAM; lPar: LPARAM): LongBool; stdcall ; external Imm name 'ImmIsUIMessageA';
+function ImmIsUIMessageW(wnd: HWND; msg: UINT; wPar: WPARAM; lPar: LPARAM): LongBool; stdcall ; external Imm name 'ImmIsUIMessageW';
+
+function ImmGetVirtualKey(wnd: HWND): UINT; stdcall ; external Imm name 'ImmGetVirtualKey';
+
+type
+ REGISTERWORDENUMPROCA = function(lpszReading: LPCSTR; par1: DWORD;
+ lpszString: LPCSTR; par3: LPVOID): Integer; stdcall;
+ TREGISTERWORDENUMPROCA = REGISTERWORDENUMPROCA;
+
+ REGISTERWORDENUMPROCW = function(lpszReading: LPCWSTR; par1: DWORD;
+ lpszString: LPCWSTR; par3: LPVOID): Integer; stdcall;
+ TREGISTERWORDENUMPROCW = REGISTERWORDENUMPROCW;
+
+function ImmRegisterWordA(kl: HKL; lpszReading: LPCSTR; dwStyle: DWORD; lpszRegister: LPCSTR): LongBool; stdcall ; external Imm name 'ImmRegisterWordA';
+function ImmRegisterWordW(kl: HKL; lpszReading: LPCWSTR; dwStyle: DWORD; lpszRegister: LPCWSTR): LongBool; stdcall ; external Imm name 'ImmRegisterWordW';
+
+function ImmUnregisterWordA(kl: HKL; lpszReading: LPCSTR; dwStyle: DWORD; lpszUnregister: LPCSTR): LongBool; stdcall ; external Imm name 'ImmUnregisterWordA';
+function ImmUnregisterWordW(kl: HKL; lpszReading: LPCWSTR; dwStyle: DWORD; lpszUnregister: LPCWSTR): LongBool; stdcall ; external Imm name 'ImmUnregisterWordW';
+
+function ImmGetRegisterWordStyleA(kl: HKL; nItem: UINT; lpStyleBuf: LPSTYLEBUFA): UINT; stdcall ; external Imm name 'ImmGetRegisterWordStyleA';
+function ImmGetRegisterWordStyleW(kl: HKL; nItem: UINT; lpStyleBuf: LPSTYLEBUFW): UINT; stdcall ; external Imm name 'ImmGetRegisterWordStyleW';
+
+function ImmEnumRegisterWordA(kl: HKL; lpfnEnumProc: REGISTERWORDENUMPROCA;
+ lpszReading: LPCSTR; dwStyle: DWORD; lpszRegister: LPCSTR; lpData: LPVOID): UINT; stdcall ; external Imm name 'ImmEnumRegisterWordA';
+function ImmEnumRegisterWordW(kl: HKL; lpfnEnumProc: REGISTERWORDENUMPROCW;
+ lpszReading: LPCWSTR; dwStyle: DWORD; lpszRegister: LPCWSTR; lpData: LPVOID): UINT; stdcall ; external Imm name 'ImmEnumRegisterWordW';
+
+function ImmDisableIME(idThread: DWORD): LongBool; stdcall ; external Imm name 'ImmDisableIME';
+function ImmEnumInputContext(idThread: DWORD; lpfn: IMCENUMPROC; lParam: LPARAM): LongBool; stdcall ; external Imm name 'ImmEnumInputContext';
+function ImmGetImeMenuItemsA(imc: HIMC; dwFlags, dwType: DWORD;
+ lpImeParentMenu, lpImeMenu: LPIMEMENUITEMINFOA; dwSize: DWORD): DWORD; stdcall ; external Imm name 'ImmGetImeMenuItemsA';
+function ImmGetImeMenuItemsW(par0: HIMC; dwFlags, dwType: DWORD;
+ lpImeParentMenu, lpImeMenu: LPIMEMENUITEMINFOW; dwSize: DWORD): DWORD; stdcall ; external Imm name 'ImmGetImeMenuItemsW';
+
+function ImmDisableTextFrameService(idThread: DWORD): LongBool; stdcall ; external Imm name 'ImmDisableTextFrameService';
+
+// wParam for WM_IME_CONTROL
+const
+ IMC_GETCANDIDATEPOS = $0007;
+ IMC_SETCANDIDATEPOS = $0008;
+ IMC_GETCOMPOSITIONFONT = $0009;
+ IMC_SETCOMPOSITIONFONT = $000A;
+ IMC_GETCOMPOSITIONWINDOW = $000B;
+ IMC_SETCOMPOSITIONWINDOW = $000C;
+ IMC_GETSTATUSWINDOWPOS = $000F;
+ IMC_SETSTATUSWINDOWPOS = $0010;
+ IMC_CLOSESTATUSWINDOW = $0021;
+ IMC_OPENSTATUSWINDOW = $0022;
+
+ // dwAction for ImmNotifyIME
+ NI_OPENCANDIDATE = $0010;
+ NI_CLOSECANDIDATE = $0011;
+ NI_SELECTCANDIDATESTR = $0012;
+ NI_CHANGECANDIDATELIST = $0013;
+ NI_FINALIZECONVERSIONRESULT = $0014;
+ NI_COMPOSITIONSTR = $0015;
+ NI_SETCANDIDATE_PAGESTART = $0016;
+ NI_SETCANDIDATE_PAGESIZE = $0017;
+ NI_IMEMENUSELECTED = $0018;
+
+ // lParam for WM_IME_SETCONTEXT
+ ISC_SHOWUICANDIDATEWINDOW = $00000001;
+ ISC_SHOWUICOMPOSITIONWINDOW = $80000000;
+ ISC_SHOWUIGUIDELINE = $40000000;
+ ISC_SHOWUIALLCANDIDATEWINDOW = $0000000F;
+ ISC_SHOWUIALL = $C000000F;
+
+ // dwIndex for ImmNotifyIME/NI_COMPOSITIONSTR
+ CPS_COMPLETE = $0001;
+ CPS_CONVERT = $0002;
+ CPS_REVERT = $0003;
+ CPS_CANCEL = $0004;
+
+ // the modifiers of hot key
+ MOD_ALT = $0001;
+ MOD_CONTROL = $0002;
+ MOD_SHIFT = $0004;
+ MOD_LEFT = $8000;
+ MOD_RIGHT = $4000;
+ MOD_ON_KEYUP = $0800;
+ MOD_IGNORE_ALL_MODIFIER = $0400;
+
+ // Windows for Simplified Chinese Edition hot key ID from 0x10 - 0x2F
+ IME_CHOTKEY_IME_NONIME_TOGGLE = $10;
+ IME_CHOTKEY_SHAPE_TOGGLE = $11;
+ IME_CHOTKEY_SYMBOL_TOGGLE = $12;
+
+ // Windows for Japanese Edition hot key ID from 0x30 - 0x4F
+ IME_JHOTKEY_CLOSE_OPEN = $30;
+
+ // Windows for Korean Edition hot key ID from 0x50 - 0x6F
+ IME_KHOTKEY_SHAPE_TOGGLE = $50;
+ IME_KHOTKEY_HANJACONVERT = $51;
+ IME_KHOTKEY_ENGLISH = $52;
+
+ // Windows for Traditional Chinese Edition hot key ID from 0x70 - 0x8F
+ IME_THOTKEY_IME_NONIME_TOGGLE = $70;
+ IME_THOTKEY_SHAPE_TOGGLE = $71;
+ IME_THOTKEY_SYMBOL_TOGGLE = $72;
+
+ // direct switch hot key ID from 0x100 - 0x11F
+ IME_HOTKEY_DSWITCH_FIRST = $100;
+ IME_HOTKEY_DSWITCH_LAST = $11F;
+
+ // IME private hot key from 0x200 - 0x21F
+ IME_HOTKEY_PRIVATE_FIRST = $200;
+ IME_ITHOTKEY_RESEND_RESULTSTR = $200;
+ IME_ITHOTKEY_PREVIOUS_COMPOSITION = $201;
+ IME_ITHOTKEY_UISTYLE_TOGGLE = $202;
+ IME_ITHOTKEY_RECONVERTSTRING = $203;
+ IME_HOTKEY_PRIVATE_LAST = $21F;
+
+ // parameter of ImmGetCompositionString
+ GCS_COMPREADSTR = $0001;
+ GCS_COMPREADATTR = $0002;
+ GCS_COMPREADCLAUSE = $0004;
+ GCS_COMPSTR = $0008;
+ GCS_COMPATTR = $0010;
+ GCS_COMPCLAUSE = $0020;
+ GCS_CURSORPOS = $0080;
+ GCS_DELTASTART = $0100;
+ GCS_RESULTREADSTR = $0200;
+ GCS_RESULTREADCLAUSE = $0400;
+ GCS_RESULTSTR = $0800;
+ GCS_RESULTCLAUSE = $1000;
+
+ // style bit flags for WM_IME_COMPOSITION
+ CS_INSERTCHAR = $2000;
+ CS_NOMOVECARET = $4000;
+
+ // IME version constants
+ IMEVER_0310 = $0003000A;
+ IMEVER_0400 = $00040000;
+
+
+ // IME property bits
+ IME_PROP_AT_CARET = $00010000;
+ IME_PROP_SPECIAL_UI = $00020000;
+ IME_PROP_CANDLIST_START_FROM_1 = $00040000;
+ IME_PROP_UNICODE = $00080000;
+ IME_PROP_COMPLETE_ON_UNSELECT = $00100000;
+
+ // IME UICapability bits
+ UI_CAP_2700 = $00000001;
+ UI_CAP_ROT90 = $00000002;
+ UI_CAP_ROTANY = $00000004;
+
+ // ImmSetCompositionString Capability bits
+ SCS_CAP_COMPSTR = $00000001;
+ SCS_CAP_MAKEREAD = $00000002;
+ SCS_CAP_SETRECONVERTSTRING = $00000004;
+
+ // IME WM_IME_SELECT inheritance Capability bits
+ SELECT_CAP_CONVERSION = $00000001;
+ SELECT_CAP_SENTENCE = $00000002;
+
+ // ID for deIndex of ImmGetGuideLine
+ GGL_LEVEL = $00000001;
+ GGL_INDEX = $00000002;
+ GGL_STRING = $00000003;
+ GGL_PRIVATE = $00000004;
+
+ // ID for dwLevel of GUIDELINE Structure
+ GL_LEVEL_NOGUIDELINE = $00000000;
+ GL_LEVEL_FATAL = $00000001;
+ GL_LEVEL_ERROR = $00000002;
+ GL_LEVEL_WARNING = $00000003;
+ GL_LEVEL_INFORMATION = $00000004;
+
+ // ID for dwIndex of GUIDELINE Structure
+ GL_ID_UNKNOWN = $00000000;
+ GL_ID_NOMODULE = $00000001;
+ GL_ID_NODICTIONARY = $00000010;
+ GL_ID_CANNOTSAVE = $00000011;
+ GL_ID_NOCONVERT = $00000020;
+ GL_ID_TYPINGERROR = $00000021;
+ GL_ID_TOOMANYSTROKE = $00000022;
+ GL_ID_READINGCONFLICT = $00000023;
+ GL_ID_INPUTREADING = $00000024;
+ GL_ID_INPUTRADICAL = $00000025;
+ GL_ID_INPUTCODE = $00000026;
+ GL_ID_INPUTSYMBOL = $00000027;
+ GL_ID_CHOOSECANDIDATE = $00000028;
+ GL_ID_REVERSECONVERSION = $00000029;
+ GL_ID_PRIVATE_FIRST = $00008000;
+ GL_ID_PRIVATE_LAST = $0000FFFF;
+
+ // ID for dwIndex of ImmGetProperty
+ IGP_GETIMEVERSION = -4;
+ IGP_PROPERTY = $00000004;
+ IGP_CONVERSION = $00000008;
+ IGP_SENTENCE = $0000000c;
+ IGP_UI = $00000010;
+ IGP_SETCOMPSTR = $00000014;
+ IGP_SELECT = $00000018;
+
+ // dwIndex for ImmSetCompositionString API
+ SCS_SETSTR = (GCS_COMPREADSTR or GCS_COMPSTR);
+ SCS_CHANGEATTR = (GCS_COMPREADATTR or GCS_COMPATTR);
+ SCS_CHANGECLAUSE = (GCS_COMPREADCLAUSE or GCS_COMPCLAUSE);
+ SCS_SETRECONVERTSTRING = $00010000;
+ SCS_QUERYRECONVERTSTRING = $00020000;
+
+ // attribute for COMPOSITIONSTRING Structure
+ ATTR_INPUT = $00;
+ ATTR_TARGET_CONVERTED = $01;
+ ATTR_CONVERTED = $02;
+ ATTR_TARGET_NOTCONVERTED = $03;
+ ATTR_INPUT_ERROR = $04;
+ ATTR_FIXEDCONVERTED = $05;
+
+ // bit field for IMC_SETCOMPOSITIONWINDOW, IMC_SETCANDIDATEWINDOW
+ CFS_DEFAULT = $0000;
+ CFS_RECT = $0001;
+ CFS_POINT = $0002;
+ CFS_FORCE_POSITION = $0020;
+ CFS_CANDIDATEPOS = $0040;
+ CFS_EXCLUDE = $0080;
+
+ // conversion direction for ImmGetConversionList
+ GCL_CONVERSION = $0001;
+ GCL_REVERSECONVERSION = $0002;
+ GCL_REVERSE_LENGTH = $0003;
+
+ // bit field for conversion mode
+ // IME_CMODE_HANGEUL is old name of IME_CMODE_HANGUL. It will be gone eventually.
+ IME_CMODE_HANGEUL = IME_CMODE_NATIVE;
+ IME_CMODE_SOFTKBD = $0080;
+ IME_CMODE_NOCONVERSION = $0100;
+ IME_CMODE_EUDC = $0200;
+ IME_CMODE_SYMBOL = $0400;
+ IME_CMODE_FIXED = $0800;
+ IME_CMODE_RESERVED = $F0000000;
+
+ // bit field for sentence mode
+ IME_SMODE_NONE = $0000;
+ IME_SMODE_PLAURALCLAUSE = $0001;
+ IME_SMODE_SINGLECONVERT = $0002;
+ IME_SMODE_AUTOMATIC = $0004;
+ IME_SMODE_PHRASEPREDICT = $0008;
+ IME_SMODE_CONVERSATION = $0010;
+ IME_SMODE_RESERVED = $0000F000;
+
+ // style of candidate
+ IME_CAND_UNKNOWN = $0000;
+ IME_CAND_READ = $0001;
+ IME_CAND_CODE = $0002;
+ IME_CAND_MEANING = $0003;
+ IME_CAND_RADICAL = $0004;
+ IME_CAND_STROKE = $0005;
+
+ // wParam of report message WM_IME_NOTIFY
+ IMN_CLOSESTATUSWINDOW = $0001;
+ IMN_OPENSTATUSWINDOW = $0002;
+ IMN_CHANGECANDIDATE = $0003;
+ IMN_CLOSECANDIDATE = $0004;
+ IMN_OPENCANDIDATE = $0005;
+ IMN_SETCONVERSIONMODE = $0006;
+ IMN_SETSENTENCEMODE = $0007;
+ IMN_SETOPENSTATUS = $0008;
+ IMN_SETCANDIDATEPOS = $0009;
+ IMN_SETCOMPOSITIONFONT = $000A;
+ IMN_SETCOMPOSITIONWINDOW = $000B;
+ IMN_SETSTATUSWINDOWPOS = $000C;
+ IMN_GUIDELINE = $000D;
+ IMN_PRIVATE = $000E;
+
+ // wParam of report message WM_IME_REQUEST
+ IMR_COMPOSITIONWINDOW = $0001;
+ IMR_CANDIDATEWINDOW = $0002;
+ IMR_COMPOSITIONFONT = $0003;
+ IMR_RECONVERTSTRING = $0004;
+ IMR_CONFIRMRECONVERTSTRING = $0005;
+ IMR_QUERYCHARPOSITION = $0006;
+ IMR_DOCUMENTFEED = $0007;
+
+ // error code of ImmGetCompositionString
+ IMM_ERROR_NODATA = -1;
+ IMM_ERROR_GENERAL = -2;
+
+ // dialog mode of ImmConfigureIME
+ IME_CONFIG_GENERAL = 1;
+ IME_CONFIG_REGISTERWORD = 2;
+ IME_CONFIG_SELECTDICTIONARY = 3;
+
+ // flags for ImmEscape
+ IME_ESC_QUERY_SUPPORT = $0003;
+ IME_ESC_RESERVED_FIRST = $0004;
+ IME_ESC_RESERVED_LAST = $07FF;
+ IME_ESC_PRIVATE_FIRST = $0800;
+ IME_ESC_PRIVATE_LAST = $0FFF;
+ IME_ESC_SEQUENCE_TO_INTERNAL = $1001;
+ IME_ESC_GET_EUDC_DICTIONARY = $1003;
+ IME_ESC_SET_EUDC_DICTIONARY = $1004;
+ IME_ESC_MAX_KEY = $1005;
+ IME_ESC_IME_NAME = $1006;
+ IME_ESC_SYNC_HOTKEY = $1007;
+ IME_ESC_HANJA_MODE = $1008;
+ IME_ESC_AUTOMATA = $1009;
+ IME_ESC_PRIVATE_HOTKEY = $100a;
+ IME_ESC_GETHELPFILENAME = $100b;
+
+ // style of word registration
+ IME_REGWORD_STYLE_EUDC = $00000001;
+ IME_REGWORD_STYLE_USER_FIRST = $80000000;
+ IME_REGWORD_STYLE_USER_LAST = $FFFFFFFF;
+
+ // dwFlags for ImmAssociateContextEx
+ IACE_CHILDREN = $0001;
+ IACE_DEFAULT = $0010;
+ IACE_IGNORENOCONTEXT = $0020;
+
+ // dwFlags for ImmGetImeMenuItems
+ IGIMIF_RIGHTMENU = $0001;
+
+ // dwType for ImmGetImeMenuItems
+ IGIMII_CMODE = $0001;
+ IGIMII_SMODE = $0002;
+ IGIMII_CONFIGURE = $0004;
+ IGIMII_TOOLS = $0008;
+ IGIMII_HELP = $0010;
+ IGIMII_OTHER = $0020;
+ IGIMII_INPUTTOOLS = $0040;
+
+ // fType of IMEMENUITEMINFO structure
+ IMFT_RADIOCHECK = $00001;
+ IMFT_SEPARATOR = $00002;
+ IMFT_SUBMENU = $00004;
+
+ // fState of IMEMENUITEMINFO structure
+ IMFS_GRAYED = MFS_GRAYED;
+ IMFS_DISABLED = MFS_DISABLED;
+ IMFS_CHECKED = MFS_CHECKED;
+ IMFS_HILITE = MFS_HILITE;
+ IMFS_ENABLED = MFS_ENABLED;
+ IMFS_UNCHECKED = MFS_UNCHECKED;
+ IMFS_UNHILITE = MFS_UNHILITE;
+ IMFS_DEFAULT = MFS_DEFAULT;
+
+ // type of soft keyboard
+ // for Windows Tranditional Chinese Edition
+ SOFTKEYBOARD_TYPE_T1 = $0001;
+
+ // for Windows Simplified Chinese Edition
+ SOFTKEYBOARD_TYPE_C1 = $0002;
+
+implementation
+
+
+end.
diff --git a/packages/winunits-base/src/imm_dyn.pas b/packages/winunits-base/src/imm_dyn.pas
new file mode 100644
index 0000000000..552ec2a768
--- /dev/null
+++ b/packages/winunits-base/src/imm_dyn.pas
@@ -0,0 +1,224 @@
+(********************************************************************* *)
+(* imm.h - Input Method Manager definitions *)
+(* *)
+(* Copyright (c) Microsoft Corporation. All rights reserved. *)
+(* *)
+(* Converted to pascal by Dmitry Boyarintsev, using Chelper. *)
+(* *)
+(* The dynamic interface is used to load function dynamicly. *)
+(* It's users responsibility to check functions have been loaded *)
+(* successfully. *)
+(* imm_dyn and imm function names match. In oreder to be sure that *)
+(* dynamicly loaded functions are used, always add imm_dyn to the uses *)
+(* section after imm unit. *)
+(* *)
+(********************************************************************* *)
+unit imm_dyn;
+
+{$mode delphi}
+
+interface
+
+uses
+ Windows, imm;
+
+var
+ ImmInstallIMEA : function (lpszIMEFileName, lpszLayoutText: LPCSTR): HKL; stdcall = nil;
+ ImmInstallIMEW : function (lpszIMEFileName, lpszLayoutText: LPCWSTR): HKL; stdcall = nil;
+ ImmGetDefaultIMEWnd : function (wnd: HWND): HWND; stdcall = nil;
+ ImmGetDescriptionA : function (kl: HKL; lpszDescription: LPSTR; uBufLen: UINT): UINT; stdcall = nil;
+ ImmGetDescriptionW : function (kl: HKL; lpszDescription: LPWSTR; uBufLen: UINT): UINT; stdcall = nil;
+
+ ImmGetIMEFileNameA : function (kl: HKL; lpszFileName: LPSTR; uBufLen: UINT): UINT; stdcall = nil;
+ ImmGetIMEFileNameW : function (kl: HKL; lpszFileName: LPWSTR; uBufLen: UINT): UINT; stdcall = nil;
+
+ ImmGetProperty : function (kl: HKL; fdwIndex: DWORD): DWORD; stdcall = nil;
+ ImmIsIME : function (kl: HKL): LongBool; stdcall = nil;
+ ImmSimulateHotKey : function (wnd: HWND; dwHotKeyID: DWORD): LongBool; stdcall = nil;
+
+ ImmCreateContext: function : HIMC; stdcall = nil;
+ ImmDestroyContext: function (imc: HIMC): LongBool; stdcall = nil;
+ ImmGetContext: function (wnd: HWND): HIMC; stdcall = nil;
+
+ ImmReleaseContext: function (wnd: HWND; imc: HIMC): LongBool; stdcall = nil;
+ ImmAssociateContext: function (wnd: HWND; imc: HIMC): HIMC; stdcall = nil;
+
+ ImmAssociateContextEx: function (wnd: HWND; imc: HIMC; dwFlags: DWORD): LongBool; stdcall = nil;
+ ImmGetCompositionStringA: function (imc: HIMC; dwIndex: DWORD;
+ lpBuf: LPVOID; dwBufLen: DWORD): Longword; stdcall = nil;
+ ImmGetCompositionStringW: function (imc: HIMC; dwIndex: DWORD;
+ lpBuf: LPVOID; dwBufLen: DWORD): Longword; stdcall = nil;
+
+ ImmSetCompositionStringA: function (imc: HIMC; dwIndex: DWORD; lpComp: LPVOID;
+ dwCompLen: DWORD; lpRead: LPVOID; dwReadLen: DWORD): LongBool; stdcall = nil;
+ ImmSetCompositionStringW: function (imc: HIMC; dwIndex: DWORD; lpComp: LPVOID;
+ dwCompLen: DWORD; lpRead: LPVOID; dwReadLen: DWORD): LongBool; stdcall = nil;
+
+ ImmGetCandidateListCountA: function (imc: HIMC; lpdwListCount: LPDWORD): DWORD; stdcall = nil;
+ ImmGetCandidateListCountW: function (imc: HIMC; lpdwListCount: LPDWORD): DWORD; stdcall = nil;
+
+ ImmGetCandidateListA: function (imc: HIMC; deIndex: DWORD;
+ lpCandList: LPCANDIDATELIST; dwBufLen: DWORD): DWORD; stdcall = nil;
+ ImmGetCandidateListW: function (imc: HIMC; deIndex: DWORD;
+ lpCandList: LPCANDIDATELIST; dwBufLen: DWORD): DWORD; stdcall = nil;
+
+ ImmGetGuideLineA: function (imc: HIMC; dwIndex: DWORD; lpBuf: LPSTR;
+ dwBufLen: DWORD): DWORD; stdcall = nil;
+ ImmGetGuideLineW: function (imc: HIMC; dwIndex: DWORD; lpBuf: LPWSTR;
+ dwBufLen: DWORD): DWORD; stdcall = nil;
+
+ ImmGetConversionStatus: function (imc: HIMC; lpfdwConversion, lpfdwSentence: LPDWORD): LongBool; stdcall = nil;
+ ImmSetConversionStatus: function (imc: HIMC; fdwConversion, fdwSentence: DWORD): LongBool; stdcall = nil;
+ ImmGetOpenStatus: function (imc: HIMC): LongBool; stdcall = nil;
+ ImmSetOpenStatus: function (imc: HIMC; par1: LongBool): LongBool; stdcall = nil;
+
+ ImmGetCompositionFontA: function (imc: HIMC; lplf: PLOGFONTA): LongBool; stdcall = nil;
+ ImmGetCompositionFontW: function (imc: HIMC; lplf: PLOGFONTW): LongBool; stdcall = nil;
+
+ ImmSetCompositionFontA: function (imc: HIMC; lplf: PLOGFONTA): LongBool; stdcall = nil;
+ ImmSetCompositionFontW: function (imc: HIMC; lplf: PLOGFONTW): LongBool; stdcall = nil;
+
+ ImmConfigureIMEA: function (kl: HKL; wnd: HWND; dwMode: DWORD; lpData: LPVOID): LongBool; stdcall = nil;
+ ImmConfigureIMEW: function (kl: HKL; wnd: HWND; dwMode: DWORD; lpData: LPVOID): LongBool; stdcall = nil;
+
+ ImmEscapeA: function (kl: HKL; imc: HIMC; uEscape: UINT; lpData: LPVOID): LRESULT; stdcall = nil;
+ ImmEscapeW: function (kl: HKL; imc: HIMC; uEscape: UINT; lpData: LPVOID): LRESULT; stdcall = nil;
+
+ ImmGetConversionListA: function (kl: HKL; imc: HIMC; lpSrc: LPCSTR;
+ lpDst: LPCANDIDATELIST; dwBufLen: DWORD; uFlag: UINT): DWORD; stdcall = nil;
+ ImmGetConversionListW: function (kl: HKL; imc: HIMC; lpSrc: LPCWSTR;
+ lpDst: LPCANDIDATELIST; dwBufLen: DWORD; uFlag: UINT): DWORD; stdcall = nil;
+
+ ImmNotifyIME: function (imc: HIMC; dwAction, dwIndex, dwValue: DWORD): LongBool; stdcall = nil;
+ ImmGetStatusWindowPos: function (imc: HIMC; lpptPos: LPPOINT): LongBool; stdcall = nil;
+ ImmSetStatusWindowPos: function (imc: HIMC; lpptPos: LPPOINT): LongBool; stdcall = nil;
+ ImmGetCompositionWindow: function (imc: HIMC; lpCompForm: LPCOMPOSITIONFORM): LongBool; stdcall = nil;
+ ImmSetCompositionWindow: function (imc: HIMC; lpCompForm: LPCOMPOSITIONFORM): LongBool; stdcall = nil;
+ ImmGetCandidateWindow: function (imc: HIMC; par1: DWORD; lpCandidate: LPCANDIDATEFORM): LongBool; stdcall = nil;
+ ImmSetCandidateWindow: function (imc: HIMC; lpCandidate: LPCANDIDATEFORM): LongBool; stdcall = nil;
+
+ ImmIsUIMessageA: function (wnd: HWND; msg: UINT; wPar: WPARAM; lPar: LPARAM): LongBool; stdcall = nil;
+ ImmIsUIMessageW: function (wnd: HWND; msg: UINT; wPar: WPARAM; lPar: LPARAM): LongBool; stdcall = nil;
+
+ ImmGetVirtualKey: function (wnd: HWND): UINT; stdcall = nil;
+
+ ImmRegisterWordA: function (kl: HKL; lpszReading: LPCSTR; dwStyle: DWORD; lpszRegister: LPCSTR): LongBool; stdcall = nil;
+ ImmRegisterWordW: function (kl: HKL; lpszReading: LPCWSTR; dwStyle: DWORD; lpszRegister: LPCWSTR): LongBool; stdcall = nil;
+
+ ImmUnregisterWordA: function (kl: HKL; lpszReading: LPCSTR; dwStyle: DWORD; lpszUnregister: LPCSTR): LongBool; stdcall = nil;
+
+ ImmUnregisterWordW: function (kl: HKL; lpszReading: LPCWSTR; dwStyle: DWORD; lpszUnregister: LPCWSTR): LongBool; stdcall = nil;
+
+ ImmGetRegisterWordStyleA: function (kl: HKL; nItem: UINT; lpStyleBuf: LPSTYLEBUFA): UINT; stdcall = nil;
+ ImmGetRegisterWordStyleW: function (kl: HKL; nItem: UINT; lpStyleBuf: LPSTYLEBUFW): UINT; stdcall = nil;
+
+ ImmEnumRegisterWordA: function (kl: HKL; lpfnEnumProc: REGISTERWORDENUMPROCA;
+ lpszReading: LPCSTR; dwStyle: DWORD; lpszRegister: LPCSTR; lpData: LPVOID): UINT; stdcall = nil;
+ ImmEnumRegisterWordW: function (kl: HKL; lpfnEnumProc: REGISTERWORDENUMPROCW;
+ lpszReading: LPCWSTR; dwStyle: DWORD; lpszRegister: LPCWSTR; lpData: LPVOID): UINT; stdcall = nil;
+
+ ImmDisableIME: function (idThread: DWORD): LongBool; stdcall = nil;
+ ImmEnumInputContext: function (idThread: DWORD; lpfn: IMCENUMPROC; lParam: LPARAM)
+ : LongBool; stdcall = nil;
+ ImmGetImeMenuItemsA: function (imc: HIMC; dwFlags, dwType: DWORD;
+ lpImeParentMenu, lpImeMenu: LPIMEMENUITEMINFOA; dwSize: DWORD): DWORD; stdcall = nil;
+ ImmGetImeMenuItemsW: function (par0: HIMC; dwFlags, dwType: DWORD;
+ lpImeParentMenu, lpImeMenu: LPIMEMENUITEMINFOW; dwSize: DWORD): DWORD; stdcall = nil;
+
+ ImmDisableTextFrameService: function (idThread: DWORD): LongBool; stdcall = nil;
+
+implementation
+
+var
+ lib : THandle=0;
+
+procedure InitImm;
+begin
+ lib:=LoadLibraryA('Imm32.dll');
+ if lib=0 then Exit;
+ ImmInstallIMEA := GetProcAddress(lib,'ImmInstallIMEA');
+ ImmInstallIMEW := GetProcAddress(lib,'ImmInstallIMEW');
+ ImmGetDefaultIMEWnd := GetProcAddress(lib,'ImmGetDefaultIMEWnd');
+ ImmGetDescriptionA := GetProcAddress(lib,'ImmGetDescriptionA');
+ ImmGetDescriptionW := GetProcAddress(lib,'ImmGetDescriptionW');
+
+ ImmGetIMEFileNameA := GetProcAddress(lib,'ImmGetIMEFileNameA');
+ ImmGetIMEFileNameW := GetProcAddress(lib,'ImmGetIMEFileNameW');
+
+ ImmGetProperty := GetProcAddress(lib,'ImmGetProperty');
+ ImmIsIME := GetProcAddress(lib,'ImmIsIME');
+ ImmSimulateHotKey := GetProcAddress(lib,'ImmSimulateHotKey');
+
+ ImmCreateContext := GetProcAddress(lib,'ImmCreateContext');
+ ImmDestroyContext := GetProcAddress(lib,'ImmDestroyContext');
+ ImmGetContext := GetProcAddress(lib,'ImmGetContext');
+
+ ImmReleaseContext := GetProcAddress(lib,'ImmReleaseContext');
+ ImmAssociateContext := GetProcAddress(lib,'ImmAssociateContext');
+
+ ImmAssociateContextEx := GetProcAddress(lib,'ImmAssociateContextEx');
+ ImmGetCompositionStringA := GetProcAddress(lib,'ImmGetCompositionStringA');
+ ImmGetCompositionStringW := GetProcAddress(lib,'ImmGetCompositionStringW');
+
+ ImmSetCompositionStringA := GetProcAddress(lib,'ImmSetCompositionStringA');
+ ImmSetCompositionStringW := GetProcAddress(lib,'ImmSetCompositionStringW');
+ ImmGetCandidateListCountA := GetProcAddress(lib,'ImmGetCandidateListCountA');
+ ImmGetCandidateListCountW := GetProcAddress(lib,'ImmGetCandidateListCountW');
+ ImmGetCandidateListA := GetProcAddress(lib,'ImmGetCandidateListA');
+ ImmGetCandidateListW := GetProcAddress(lib,'ImmGetCandidateListW');
+ ImmGetGuideLineA := GetProcAddress(lib,'ImmGetGuideLineA');
+ ImmGetGuideLineW := GetProcAddress(lib,'ImmGetGuideLineW');
+ ImmGetConversionStatus := GetProcAddress(lib,'ImmGetConversionStatus');
+ ImmSetConversionStatus := GetProcAddress(lib,'ImmSetConversionStatus');
+ ImmGetOpenStatus := GetProcAddress(lib,'ImmGetOpenStatus');
+ ImmSetOpenStatus := GetProcAddress(lib,'ImmSetOpenStatus');
+ ImmGetCompositionFontA := GetProcAddress(lib,'ImmGetCompositionFontA');
+ ImmGetCompositionFontW := GetProcAddress(lib,'ImmGetCompositionFontW');
+ ImmSetCompositionFontA := GetProcAddress(lib,'ImmSetCompositionFontA');
+ ImmSetCompositionFontW := GetProcAddress(lib,'ImmSetCompositionFontW');
+ ImmConfigureIMEA := GetProcAddress(lib,'ImmConfigureIMEA');
+ ImmConfigureIMEW := GetProcAddress(lib,'ImmConfigureIMEW');
+ ImmEscapeA := GetProcAddress(lib,'ImmEscapeA');
+ ImmEscapeW := GetProcAddress(lib,'ImmEscapeW');
+ ImmGetConversionListA := GetProcAddress(lib,'ImmGetConversionListA');
+ ImmGetConversionListW := GetProcAddress(lib,'ImmGetConversionListW');
+
+ ImmNotifyIME := GetProcAddress(lib,'ImmNotifyIME');
+ ImmGetStatusWindowPos := GetProcAddress(lib,'ImmGetStatusWindowPos');
+ ImmSetStatusWindowPos := GetProcAddress(lib,'ImmSetStatusWindowPos');
+ ImmGetCompositionWindow := GetProcAddress(lib,'ImmGetCompositionWindow');
+ ImmSetCompositionWindow := GetProcAddress(lib,'ImmSetCompositionWindow');
+ ImmGetCandidateWindow := GetProcAddress(lib,'ImmGetCandidateWindow');
+ ImmSetCandidateWindow := GetProcAddress(lib,'ImmSetCandidateWindow');
+ ImmIsUIMessageA := GetProcAddress(lib,'ImmIsUIMessageA');
+ ImmIsUIMessageW := GetProcAddress(lib,'ImmIsUIMessageW');
+ ImmGetVirtualKey := GetProcAddress(lib,'ImmGetVirtualKey');
+ ImmRegisterWordA := GetProcAddress(lib,'ImmRegisterWordA');
+ ImmRegisterWordW := GetProcAddress(lib,'ImmRegisterWordW');
+
+ ImmUnregisterWordA := GetProcAddress(lib,'ImmUnregisterWordA');
+ ImmUnregisterWordW := GetProcAddress(lib,'ImmUnregisterWordW');
+
+ ImmGetRegisterWordStyleA := GetProcAddress(lib,'ImmGetRegisterWordStyleA');
+ ImmGetRegisterWordStyleW := GetProcAddress(lib,'ImmGetRegisterWordStyleW');
+
+ ImmEnumRegisterWordA := GetProcAddress(lib,'ImmEnumRegisterWordA');
+ ImmEnumRegisterWordW := GetProcAddress(lib,'ImmEnumRegisterWordW');
+
+ ImmDisableIME := GetProcAddress(lib,'ImmDisableIME');
+ ImmEnumInputContext := GetProcAddress(lib,'ImmEnumInputContext');
+ ImmGetImeMenuItemsA := GetProcAddress(lib,'ImmGetImeMenuItemsA');
+ ImmGetImeMenuItemsW := GetProcAddress(lib,'ImmGetImeMenuItemsW');
+
+ ImmDisableTextFrameService := GetProcAddress(lib,'ImmDisableTextFrameService');
+end;
+
+initialization
+ InitImm;
+
+finalization
+ if lib<>0 then FreeLibrary(lib);
+
+
+end.
+