26 FIXME(
"We have to do something here\n");
43 FIXME(
"We have to do something here\n");
51 DWORD dwConversion, dwSentence;
81 DWORD dwConversion, dwSentence;
118 FIXME(
"We have to do something here\n");
125 DWORD dwConversion, dwSentence;
147 DWORD dwConversion, dwSentence;
164 DWORD dwConversion, dwSentence;
245 case WM_IME_STARTCOMPOSITION:
case WM_IME_ENDCOMPOSITION:
281 uValue = (
pUnknown->fFlag ? 0x23 : 0x24);
313 pUnknown1->
fFlag = fFlag;
363 DWORD ret = 0, dwCharPos, cchCompStr;
370 static const size_t acbData[7 * 2] =
429 if (bAnsiAPI == bAnsiWnd)
440 if (bAnsiAPI == bAnsiWnd || !
pData)
466 if (bAnsiAPI == bAnsiWnd)
514 if (bAnsiAPI == bAnsiWnd)
555 if (pTempData !=
pData)
611 TRACE(
"(0x%lX, %p, %p, %p)\n", dwHotKey, lpuModifiers, lpuVKey, lphKL);
612 if (lpuModifiers && lpuVKey)
622 TRACE(
"(%p)\n", hwndIme);
637 TRACE(
"(%p, 0x%lX)\n",
hWnd, dwHotKeyID);
685 TRACE(
"(%p, %p, 0x%X, %p, 0x%lX)\n",
hWnd, hKL, vKey,
lParam, dwHotKeyID);
694 if (
LOBYTE(vKey) == VK_PACKET &&
713 vk = (bLowWordOnly ?
LOWORD(vKey) : vKey);
714 if (pImeDpi->ImeProcessKey(hIMC,
vk,
lParam, KeyState))
722 else if (bSkipThisKey)
744 FIXME(
"TODO: We have to do something here.\n");
768 case 0x23:
case 0x24:
785 DWORD dwIndex, dwCount, cbTrans;
789 TRACE(
"(%p)\n", hIMC);
795 if (pClientImc ==
NULL)
814 cbTrans = dwCount *
sizeof(
TRANSMSG);
821 #ifdef IMM_WIN3_SUPPORT 831 dwCount = ImmNt3Trans(dwCount, pTrans, hIMC, bAnsi, wLang);
839 for (dwIndex = 0; dwIndex < dwCount; ++dwIndex, ++pItem)
865 if (pClientImc ==
NULL)
871 #ifdef IMM_WIN3_SUPPORT 886 dwCount = ImmNt3Trans(dwCount, pNewTransMsg, hIMC, bAnsi, Lang);
890 pNewTransMsg = lpTransMsg;
897 pItem = pNewTransMsg;
898 for (dwIndex = 0; dwIndex < dwCount; ++dwIndex, ++pItem)
906 #ifdef IMM_WIN3_SUPPORT 907 if (pNewTransMsg != lpTransMsg)
918 #define MSG_COUNT 0x100 925 BYTE abKeyState[256];
955 dwCount = pIC->dwNumMsgBuf;
966 pIC->dwNumMsgBuf = 0;
1008 kret = pImeDpi->ImeToAsciiEx(
vk,
HIWORD(lKeyData), abKeyState,
pList, 0, hIMC);
1021 if (pTransMsg ==
NULL)
VOID WINAPI ImmUnlockImeDpi(PIMEDPI pImeDpi)
#define ERROR_INVALID_PARAMETER
struct IMM_UNKNOWN_PROCESS1 * PIMM_UNKNOWN_PROCESS1
#define IME_CHOTKEY_IME_NONIME_TOGGLE
#define LANGID_CHINESE_SIMPLIFIED
BOOL WINAPI ImmEnumInputContext(DWORD dwThreadId, IMCENUMPROC lpfn, LPARAM lParam)
#define IME_THOTKEY_SHAPE_TOGGLE
#define IME_PROP_ACCEPT_WIDE_VKEY
LONG WINAPI ImmGetCompositionStringA(HIMC hIMC, DWORD dwIndex, LPVOID lpBuf, DWORD dwBufLen)
#define IME_JHOTKEY_CLOSE_OPEN
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
LRESULT WINAPI ImmSendMessageToActiveDefImeWndW(UINT uMsg, WPARAM wParam, LPARAM lParam)
BOOL NTAPI IsBadWritePtr(IN LPVOID lp, IN UINT_PTR ucb)
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)
DWORD APIENTRY Imm32ReconvertAnsiFromWide(LPRECONVERTSTRING pDest, const RECONVERTSTRING *pSrc, UINT uCodePage)
BOOL WINAPI IsWindow(_In_opt_ HWND)
BOOL WINAPI ImmGetOpenStatus(HIMC hIMC)
#define IME_KHOTKEY_SHAPE_TOGGLE
struct tagRECONVERTSTRING RECONVERTSTRING
VOID APIENTRY LogFontAnsiToWide(const LOGFONTA *plfA, LPLOGFONTW plfW)
#define UNREFERENCED_PARAMETER(P)
BOOL WINAPI PostMessageA(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LPINPUTCONTEXT WINAPI ImmLockIMC(HIMC hIMC)
#define IME_PROP_KBD_CHAR_FIRST
BOOL APIENTRY Imm32KEnglish(HIMC hIMC)
static BOOL APIENTRY ImmIsUIMessageAW(HWND hWndIME, UINT msg, WPARAM wParam, LPARAM lParam, BOOL bAnsi)
LPVOID APIENTRY ImmLocalAlloc(DWORD dwFlags, DWORD dwBytes)
#define LANGID_CHINESE_TRADITIONAL
struct IMM_UNKNOWN_PROCESS1 IMM_UNKNOWN_PROCESS1
BOOL APIENTRY Imm32SendChange(BOOL bProcess)
LPVOID WINAPI ImmLockIMCC(HIMCC imcc)
DWORD NTAPI NtUserNotifyIMEStatus(HWND hwnd, BOOL fOpen, DWORD dwConversion)
static DWORD WINAPI Imm32UnknownProcess1Proc(LPVOID arg)
BOOL APIENTRY Imm32CShapeToggle(HIMC hIMC, HKL hKL, HWND hWnd)
#define INPUTCONTEXTDX_CHANGE_OPEN
#define GetWin32ClientInfo()
static PTHREADINFO FASTCALL Imm32CurrentPti(VOID)
BOOL APIENTRY Imm32ImeNonImeToggle(HIMC hIMC, HKL hKL, HWND hWnd, LANGID LangID)
BOOL APIENTRY Imm32JCloseOpen(HIMC hIMC, HKL hKL, HWND hWnd)
BOOL APIENTRY Imm32KShapeToggle(HIMC hIMC)
BOOL WINAPI ImmTranslateMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lKeyData)
BOOL APIENTRY Imm32ProcessHotKey(HWND hWnd, HIMC hIMC, HKL hKL, DWORD dwHotKeyID)
BOOL WINAPI ImmSetConversionStatus(HIMC hIMC, DWORD fdwConversion, DWORD fdwSentence)
#define WM_IME_COMPOSITIONFULL
DWORD APIENTRY Imm32ReconvertWideFromAnsi(LPRECONVERTSTRING pDest, const RECONVERTSTRING *pSrc, UINT uCodePage)
BOOL WINAPI ImmGetHotKey(IN DWORD dwHotKey, OUT LPUINT lpuModifiers, OUT LPUINT lpuVKey, OUT LPHKL lphKL)
LRESULT APIENTRY Imm32UnknownProcess1(HWND hWnd, BOOL fFlag)
#define IPHK_PROCESSBYIME
DWORD_PTR NTAPI NtUserQueryWindow(HWND hWnd, DWORD Index)
#define IMR_COMPOSITIONFONT
#define IMN_SETOPENSTATUS
BOOL WINAPI ImmSetOpenStatus(HIMC hIMC, BOOL fOpen)
BOOL WINAPI ImmIsUIMessageA(HWND hWndIME, UINT msg, WPARAM wParam, LPARAM lParam)
BOOL APIENTRY Imm32CSymbolToggle(HIMC hIMC, HKL hKL, HWND hWnd)
#define IMR_QUERYCHARPOSITION
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
#define IMN_SETSENTENCEMODE
#define offsetof(TYPE, MEMBER)
LCID WINAPI GetSystemDefaultLCID(void)
PCLIENTIMC WINAPI ImmLockClientImc(HIMC hImc)
DWORD WINAPI ImmProcessKey(HWND hWnd, HKL hKL, UINT vKey, LPARAM lParam, DWORD dwHotKeyID)
#define IMR_RECONVERTSTRING
#define IME_ESC_PRIVATE_HOTKEY
#define QUERY_WINDOW_DEFAULT_IME
#define IMR_CONFIRMRECONVERTSTRING
DWORD NTAPI NtUserGetAppImeLevel(HWND hWnd)
UINT WINAPI ImmGetVirtualKey(HWND hWnd)
BOOL WINAPI ImmNotifyIME(HIMC hIMC, DWORD dwAction, DWORD dwIndex, DWORD dwValue)
struct _tagCOMPOSITIONFORM COMPOSITIONFORM
LRESULT APIENTRY Imm32ProcessRequest(HIMC hIMC, PWND pWnd, DWORD dwCommand, LPVOID pData, BOOL bAnsiAPI)
LONG WINAPI ImmGetCompositionStringW(HIMC hIMC, DWORD dwIndex, LPVOID lpBuf, DWORD dwBufLen)
#define IME_KHOTKEY_HANJACONVERT
struct tagLOGFONTW LOGFONTW
#define IME_CMODE_FULLSHAPE
#define IME_THOTKEY_IME_NONIME_TOGGLE
#define WM_IME_SETCONTEXT
HIMC WINAPI ImmGetContext(HWND hWnd)
#define ValidateHwndNoErr(hwnd)
PIMEDPI WINAPI ImmLockImeDpi(HKL hKL)
#define NI_COMPOSITIONSTR
struct INPUTCONTEXTDX * LPINPUTCONTEXTDX
VOID APIENTRY LogFontWideToAnsi(const LOGFONTW *plfW, LPLOGFONTA plfA)
#define WNDS2_WMCREATEMSGPROCESSED
struct _tagTRANSMSG TRANSMSG
#define ImeDpi_IsUnicode(pImeDpi)
_Check_return_ BOOL WINAPI GetKeyboardState(_Out_writes_(256) PBYTE lpKeyState)
static BOOL Imm32IsCrossThreadAccess(HIMC hIMC)
#define IME_HOTKEY_PRIVATE_FIRST
#define IME_CHOTKEY_SHAPE_TOGGLE
#define ImmLocalFree(lpData)
BOOL WINAPI ImmUnlockIMCC(HIMCC imcc)
#define IME_HOTKEY_PRIVATE_LAST
#define IME_CHOTKEY_SYMBOL_TOGGLE
LONG APIENTRY IchWideFromAnsi(LONG cchAnsi, LPCSTR pchAnsi, UINT uCodePage)
#define LANGIDFROMLCID(l)
BOOL WINAPI ImmGenerateMessage(HIMC hIMC)
struct tagCANDIDATEFORM CANDIDATEFORM
LONG APIENTRY IchAnsiFromWide(LONG cchWide, LPCWSTR pchWide, UINT uCodePage)
LRESULT APIENTRY ImmRequestMessageAW(HIMC hIMC, WPARAM wParam, LPARAM lParam, BOOL bAnsi)
#define IME_THOTKEY_SYMBOL_TOGGLE
int WINAPI ToAsciiEx(_In_ UINT, _In_ UINT, _In_reads_opt_(256) CONST BYTE *, _Out_ LPWORD, _In_ UINT, _In_opt_ HKL)
BOOL WINAPI ImmIsIME(HKL hKL)
#define IME_CMODE_HANJACONVERT
BOOL WINAPI ImmReleaseContext(HWND hWnd, HIMC hIMC)
LRESULT WINAPI ImmSystemHandler(HIMC hIMC, WPARAM wParam, LPARAM lParam)
#define INPUTCONTEXTDX_CHANGE_SENTENCE
BOOL NTAPI NtUserGetImeHotKey(DWORD dwHotKeyId, LPUINT lpuModifiers, LPUINT lpuVirtualKey, LPHKL lphKL)
HWND WINAPI ImmGetDefaultIMEWnd(HWND hWnd)
LRESULT WINAPI ImmRequestMessageW(HIMC hIMC, WPARAM wParam, LPARAM lParam)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define IMN_SETCONVERSIONMODE
#define WNDS_ANSIWINDOWPROC
PKEYBOARD_LAYOUT GetKeyboardLayout()
VOID APIENTRY Imm32PostMessages(HWND hwnd, HIMC hIMC, DWORD dwCount, LPTRANSMSG lpTransMsg)
static BOOL CALLBACK Imm32SendChangeProc(HIMC hIMC, LPARAM lParam)
int WINAPI ToUnicode(_In_ UINT wVirtKey, _In_ UINT wScanCode, _In_reads_bytes_opt_(256) CONST BYTE *lpKeyState, _Out_writes_(cchBuff) LPWSTR pwszBuff, _In_ int cchBuff, _In_ UINT wFlags)
BOOL WINAPI ImmIsUIMessageW(HWND hWndIME, UINT msg, WPARAM wParam, LPARAM lParam)
LRESULT WINAPI SendMessageTimeoutW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM, _In_ UINT, _In_ UINT, _Out_opt_ PDWORD_PTR)
#define IME_KHOTKEY_ENGLISH
BOOL WINAPI ImmSimulateHotKey(HWND hWnd, DWORD dwHotKeyID)
UINT WINAPI ImmWINNLSGetIMEHotkey(HWND hwndIme)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
VOID APIENTRY Imm32RequestError(DWORD dwError)
LRESULT WINAPI ImmRequestMessageA(HIMC hIMC, WPARAM wParam, LPARAM lParam)
#define INPUTCONTEXTDX_CHANGE_CONVERSION
#define RtlCopyMemory(Destination, Source, Length)
#define INVALID_HOTKEY_ID
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
WINE_DEFAULT_DEBUG_CHANNEL(imm)
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT _Inout_ PUSHORT _In_ UCHAR _In_opt_ USHORT LangID
struct tagIMECHARPOSITION IMECHARPOSITION
BOOL WINAPI ImmUnlockIMC(HIMC hIMC)
BOOL APIENTRY Imm32KHanjaConvert(HIMC hIMC)
#define ValidateHwnd(hwnd)
VOID WINAPI ImmUnlockClientImc(PCLIENTIMC pClientImc)