* Patch from Dmitry. imm + a dynloaded variant to be used for w9x. Mantis 17167

git-svn-id: trunk@15810 -
This commit is contained in:
marco 2010-08-14 14:59:04 +00:00
parent c6698af39c
commit 534fdb2e8c
6 changed files with 942 additions and 64 deletions

2
.gitattributes vendored
View File

@ -5847,6 +5847,8 @@ packages/winunits-base/src/dwmapi.pp svneol=native#text/plain
packages/winunits-base/src/flatsb.pp svneol=native#text/plain
packages/winunits-base/src/htmlhelp.pp svneol=native#text/plain
packages/winunits-base/src/imagehlp.pp svneol=native#text/plain
packages/winunits-base/src/imm.pas svneol=native#text/plain
packages/winunits-base/src/imm_dyn.pas svneol=native#text/plain
packages/winunits-base/src/mmsystem.pp svneol=native#text/plain
packages/winunits-base/src/multimon.pp svneol=native#text/plain
packages/winunits-base/src/ole2.pp svneol=native#text/plain

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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.