From 7557cf6102a9504d8043c776e4e17e3c847d59d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Fri, 4 Apr 2008 13:10:46 +0000 Subject: [PATCH] Update header svn path=/trunk/; revision=32842 --- reactos/include/ddk/imm.h | 146 +++++++++++++++++++++++++++++--------- 1 file changed, 112 insertions(+), 34 deletions(-) diff --git a/reactos/include/ddk/imm.h b/reactos/include/ddk/imm.h index f6f5c77d08e..81738aee0b1 100644 --- a/reactos/include/ddk/imm.h +++ b/reactos/include/ddk/imm.h @@ -1,4 +1,23 @@ -#ifndef __IMM_H +/* + * Copyright (C) 2007 CodeWeavers, Aric Stewart + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef _DDKIMM_H_ +#define _DDKIMM_H_ #define __IMM_H #if __GNUC__ >=3 @@ -9,8 +28,41 @@ extern "C" { #endif -typedef struct _COMPOSITIONSTRING -{ +typedef struct _tagINPUTCONTEXT { + HWND hWnd; + BOOL fOpen; + HWND hwndImeInUse; + POINT ptStatusWndPos; + POINT ptSoftKbdPos; + DWORD fdwConversion; + DWORD fdwSentence; + union { + LOGFONTA A; + LOGFONTW W; + } lfFont; + COMPOSITIONFORM cfCompForm; + CANDIDATEFORM cfCandForm[4]; + HIMCC hCompStr; + HIMCC hCandInfo; + HIMCC hGuideLine; + HIMCC hPrivate; + DWORD dwNumMsgBuf; + HIMCC hMsgBuf; + DWORD fdwInit; + DWORD dwReserve[3]; +} INPUTCONTEXT, *PINPUTCONTEXT, *LPINPUTCONTEXT; + +typedef struct _tagIMEINFO { + DWORD dwPrivateDataSize; + DWORD fdwProperty; + DWORD fdwConversionCaps; + DWORD fdwSentenceCaps; + DWORD fdwUICaps; + DWORD fdwSCSCaps; + DWORD fdwSelectCaps; +} IMEINFO, *LPIMEINFO; + +typedef struct tagCOMPOSITIONSTRING { DWORD dwSize; DWORD dwCompReadAttrLen; DWORD dwCompReadAttrOffset; @@ -38,39 +90,65 @@ typedef struct _COMPOSITIONSTRING DWORD dwPrivateOffset; } COMPOSITIONSTRING, *LPCOMPOSITIONSTRING; -typedef struct _INPUTCONTEXT -{ - HWND hWnd; - BOOL fOpen; - HWND hwndImeInUse; - POINT ptStatusWndPos; - POINT ptSoftKbdPos; - DWORD fdwConversion; - DWORD fdwSentence; - union - { - LOGFONTA A; - LOGFONTW W; - } lfFont; - COMPOSITIONFORM cfCompForm; - CANDIDATEFORM cfCandForm[4]; - HIMCC hCompStr; - HIMCC hCandInfo; - HIMCC hGuideLine; - HIMCC hPrivate; - DWORD dwNumMsgBuf; - HIMCC hMsgBuf; - DWORD fdwInit; - DWORD dwReserve[3] -} INPUTCONTEXT, *PINPUTCONTEXT, *LPINPUTCONTEXT; +LPINPUTCONTEXT WINAPI ImmLockIMC(HIMC); +BOOL WINAPI ImmUnlockIMC(HIMC); +DWORD WINAPI ImmGetIMCLockCount(HIMC); +HIMCC WINAPI ImmCreateIMCC(DWORD); +HIMCC WINAPI ImmDestroyIMCC(HIMCC); +LPVOID WINAPI ImmLockIMCC(HIMCC); +BOOL WINAPI ImmUnlockIMCC(HIMCC); +DWORD WINAPI ImmGetIMCCLockCount(HIMCC); +HIMCC WINAPI ImmReSizeIMCC(HIMCC, DWORD); +DWORD WINAPI ImmGetIMCCSize(HIMCC); -HIMCC WINAPI ImmCreateIMCC(DWORD dwSize); -HIMCC WINAPI ImmDestroyIMCC(HIMCC hIMCC); -LPVOID WINAPI ImmLockIMCC(HIMCC hIMCC); -BOOL WINAPI ImmUnlockIMCC(HIMCC hIMCC); +#define IMMGWL_IMC 0 +#define IMMGWL_PRIVATE (sizeof(LONG)) + +/* IME Property bits */ +#define IME_PROP_END_UNLOAD 0x0001 +#define IME_PROP_KBD_CHAR_FIRST 0x0002 +#define IME_PROP_IGNORE_UPKEYS 0x0004 +#define IME_PROP_NEED_ALTKEY 0x0008 +#define IME_PROP_NO_KEYS_ON_CLOSE 0x0010 + +/* for NI_CONTEXTUPDATED */ +#define IMC_SETCONVERSIONMODE 0x0002 +#define IMC_SETSENTENCEMODE 0x0004 +#define IMC_SETOPENSTATUS 0x0006 + +/* dwAction for ImmNotifyIME */ +#define NI_CONTEXTUPDATED 0x0003 +#define NI_OPENCANDIDATE 0x0010 +#define NI_CLOSECANDIDATE 0x0011 +#define NI_SELECTCANDIDATESTR 0x0012 +#define NI_CHANGECANDIDATELIST 0x0013 +#define NI_FINALIZECONVERSIONRESULT 0x0014 +#define NI_COMPOSITIONSTR 0x0015 +#define NI_SETCANDIDATE_PAGESTART 0x0016 +#define NI_SETCANDIDATE_PAGESIZE 0x0017 +#define NI_IMEMENUSELECTED 0x0018 + +BOOL WINAPI ImmGenerateMessage(HIMC); + +BOOL WINAPI ImeInquire(LPIMEINFO, LPWSTR, LPCWSTR lpszOptions); +BOOL WINAPI ImeConfigure (HKL, HWND, DWORD, LPVOID); +DWORD WINAPI ImeConversionList(HIMC, LPCWSTR, LPCANDIDATELIST,DWORD,UINT); +BOOL WINAPI ImeDestroy(UINT); +LRESULT WINAPI ImeEscape(HIMC, UINT, LPVOID); +BOOL WINAPI ImeProcessKey(HIMC, UINT, LPARAM, CONST LPBYTE); +BOOL WINAPI ImeSelect(HIMC, BOOL); +BOOL WINAPI ImeSetActiveContext(HIMC, BOOL); +UINT WINAPI ImeToAsciiEx(UINT, UINT, CONST LPBYTE, LPDWORD, UINT, HIMC); +BOOL WINAPI NotifyIME(HIMC, DWORD, DWORD, DWORD); +BOOL WINAPI ImeRegisterWord(LPCWSTR, DWORD, LPCWSTR); +BOOL WINAPI ImeUnregisterWord(LPCWSTR, DWORD, LPCWSTR); +UINT WINAPI ImeGetRegisterWordStyle(UINT, LPSTYLEBUFW); +UINT WINAPI ImeEnumRegisterWord(REGISTERWORDENUMPROCW, LPCWSTR, DWORD, LPCWSTR, LPVOID); +BOOL WINAPI ImeSetCompositionString(HIMC, DWORD, LPCVOID, DWORD, LPCVOID, DWORD); +DWORD WINAPI ImeGetImeMenuItems(HIMC, DWORD, DWORD, LPIMEMENUITEMINFOW, LPIMEMENUITEMINFOW, DWORD); #ifdef __cplusplus -} +} /* extern "C" */ #endif -#endif /* __IMM_H */ +#endif /* _DDKIMM_H_ */