mirror of
https://github.com/reactos/reactos.git
synced 2025-07-28 12:12:16 +00:00
- Sync wine Imm32.
svn path=/trunk/; revision=54654
This commit is contained in:
parent
cb01664625
commit
b3740c4b79
3 changed files with 66 additions and 30 deletions
|
@ -1154,7 +1154,7 @@ static INT CopyCompAttrIMEtoClient(InputContextData *data, LPBYTE source, INT sl
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
static INT CopyCompClauseIMEtoClient(InputContextData *data, LPBYTE source, INT slen, LPBYTE ssource, INT sslen,
|
static INT CopyCompClauseIMEtoClient(InputContextData *data, LPBYTE source, INT slen, LPBYTE ssource,
|
||||||
LPBYTE target, INT tlen, BOOL unicode )
|
LPBYTE target, INT tlen, BOOL unicode )
|
||||||
{
|
{
|
||||||
INT rc;
|
INT rc;
|
||||||
|
@ -1265,13 +1265,13 @@ static LONG ImmGetCompositionStringT( HIMC hIMC, DWORD dwIndex, LPVOID lpBuf,
|
||||||
case GCS_COMPCLAUSE:
|
case GCS_COMPCLAUSE:
|
||||||
TRACE("GCS_COMPCLAUSE\n");
|
TRACE("GCS_COMPCLAUSE\n");
|
||||||
rc = CopyCompClauseIMEtoClient(data, compdata + compstr->dwCompClauseOffset,compstr->dwCompClauseLen,
|
rc = CopyCompClauseIMEtoClient(data, compdata + compstr->dwCompClauseOffset,compstr->dwCompClauseLen,
|
||||||
compdata + compstr->dwCompStrOffset, compstr->dwCompStrLen,
|
compdata + compstr->dwCompStrOffset,
|
||||||
lpBuf, dwBufLen, unicode);
|
lpBuf, dwBufLen, unicode);
|
||||||
break;
|
break;
|
||||||
case GCS_RESULTCLAUSE:
|
case GCS_RESULTCLAUSE:
|
||||||
TRACE("GCS_RESULTCLAUSE\n");
|
TRACE("GCS_RESULTCLAUSE\n");
|
||||||
rc = CopyCompClauseIMEtoClient(data, compdata + compstr->dwResultClauseOffset,compstr->dwResultClauseLen,
|
rc = CopyCompClauseIMEtoClient(data, compdata + compstr->dwResultClauseOffset,compstr->dwResultClauseLen,
|
||||||
compdata + compstr->dwResultStrOffset, compstr->dwResultStrLen,
|
compdata + compstr->dwResultStrOffset,
|
||||||
lpBuf, dwBufLen, unicode);
|
lpBuf, dwBufLen, unicode);
|
||||||
break;
|
break;
|
||||||
case GCS_RESULTREADSTR:
|
case GCS_RESULTREADSTR:
|
||||||
|
@ -1281,7 +1281,7 @@ static LONG ImmGetCompositionStringT( HIMC hIMC, DWORD dwIndex, LPVOID lpBuf,
|
||||||
case GCS_RESULTREADCLAUSE:
|
case GCS_RESULTREADCLAUSE:
|
||||||
TRACE("GCS_RESULTREADCLAUSE\n");
|
TRACE("GCS_RESULTREADCLAUSE\n");
|
||||||
rc = CopyCompClauseIMEtoClient(data, compdata + compstr->dwResultReadClauseOffset,compstr->dwResultReadClauseLen,
|
rc = CopyCompClauseIMEtoClient(data, compdata + compstr->dwResultReadClauseOffset,compstr->dwResultReadClauseLen,
|
||||||
compdata + compstr->dwResultStrOffset, compstr->dwResultStrLen,
|
compdata + compstr->dwResultStrOffset,
|
||||||
lpBuf, dwBufLen, unicode);
|
lpBuf, dwBufLen, unicode);
|
||||||
break;
|
break;
|
||||||
case GCS_COMPREADSTR:
|
case GCS_COMPREADSTR:
|
||||||
|
@ -1297,7 +1297,7 @@ static LONG ImmGetCompositionStringT( HIMC hIMC, DWORD dwIndex, LPVOID lpBuf,
|
||||||
case GCS_COMPREADCLAUSE:
|
case GCS_COMPREADCLAUSE:
|
||||||
TRACE("GCS_COMPREADCLAUSE\n");
|
TRACE("GCS_COMPREADCLAUSE\n");
|
||||||
rc = CopyCompClauseIMEtoClient(data, compdata + compstr->dwCompReadClauseOffset,compstr->dwCompReadClauseLen,
|
rc = CopyCompClauseIMEtoClient(data, compdata + compstr->dwCompReadClauseOffset,compstr->dwCompReadClauseLen,
|
||||||
compdata + compstr->dwCompStrOffset, compstr->dwCompStrLen,
|
compdata + compstr->dwCompStrOffset,
|
||||||
lpBuf, dwBufLen, unicode);
|
lpBuf, dwBufLen, unicode);
|
||||||
break;
|
break;
|
||||||
case GCS_CURSORPOS:
|
case GCS_CURSORPOS:
|
||||||
|
@ -1360,9 +1360,15 @@ BOOL WINAPI ImmGetCompositionWindow(HIMC hIMC, LPCOMPOSITIONFORM lpCompForm)
|
||||||
*/
|
*/
|
||||||
HIMC WINAPI ImmGetContext(HWND hWnd)
|
HIMC WINAPI ImmGetContext(HWND hWnd)
|
||||||
{
|
{
|
||||||
HIMC rc = NULL;
|
HIMC rc;
|
||||||
|
|
||||||
TRACE("%p\n", hWnd);
|
TRACE("%p\n", hWnd);
|
||||||
|
|
||||||
|
if (!IsWindow(hWnd))
|
||||||
|
{
|
||||||
|
SetLastError(ERROR_INVALID_WINDOW_HANDLE);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
if (!IMM_GetThreadData()->defaultContext)
|
if (!IMM_GetThreadData()->defaultContext)
|
||||||
IMM_GetThreadData()->defaultContext = ImmCreateContext();
|
IMM_GetThreadData()->defaultContext = ImmCreateContext();
|
||||||
|
|
||||||
|
@ -1769,6 +1775,7 @@ UINT WINAPI ImmGetVirtualKey(HWND hWnd)
|
||||||
if ( data )
|
if ( data )
|
||||||
return data->lastVK;
|
return data->lastVK;
|
||||||
|
|
||||||
|
version.dwOSVersionInfoSize = sizeof(OSVERSIONINFOA);
|
||||||
GetVersionExA( &version );
|
GetVersionExA( &version );
|
||||||
switch(version.dwPlatformId)
|
switch(version.dwPlatformId)
|
||||||
{
|
{
|
||||||
|
@ -1884,21 +1891,20 @@ BOOL WINAPI ImmIsUIMessageA(
|
||||||
|
|
||||||
TRACE("(%p, %x, %ld, %ld)\n", hWndIME, msg, wParam, lParam);
|
TRACE("(%p, %x, %ld, %ld)\n", hWndIME, msg, wParam, lParam);
|
||||||
if ((msg >= WM_IME_STARTCOMPOSITION && msg <= WM_IME_KEYLAST) ||
|
if ((msg >= WM_IME_STARTCOMPOSITION && msg <= WM_IME_KEYLAST) ||
|
||||||
(msg >= WM_IME_SETCONTEXT && msg <= WM_IME_KEYUP) ||
|
(msg == WM_IME_SETCONTEXT) ||
|
||||||
(msg == WM_MSIME_SERVICE) ||
|
(msg == WM_IME_NOTIFY) ||
|
||||||
(msg == WM_MSIME_RECONVERTOPTIONS) ||
|
(msg == WM_IME_COMPOSITIONFULL) ||
|
||||||
(msg == WM_MSIME_MOUSE) ||
|
(msg == WM_IME_SELECT) ||
|
||||||
(msg == WM_MSIME_RECONVERTREQUEST) ||
|
(msg == 0x287 /* FIXME: WM_IME_SYSTEM */) ||
|
||||||
(msg == WM_MSIME_RECONVERT) ||
|
(msg == WM_MSIME_RECONVERTOPTIONS) ||
|
||||||
(msg == WM_MSIME_QUERYPOSITION) ||
|
(msg == WM_MSIME_MOUSE) ||
|
||||||
(msg == WM_MSIME_DOCUMENTFEED))
|
(msg == WM_MSIME_RECONVERTREQUEST) ||
|
||||||
|
(msg == WM_MSIME_RECONVERT) ||
|
||||||
|
(msg == WM_MSIME_QUERYPOSITION) ||
|
||||||
|
(msg == WM_MSIME_DOCUMENTFEED))
|
||||||
{
|
{
|
||||||
if (!IMM_GetThreadData()->hwndDefault)
|
if (hWndIME)
|
||||||
ImmGetDefaultIMEWnd(NULL);
|
SendMessageA(hWndIME, msg, wParam, lParam);
|
||||||
|
|
||||||
if (hWndIME == NULL)
|
|
||||||
PostMessageA(IMM_GetThreadData()->hwndDefault, msg, wParam, lParam);
|
|
||||||
|
|
||||||
rc = TRUE;
|
rc = TRUE;
|
||||||
}
|
}
|
||||||
|
@ -1912,17 +1918,26 @@ BOOL WINAPI ImmIsUIMessageW(
|
||||||
HWND hWndIME, UINT msg, WPARAM wParam, LPARAM lParam)
|
HWND hWndIME, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
BOOL rc = FALSE;
|
BOOL rc = FALSE;
|
||||||
TRACE("(%p, %d, %ld, %ld):\n", hWndIME, msg, wParam, lParam);
|
|
||||||
|
TRACE("(%p, %x, %ld, %ld)\n", hWndIME, msg, wParam, lParam);
|
||||||
if ((msg >= WM_IME_STARTCOMPOSITION && msg <= WM_IME_KEYLAST) ||
|
if ((msg >= WM_IME_STARTCOMPOSITION && msg <= WM_IME_KEYLAST) ||
|
||||||
(msg >= WM_IME_SETCONTEXT && msg <= WM_IME_KEYUP) ||
|
(msg == WM_IME_SETCONTEXT) ||
|
||||||
(msg == WM_MSIME_SERVICE) ||
|
(msg == WM_IME_NOTIFY) ||
|
||||||
(msg == WM_MSIME_RECONVERTOPTIONS) ||
|
(msg == WM_IME_COMPOSITIONFULL) ||
|
||||||
(msg == WM_MSIME_MOUSE) ||
|
(msg == WM_IME_SELECT) ||
|
||||||
(msg == WM_MSIME_RECONVERTREQUEST) ||
|
(msg == 0x287 /* FIXME: WM_IME_SYSTEM */) ||
|
||||||
(msg == WM_MSIME_RECONVERT) ||
|
(msg == WM_MSIME_RECONVERTOPTIONS) ||
|
||||||
(msg == WM_MSIME_QUERYPOSITION) ||
|
(msg == WM_MSIME_MOUSE) ||
|
||||||
(msg == WM_MSIME_DOCUMENTFEED))
|
(msg == WM_MSIME_RECONVERTREQUEST) ||
|
||||||
|
(msg == WM_MSIME_RECONVERT) ||
|
||||||
|
(msg == WM_MSIME_QUERYPOSITION) ||
|
||||||
|
(msg == WM_MSIME_DOCUMENTFEED))
|
||||||
|
{
|
||||||
|
if (hWndIME)
|
||||||
|
SendMessageW(hWndIME, msg, wParam, lParam);
|
||||||
|
|
||||||
rc = TRUE;
|
rc = TRUE;
|
||||||
|
}
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2820,3 +2835,13 @@ BOOL WINAPI ImmDisableTextFrameService(DWORD idThread)
|
||||||
FIXME("Stub\n");
|
FIXME("Stub\n");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* ImmEnumInputContext(IMM32.@)
|
||||||
|
*/
|
||||||
|
|
||||||
|
BOOL WINAPI ImmEnumInputContext(DWORD idThread, IMCENUMPROC lpfn, LPARAM lParam)
|
||||||
|
{
|
||||||
|
FIXME("Stub\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
@ stdcall ImmDisableIME(long)
|
@ stdcall ImmDisableIME(long)
|
||||||
@ stdcall ImmDisableIme(long) ImmDisableIME
|
@ stdcall ImmDisableIme(long) ImmDisableIME
|
||||||
@ stdcall ImmDisableTextFrameService(long)
|
@ stdcall ImmDisableTextFrameService(long)
|
||||||
@ stub ImmEnumInputContext
|
@ stdcall ImmEnumInputContext(long ptr long)
|
||||||
@ stdcall ImmEnumRegisterWordA(long ptr str long str ptr)
|
@ stdcall ImmEnumRegisterWordA(long ptr str long str ptr)
|
||||||
@ stdcall ImmEnumRegisterWordW(long ptr wstr long wstr ptr)
|
@ stdcall ImmEnumRegisterWordW(long ptr wstr long wstr ptr)
|
||||||
@ stdcall ImmEscapeA(long long long ptr)
|
@ stdcall ImmEscapeA(long long long ptr)
|
||||||
|
|
|
@ -119,6 +119,16 @@ typedef struct tagIMEMENUITEMINFOW
|
||||||
DECL_WINELIB_TYPE_AW(IMEMENUITEMINFO)
|
DECL_WINELIB_TYPE_AW(IMEMENUITEMINFO)
|
||||||
DECL_WINELIB_TYPE_AW(LPIMEMENUITEMINFO)
|
DECL_WINELIB_TYPE_AW(LPIMEMENUITEMINFO)
|
||||||
|
|
||||||
|
typedef struct tagIMECHARPOSITION {
|
||||||
|
DWORD dwSize;
|
||||||
|
DWORD dwCharPos;
|
||||||
|
POINT pt;
|
||||||
|
UINT cLineHeight;
|
||||||
|
RECT rcDocument;
|
||||||
|
} IMECHARPOSITION, *PIMECHARPOSITION, *NPIMECHARPOSITION, *LPIMECHARPOSITION;
|
||||||
|
|
||||||
|
typedef BOOL (CALLBACK* IMCENUMPROC)(HIMC, LPARAM);
|
||||||
|
|
||||||
typedef struct _tagCOMPOSITIONFORM
|
typedef struct _tagCOMPOSITIONFORM
|
||||||
{
|
{
|
||||||
DWORD dwStyle;
|
DWORD dwStyle;
|
||||||
|
@ -600,6 +610,7 @@ BOOL WINAPI ImmConfigureIMEW(HKL, HWND, DWORD, LPVOID);
|
||||||
HIMC WINAPI ImmCreateContext(void);
|
HIMC WINAPI ImmCreateContext(void);
|
||||||
BOOL WINAPI ImmDestroyContext(HIMC hIMC);
|
BOOL WINAPI ImmDestroyContext(HIMC hIMC);
|
||||||
BOOL WINAPI ImmDisableIME(DWORD idThread);
|
BOOL WINAPI ImmDisableIME(DWORD idThread);
|
||||||
|
BOOL WINAPI ImmEnumInputContext(DWORD, IMCENUMPROC, LPARAM);
|
||||||
UINT WINAPI ImmEnumRegisterWordA(HKL, REGISTERWORDENUMPROCA, LPCSTR, DWORD, LPCSTR, LPVOID);
|
UINT WINAPI ImmEnumRegisterWordA(HKL, REGISTERWORDENUMPROCA, LPCSTR, DWORD, LPCSTR, LPVOID);
|
||||||
UINT WINAPI ImmEnumRegisterWordW(HKL, REGISTERWORDENUMPROCW, LPCWSTR, DWORD, LPCWSTR, LPVOID);
|
UINT WINAPI ImmEnumRegisterWordW(HKL, REGISTERWORDENUMPROCW, LPCWSTR, DWORD, LPCWSTR, LPVOID);
|
||||||
#define ImmEnumRegisterWord WINELIB_NAME_AW(ImmEnumRegisterWord)
|
#define ImmEnumRegisterWord WINELIB_NAME_AW(ImmEnumRegisterWord)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue