149 lines
5.0 KiB
C
149 lines
5.0 KiB
C
/*
|
|
* 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_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct _tagINPUTCONTEXT {
|
|
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;
|
|
|
|
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;
|
|
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;
|
|
|
|
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);
|
|
|
|
#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 /* _DDKIMM_H_ */
|