2007-07-03 17:27:29 +00:00
|
|
|
/*
|
|
|
|
* 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
|
|
|
|
*/
|
|
|
|
|
2022-12-04 17:56:56 +00:00
|
|
|
#ifndef __WINE_IMMDEV_H
|
|
|
|
#define __WINE_IMMDEV_H
|
2007-07-03 17:27:29 +00:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2022-12-04 17:56:56 +00:00
|
|
|
typedef struct tagINPUTCONTEXT
|
|
|
|
{
|
2007-07-03 17:27:29 +00:00
|
|
|
HWND hWnd;
|
|
|
|
BOOL fOpen;
|
|
|
|
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, *LPINPUTCONTEXT;
|
|
|
|
|
2022-12-04 17:56:56 +00:00
|
|
|
typedef struct tagIMEINFO
|
|
|
|
{
|
2007-07-03 17:27:29 +00:00
|
|
|
DWORD dwPrivateDataSize;
|
|
|
|
DWORD fdwProperty;
|
|
|
|
DWORD fdwConversionCaps;
|
|
|
|
DWORD fdwSentenceCaps;
|
|
|
|
DWORD fdwUICaps;
|
|
|
|
DWORD fdwSCSCaps;
|
|
|
|
DWORD fdwSelectCaps;
|
|
|
|
} IMEINFO, *LPIMEINFO;
|
|
|
|
|
2022-12-04 17:56:56 +00:00
|
|
|
typedef struct tagCOMPOSITIONSTRING
|
|
|
|
{
|
2007-07-03 17:27:29 +00:00
|
|
|
DWORD dwSize;
|
|
|
|
DWORD dwCompReadAttrLen;
|
|
|
|
DWORD dwCompReadAttrOffset;
|
|
|
|
DWORD dwCompReadClauseLen;
|
|
|
|
DWORD dwCompReadClauseOffset;
|
|
|
|
DWORD dwCompReadStrLen;
|
|
|
|
DWORD dwCompReadStrOffset;
|
|
|
|
DWORD dwCompAttrLen;
|
|
|
|
DWORD dwCompAttrOffset;
|
|
|
|
DWORD dwCompClauseLen;
|
|
|
|
DWORD dwCompClauseOffset;
|
|
|
|
DWORD dwCompStrLen;
|
|
|
|
DWORD dwCompStrOffset;
|
|
|
|
DWORD dwCursorPos;
|
|
|
|
DWORD dwDeltaStart;
|
|
|
|
DWORD dwResultReadClauseLen;
|
|
|
|
DWORD dwResultReadClauseOffset;
|
|
|
|
DWORD dwResultReadStrLen;
|
|
|
|
DWORD dwResultReadStrOffset;
|
|
|
|
DWORD dwResultClauseLen;
|
|
|
|
DWORD dwResultClauseOffset;
|
|
|
|
DWORD dwResultStrLen;
|
|
|
|
DWORD dwResultStrOffset;
|
|
|
|
DWORD dwPrivateSize;
|
|
|
|
DWORD dwPrivateOffset;
|
|
|
|
} COMPOSITIONSTRING, *LPCOMPOSITIONSTRING;
|
|
|
|
|
2022-12-04 17:56:56 +00:00
|
|
|
typedef struct tagGUIDELINE
|
|
|
|
{
|
2008-04-11 15:58:42 +00:00
|
|
|
DWORD dwSize;
|
|
|
|
DWORD dwLevel;
|
|
|
|
DWORD dwIndex;
|
|
|
|
DWORD dwStrLen;
|
|
|
|
DWORD dwStrOffset;
|
|
|
|
DWORD dwPrivateSize;
|
|
|
|
DWORD dwPrivateOffset;
|
|
|
|
} GUIDELINE, *LPGUIDELINE;
|
|
|
|
|
2022-12-04 17:56:56 +00:00
|
|
|
typedef struct tagCANDIDATEINFO
|
|
|
|
{
|
2008-04-11 15:58:42 +00:00
|
|
|
DWORD dwSize;
|
|
|
|
DWORD dwCount;
|
|
|
|
DWORD dwOffset[32];
|
|
|
|
DWORD dwPrivateSize;
|
|
|
|
DWORD dwPrivateOffset;
|
|
|
|
} CANDIDATEINFO, *LPCANDIDATEINFO;
|
|
|
|
|
2022-12-04 17:59:10 +00:00
|
|
|
typedef struct tagTRANSMSG
|
|
|
|
{
|
|
|
|
UINT message;
|
|
|
|
WPARAM wParam;
|
|
|
|
LPARAM lParam;
|
|
|
|
} TRANSMSG, *LPTRANSMSG;
|
|
|
|
|
|
|
|
typedef struct tagTRANSMSGLIST
|
|
|
|
{
|
|
|
|
UINT uMsgCount;
|
|
|
|
TRANSMSG TransMsg[1];
|
|
|
|
} TRANSMSGLIST, *LPTRANSMSGLIST;
|
|
|
|
|
2007-07-03 17:27:29 +00:00
|
|
|
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);
|
|
|
|
|
2008-03-21 08:09:12 +00:00
|
|
|
#define IMMGWL_IMC 0
|
2009-02-11 15:21:11 +00:00
|
|
|
#define IMMGWL_PRIVATE (sizeof(LONG_PTR))
|
2008-03-21 08:09:12 +00:00
|
|
|
|
2023-04-13 08:41:51 +00:00
|
|
|
#define INIT_STATUSWNDPOS 0x00000001
|
|
|
|
#define INIT_CONVERSION 0x00000002
|
|
|
|
#define INIT_SENTENCE 0x00000004
|
|
|
|
#define INIT_LOGFONT 0x00000008
|
|
|
|
#define INIT_COMPFORM 0x00000010
|
|
|
|
#define INIT_SOFTKBDPOS 0x00000020
|
|
|
|
|
2007-08-06 16:36:09 +00:00
|
|
|
/* 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
|
|
|
|
|
2022-12-04 19:28:15 +00:00
|
|
|
BOOL WINAPI ImmGetHotKey(DWORD,UINT*,UINT*,HKL*);
|
|
|
|
BOOL WINAPI ImmSetHotKey(DWORD,UINT,UINT,HKL);
|
2007-08-06 16:36:09 +00:00
|
|
|
BOOL WINAPI ImmGenerateMessage(HIMC);
|
2008-04-22 12:44:22 +00:00
|
|
|
LRESULT WINAPI ImmRequestMessageA(HIMC, WPARAM, LPARAM);
|
|
|
|
LRESULT WINAPI ImmRequestMessageW(HIMC, WPARAM, LPARAM);
|
2014-03-02 02:12:27 +00:00
|
|
|
#define ImmRequestMessage WINELIB_NAME_AW(ImmRequestMessage)
|
2008-04-25 15:19:15 +00:00
|
|
|
BOOL WINAPI ImmTranslateMessage(HWND, UINT, WPARAM, LPARAM);
|
2008-04-22 12:44:39 +00:00
|
|
|
HWND WINAPI ImmCreateSoftKeyboard(UINT, UINT, int, int);
|
|
|
|
BOOL WINAPI ImmDestroySoftKeyboard(HWND);
|
|
|
|
BOOL WINAPI ImmShowSoftKeyboard(HWND, int);
|
|
|
|
|
2022-12-04 17:59:10 +00:00
|
|
|
BOOL WINAPI ImeInquire(LPIMEINFO, LPWSTR, DWORD);
|
2008-03-21 08:09:12 +00:00
|
|
|
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);
|
2013-09-26 22:30:19 +00:00
|
|
|
BOOL WINAPI ImeProcessKey(HIMC, UINT, LPARAM, const LPBYTE);
|
2008-03-21 08:09:12 +00:00
|
|
|
BOOL WINAPI ImeSelect(HIMC, BOOL);
|
|
|
|
BOOL WINAPI ImeSetActiveContext(HIMC, BOOL);
|
2022-12-04 17:59:10 +00:00
|
|
|
UINT WINAPI ImeToAsciiEx(UINT, UINT, const LPBYTE, LPTRANSMSGLIST, UINT, HIMC);
|
2008-03-21 08:09:12 +00:00
|
|
|
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);
|
|
|
|
|
2007-07-03 17:27:29 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
} /* extern "C" */
|
|
|
|
#endif
|
|
|
|
|
2022-12-04 17:56:56 +00:00
|
|
|
#endif /* __WINE_IMMDEV_H */
|