19 #define WIN32_NO_STATUS 32 #define NTOS_MODE_USER 48 #include <wine/list.h> 50 #define IMM_INIT_MAGIC 0x19650412 51 #define IMM_INVALID_CANDFORM ULONG_MAX 52 #define INVALID_HOTKEY_ID 0xFFFFFFFF 53 #define MAX_CANDIDATEFORM 4 54 #define MAX_IMM_FILENAME 80 56 #define LANGID_CHINESE_SIMPLIFIED MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED) 57 #define LANGID_CHINESE_TRADITIONAL MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL) 58 #define LANGID_JAPANESE MAKELANGID(LANG_JAPANESE, SUBLANG_DEFAULT) 60 #define REGKEY_KEYBOARD_LAYOUTS L"System\\CurrentControlSet\\Control\\Keyboard Layouts" 61 #define REGKEY_IMM L"Software\\Microsoft\\Windows NT\\CurrentVersion\\IMM" 63 #define ROUNDUP4(n) (((n) + 3) & ~3) 84 #define ValidateHwndNoErr(hwnd) ValidateHandleNoErr((hwnd), TYPE_WINDOW) 85 #define ValidateHwnd(hwnd) ValidateHandle((hwnd), TYPE_WINDOW) 89 #define ImmLocalFree(lpData) HeapFree(ghImmHeap, 0, (lpData)) 116 #define ImeDpi_IsUnicode(pImeDpi) ((pImeDpi)->ImeInfo.fdwProperty & IME_PROP_UNICODE) 117 #define IS_IMM_MODE() (gpsi && (gpsi->dwSRVIFlags & SRVINFO_IMM32)) 118 #define Imm32IsCiceroMode() (gpsi && (gpsi->dwSRVIFlags & SRVINFO_CICERO_ENABLED)) 119 #define Imm32Is16BitMode() (GetWin32ClientInfo()->dwTIFlags & TIF_16BIT)
HRESULT APIENTRY Imm32UIntToStr(DWORD dwValue, ULONG nBase, LPWSTR pszBuff, USHORT cchBuff)
#define QUERY_WINDOW_UNIQUE_PROCESS_ID
DWORD_PTR NTAPI NtUserGetThreadState(DWORD Routine)
BOOL APIENTRY Imm32LoadImeVerInfo(PIMEINFOEX pImeInfoEx)
DWORD APIENTRY Imm32ReconvertAnsiFromWide(LPRECONVERTSTRING pDest, const RECONVERTSTRING *pSrc, UINT uCodePage)
BOOL APIENTRY Imm32MakeIMENotify(HIMC hIMC, HWND hwnd, DWORD dwAction, DWORD_PTR dwIndex, DWORD_PTR dwValue, DWORD_PTR dwCommand, DWORD_PTR dwData)
BOOL APIENTRY Imm32WriteImeLayout(HKL hKL, LPCWSTR pchFilePart, LPCWSTR pszLayout)
VOID APIENTRY LogFontAnsiToWide(const LOGFONTA *plfA, LPLOGFONTW plfW)
BOOL APIENTRY Imm32LoadImeStateSentence(LPINPUTCONTEXTDX pIC, PIME_STATE pState, HKL hKL)
LPVOID APIENTRY ImmLocalAlloc(DWORD dwFlags, DWORD dwBytes)
UINT APIENTRY Imm32GetImeLayout(PREG_IME pLayouts, UINT cLayouts)
static HANDLE ULONG_PTR dwData
static PTHREADINFO FASTCALL Imm32CurrentPti(VOID)
PIME_SUBSTATE APIENTRY Imm32FetchImeSubState(PIME_STATE pState, HKL hKL)
_In_ HCRYPTHASH _In_ BOOL _In_ DWORD _Inout_ DWORD _In_ DWORD dwBufLen
DWORD APIENTRY Imm32ReconvertWideFromAnsi(LPRECONVERTSTRING pDest, const RECONVERTSTRING *pSrc, UINT uCodePage)
LPSTR APIENTRY Imm32AnsiFromWide(LPCWSTR pszW)
INT APIENTRY Imm32ImeMenuAnsiToWide(const IMEMENUITEMINFOA *pItemA, LPIMEMENUITEMINFOW pItemW, UINT uCodePage, BOOL bBitmap)
HRESULT APIENTRY Imm32StrToUInt(LPCWSTR pszText, LPDWORD pdwValue, ULONG nBase)
BOOL APIENTRY Imm32IsSystemJapaneseOrKorean(VOID)
DWORD_PTR NTAPI NtUserQueryWindow(HWND hWnd, DWORD Index)
PIME_STATE APIENTRY Imm32FetchImeState(LPINPUTCONTEXTDX pIC, HKL hKL)
BOOL APIENTRY Imm32ReleaseIME(HKL hKL)
WORD WORD PSZ PSZ pszFileName
BOOL WINAPI Imm32IsImcAnsi(HIMC hIMC)
DWORD WINAPI GetCurrentThreadId(VOID)
HKL APIENTRY Imm32AssignNewLayout(UINT cKLs, const REG_IME *pLayouts, WORD wLangID)
_Out_ PCLIENT_ID ClientId
LPINPUTCONTEXT APIENTRY Imm32InternalLockIMC(HIMC hIMC, BOOL fSelect)
DWORD APIENTRY Imm32BuildHimcList(DWORD dwThreadId, HIMC **pphList)
LPVOID FASTCALL ValidateHandleNoErr(HANDLE hObject, UINT uType)
DWORD_PTR NTAPI NtUserQueryInputContext(HIMC hIMC, DWORD dwType)
PIMEDPI APIENTRY Imm32FindOrLoadImeDpi(HKL hKL)
VOID APIENTRY LogFontWideToAnsi(const LOGFONTW *plfW, LPLOGFONTA plfA)
BOOL APIENTRY Imm32CopyImeFile(LPWSTR pszOldFile, LPCWSTR pszNewFile)
RTL_CRITICAL_SECTION gcsImeDpi
static BOOL Imm32IsCrossThreadAccess(HIMC hIMC)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
LONG APIENTRY IchWideFromAnsi(LONG cchAnsi, LPCSTR pchAnsi, UINT uCodePage)
LONG APIENTRY IchAnsiFromWide(LONG cchWide, LPCWSTR pchWide, UINT uCodePage)
BOOL Imm32GetSystemLibraryPath(LPWSTR pszPath, DWORD cchPath, LPCWSTR pszFileName)
DWORD APIENTRY CandidateListAnsiToWide(const CANDIDATELIST *pAnsiCL, LPCANDIDATELIST pWideCL, DWORD dwBufLen, UINT uCodePage)
FORCEINLINE struct _TEB * NtCurrentTeb(VOID)
BOOL APIENTRY Imm32CheckImcProcess(PIMC pIMC)
struct REG_IME * PREG_IME
BOOL APIENTRY Imm32SaveImeStateSentence(LPINPUTCONTEXTDX pIC, PIME_STATE pState, HKL hKL)
static BOOL Imm32IsCrossProcessAccess(HWND hWnd)
LPVOID FASTCALL ValidateHandle(HANDLE hObject, UINT uType)
INT APIENTRY Imm32ImeMenuWideToAnsi(const IMEMENUITEMINFOW *pItemW, LPIMEMENUITEMINFOA pItemA, UINT uCodePage)
LPWSTR APIENTRY Imm32WideFromAnsi(LPCSTR pszA)
DWORD APIENTRY CandidateListWideToAnsi(const CANDIDATELIST *pWideCL, LPCANDIDATELIST pAnsiCL, DWORD dwBufLen, UINT uCodePage)