[IMM32] Add reasoning for tracing (#4807)

Follow-up of c2a9436 (#4798).
Improve trace messages.
CORE-11700
This commit is contained in:
Katayama Hirofumi MZ 2022-10-26 12:01:33 +09:00 committed by GitHub
parent dd75ae8eca
commit e1df4f2d8f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 90 additions and 67 deletions

View file

@ -180,9 +180,15 @@ ImmGetCandidateListAW(HIMC hIMC, DWORD dwIndex, LPCANDIDATELIST lpCandList, DWOR
return 0;
}
if (pCI->dwSize < sizeof(CANDIDATEINFO) || pCI->dwCount <= dwIndex)
if (pCI->dwSize < sizeof(CANDIDATEINFO))
{
ERR("\n");
ERR("Too small\n");
goto Quit;
}
if (pCI->dwCount <= dwIndex)
{
ERR("Out of boundary\n");
goto Quit;
}
@ -276,7 +282,7 @@ ImmGetCandidateListCountAW(HIMC hIMC, LPDWORD lpdwListCount, BOOL bAnsi)
if (pCI->dwSize < sizeof(CANDIDATEINFO))
{
ERR("\n");
ERR("Too small\n");
goto Quit;
}
@ -378,7 +384,7 @@ ImmGetCandidateWindow(HIMC hIMC, DWORD dwIndex, LPCANDIDATEFORM lpCandidate)
if (dwIndex >= MAX_CANDIDATEFORM) /* Windows didn't check but we do for security reason */
{
ERR("\n");
ERR("Out of boundary\n");
return FALSE;
}
@ -394,7 +400,7 @@ ImmGetCandidateWindow(HIMC hIMC, DWORD dwIndex, LPCANDIDATEFORM lpCandidate)
}
else
{
ERR("\n");
ERR("Out of boundary\n");
}
ImmUnlockIMC(hIMC);
@ -414,7 +420,7 @@ BOOL WINAPI ImmSetCandidateWindow(HIMC hIMC, LPCANDIDATEFORM lpCandidate)
if (lpCandidate->dwIndex >= MAX_CANDIDATEFORM)
{
ERR("\n");
ERR("Out of boundary\n");
return FALSE;
}

View file

@ -272,7 +272,7 @@ Imm32GetCompStrA(HIMC hIMC, const COMPOSITIONSTRING *pCS, DWORD dwIndex,
break;
default:
FIXME("\n");
FIXME("0x%X\n", dwIndex);
return IMM_ERROR_GENERAL;
}
}
@ -357,7 +357,7 @@ Imm32GetCompStrA(HIMC hIMC, const COMPOSITIONSTRING *pCS, DWORD dwIndex,
break;
default:
FIXME("\n");
FIXME("0x%X\n", dwIndex);
return IMM_ERROR_GENERAL;
}
}
@ -449,7 +449,7 @@ Imm32GetCompStrW(HIMC hIMC, const COMPOSITIONSTRING *pCS, DWORD dwIndex,
break;
default:
FIXME("\n");
FIXME("0x%X\n", dwIndex);
return IMM_ERROR_GENERAL;
}
}
@ -506,7 +506,7 @@ Imm32GetCompStrW(HIMC hIMC, const COMPOSITIONSTRING *pCS, DWORD dwIndex,
break;
default:
FIXME("\n");
FIXME("0x%X\n", dwIndex);
return IMM_ERROR_GENERAL;
}
}
@ -532,7 +532,7 @@ ImmSetCompositionStringAW(HIMC hIMC, DWORD dwIndex, LPVOID pComp, DWORD dwCompLe
dwThreadId = (DWORD)NtUserQueryInputContext(hIMC, QIC_INPUTTHREADID);
if (dwThreadId != GetCurrentThreadId())
{
ERR("\n");
ERR("Thread mismatch\n");
return FALSE;
}
@ -554,7 +554,7 @@ ImmSetCompositionStringAW(HIMC hIMC, DWORD dwIndex, LPVOID pComp, DWORD dwCompLe
break;
/* FALL THROUGH */
default:
ERR("\n");
ERR("0x%X\n", dwIndex);
ImmUnlockImeDpi(pImeDpi);
return FALSE;
}
@ -569,7 +569,6 @@ ImmSetCompositionStringAW(HIMC hIMC, DWORD dwIndex, LPVOID pComp, DWORD dwCompLe
if (!Imm32OpenICAndCS(hIMC, &pIC, &pCS))
{
ERR("\n");
ImmUnlockImeDpi(pImeDpi);
return FALSE;
}

View file

@ -125,32 +125,32 @@ BOOL APIENTRY Imm32InquireIme(PIMEDPI pImeDpi)
if (pImeInfo->fdwProperty & ~VALID_IME_PROP)
{
ERR("\n");
ERR("Bad flags\n");
return FALSE;
}
if (pImeInfo->fdwConversionCaps & ~VALID_CMODE_CAPS)
{
ERR("\n");
ERR("Bad flags\n");
return FALSE;
}
if (pImeInfo->fdwSentenceCaps & ~VALID_SMODE_CAPS)
{
ERR("\n");
ERR("Bad flags\n");
return FALSE;
}
if (pImeInfo->fdwUICaps & ~VALID_UI_CAPS)
{
ERR("\n");
ERR("Bad flags\n");
return FALSE;
}
if (pImeInfo->fdwSCSCaps & ~VALID_SCS_CAPS)
{
ERR("\n");
ERR("Bad flags\n");
return FALSE;
}
if (pImeInfo->fdwSelectCaps & ~VALID_SELECT_CAPS)
{
ERR("\n");
ERR("Bad flags\n");
return FALSE;
}
@ -223,7 +223,7 @@ BOOL APIENTRY Imm32LoadIME(PIMEINFOEX pImeInfoEx, PIMEDPI pImeDpi)
fn = GetProcAddress(hIME, #name); \
if (fn) pImeDpi->name = (FN_##name)fn; \
else if (!(optional)) { \
ERR("'%s' not found in the IME module '%s'.\n", #name, debugstr_w(szPath)); \
ERR("'%s' not found in IME module '%s'.\n", #name, debugstr_w(szPath)); \
goto Failed; \
} \
} while (0);
@ -236,7 +236,6 @@ BOOL APIENTRY Imm32LoadIME(PIMEINFOEX pImeInfoEx, PIMEDPI pImeDpi)
}
else
{
ERR("Imm32InquireIme failed\n");
Failed:
ret = FALSE;
FreeLibrary(pImeDpi->hInst);
@ -274,7 +273,10 @@ PIMEDPI APIENTRY Imm32LoadImeDpi(HKL hKL, BOOL bLock)
LCID lcid;
if (!IS_IME_HKL(hKL))
{
TRACE("\n");
return NULL;
}
if (!ImmGetImeInfoEx(&ImeInfoEx, ImeInfoExKeyboardLayout, &hKL))
{
@ -344,7 +346,7 @@ PIMEDPI APIENTRY Imm32FindOrLoadImeDpi(HKL hKL)
if (!IS_IME_HKL(hKL) && (!IS_CICERO_MODE() || IS_16BIT_MODE()))
{
ERR("\n");
TRACE("\n");
return NULL;
}
@ -453,7 +455,10 @@ LRESULT WINAPI ImmPutImeMenuItemsIntoMappedFile(HIMC hIMC)
hMapping = OpenFileMappingW(FILE_MAP_ALL_ACCESS, FALSE, L"ImmMenuInfo");
pView = MapViewOfFile(hMapping, FILE_MAP_ALL_ACCESS, 0, 0, 0);
if (!pView || pView->dwVersion != 1)
if (IS_NULL_UNEXPECTEDLY(pView))
goto Quit;
if (pView->dwVersion != 1)
{
ERR("\n");
goto Quit;
@ -798,7 +803,10 @@ HKL WINAPI ImmInstallIMEW(LPCWSTR lpszIMEFileName, LPCWSTR lpszLayoutText)
if (cLayouts)
{
pLayouts = ImmLocalAlloc(0, cLayouts * sizeof(REG_IME));
if (!pLayouts || !Imm32GetImeLayout(pLayouts, cLayouts))
if (IS_NULL_UNEXPECTEDLY(pLayouts))
return NULL;
if (!Imm32GetImeLayout(pLayouts, cLayouts))
{
ERR("\n");
ImmLocalFree(pLayouts);
@ -883,7 +891,7 @@ HWND WINAPI ImmGetDefaultIMEWnd(HWND hWnd)
{
if (!IS_IMM_MODE())
{
WARN("\n");
TRACE("\n");
return NULL;
}
@ -1088,7 +1096,10 @@ UINT WINAPI ImmGetDescriptionA(HKL hKL, LPSTR lpszDescription, UINT uBufLen)
TRACE("(%p,%p,%d)\n", hKL, lpszDescription, uBufLen);
if (!IS_IME_HKL(hKL))
{
TRACE("\n");
return 0;
}
if (!ImmGetImeInfoEx(&info, ImeInfoExKeyboardLayout, &hKL))
{
@ -1115,7 +1126,10 @@ UINT WINAPI ImmGetDescriptionW(HKL hKL, LPWSTR lpszDescription, UINT uBufLen)
TRACE("(%p, %p, %d)\n", hKL, lpszDescription, uBufLen);
if (!IS_IME_HKL(hKL))
{
TRACE("\n");
return 0;
}
if (!ImmGetImeInfoEx(&info, ImeInfoExKeyboardLayout, &hKL))
{
@ -1143,6 +1157,7 @@ UINT WINAPI ImmGetIMEFileNameA( HKL hKL, LPSTR lpszFileName, UINT uBufLen)
if (!IS_IME_HKL(hKL))
{
TRACE("\n");
if (uBufLen > 0)
lpszFileName[0] = 0;
return 0;
@ -1182,6 +1197,7 @@ UINT WINAPI ImmGetIMEFileNameW(HKL hKL, LPWSTR lpszFileName, UINT uBufLen)
if (!IS_IME_HKL(hKL))
{
TRACE("\n");
if (uBufLen > 0)
lpszFileName[0] = 0;
return 0;
@ -1221,7 +1237,10 @@ DWORD WINAPI ImmGetProperty(HKL hKL, DWORD fdwIndex)
TRACE("(%p, %lu)\n", hKL, fdwIndex);
if (!IS_IME_HKL(hKL))
{
TRACE("\n");
return FALSE;
}
if (!ImmGetImeInfoEx(&ImeInfoEx, ImeInfoExKeyboardLayout, &hKL))
{

View file

@ -90,7 +90,10 @@ BOOL WINAPI ImmLoadLayout(HKL hKL, PIMEINFOEX pImeInfoEx)
pImeInfoEx->fLoadFlag = 0;
if (IS_ERROR_UNEXPECTEDLY(error) || dwType != REG_SZ)
if (IS_ERROR_UNEXPECTEDLY(error))
return FALSE;
if (dwType != REG_SZ)
{
ERR("\n");
return FALSE;
@ -145,7 +148,7 @@ BOOL WINAPI ImmFreeLayout(DWORD dwUnknown)
StringCchPrintfW(szKBD, _countof(szKBD), L"%08X", LangID);
if (!LoadKeyboardLayoutW(szKBD, KLF_ACTIVATE))
{
WARN("\n");
WARN("Default to English US\n");
LoadKeyboardLayoutW(L"00000409", KLF_ACTIVATE | 0x200);
}
}
@ -497,7 +500,7 @@ HIMC WINAPI ImmAssociateContext(HWND hWnd, HIMC hIMC)
if (!IS_IMM_MODE())
{
WARN("\n");
TRACE("\n");
return NULL;
}
@ -546,7 +549,7 @@ BOOL WINAPI ImmAssociateContextEx(HWND hWnd, HIMC hIMC, DWORD dwFlags)
if (!IS_IMM_MODE())
{
WARN("\n");
TRACE("\n");
return FALSE;
}
@ -594,7 +597,7 @@ HIMC WINAPI ImmCreateContext(void)
if (!IS_IMM_MODE())
{
WARN("\n");
TRACE("\n");
return NULL;
}
@ -651,7 +654,7 @@ BOOL APIENTRY Imm32DestroyInputContext(HIMC hIMC, HKL hKL, BOOL bKeep)
if (!IS_IMM_MODE())
{
WARN("\n");
TRACE("\n");
return FALSE;
}
@ -661,7 +664,7 @@ BOOL APIENTRY Imm32DestroyInputContext(HIMC hIMC, HKL hKL, BOOL bKeep)
if (pIMC->head.pti != Imm32CurrentPti())
{
ERR("\n");
ERR("Thread mismatch\n");
return FALSE;
}
@ -674,7 +677,7 @@ BOOL APIENTRY Imm32DestroyInputContext(HIMC hIMC, HKL hKL, BOOL bKeep)
if ((pClientImc->dwFlags & CLIENTIMC_UNKNOWN2) && !bKeep)
{
ERR("\n");
ERR("Can't destroy for CLIENTIMC_UNKNOWN2\n");
return FALSE;
}
@ -875,7 +878,7 @@ LPINPUTCONTEXT APIENTRY Imm32InternalLockIMC(HIMC hIMC, BOOL fSelect)
if (!NtUserQueryInputContext(hIMC, QIC_DEFAULTWINDOWIME))
{
ERR("\n");
ERR("No default IME window\n");
goto Failure;
}
@ -891,7 +894,6 @@ LPINPUTCONTEXT APIENTRY Imm32InternalLockIMC(HIMC hIMC, BOOL fSelect)
hNewKL = GetKeyboardLayout(dwThreadId);
if (!Imm32CreateInputContext(hIMC, pIC, pClientImc, hNewKL, fSelect))
{
ERR("\n");
LocalUnlock(hIC);
pClientImc->hInputContext = LocalFree(hIC);
goto Failure;
@ -920,7 +922,7 @@ BOOL WINAPI ImmDestroyContext(HIMC hIMC)
if (!IS_IMM_MODE())
{
WARN("\n");
TRACE("\n");
return FALSE;
}
@ -1175,7 +1177,7 @@ BOOL WINAPI ImmSetActiveContext(HWND hWnd, HIMC hIMC, BOOL fActive)
if (!IS_IMM_MODE())
{
WARN("\n");
TRACE("\n");
return FALSE;
}

View file

@ -457,7 +457,7 @@ Imm32ProcessRequest(HIMC hIMC, PWND pWnd, DWORD dwCommand, LPVOID pData, BOOL bA
if (dwCommand == 0 || dwCommand > IMR_DOCUMENTFEED)
{
ERR("\n");
ERR("Out of boundary\n");
return 0; /* Out of range */
}
@ -475,7 +475,7 @@ Imm32ProcessRequest(HIMC hIMC, PWND pWnd, DWORD dwCommand, LPVOID pData, BOOL bA
pRS = pData;
if (pRS && (pRS->dwVersion != 0 || pRS->dwSize < sizeof(RECONVERTSTRING)))
{
ERR("\n");
ERR("Invalid pRS\n");
return 0;
}
break;
@ -484,17 +484,14 @@ Imm32ProcessRequest(HIMC hIMC, PWND pWnd, DWORD dwCommand, LPVOID pData, BOOL bA
pRS = pData;
if (!pRS || pRS->dwVersion != 0)
{
ERR("\n");
ERR("Invalid pRS\n");
return 0;
}
break;
default:
if (!pData)
{
ERR("\n");
if (IS_NULL_UNEXPECTEDLY(pData))
return 0;
}
break;
}
@ -585,7 +582,7 @@ Imm32ProcessRequest(HIMC hIMC, PWND pWnd, DWORD dwCommand, LPVOID pData, BOOL bA
break;
default:
WARN("\n");
WARN("0x%X\n", dwCommand);
break;
}
@ -634,7 +631,7 @@ DoIt:
break;
default:
WARN("\n");
WARN("0x%X\n", dwCommand);
break;
}
@ -884,7 +881,7 @@ LRESULT WINAPI ImmSystemHandler(HIMC hIMC, WPARAM wParam, LPARAM lParam)
return CtfImmSetLangBand((HWND)lParam, (wParam == IMS_SETLANGBAND));
default:
WARN("\n");
WARN("%p\n", wParam);
return 0;
}
}

View file

@ -73,7 +73,7 @@ BOOL APIENTRY Imm32IsSystemJapaneseOrKorean(VOID)
WORD wPrimary = PRIMARYLANGID(LangID);
if (wPrimary != LANG_JAPANESE || wPrimary != LANG_KOREAN)
{
WARN("\n");
TRACE("The country has no special IME support\n");
return FALSE;
}
return TRUE;
@ -104,7 +104,7 @@ HBITMAP Imm32LoadBitmapFromBytes(const BYTE *pb)
hbm = CreateDIBSection(NULL, (LPBITMAPINFO)pbmci, DIB_RGB_COLORS, &pvBits, NULL, 0);
if (!hbm || !GetObject(hbm, sizeof(BITMAP), &bm))
{
ERR("\n");
ERR("Invalid bitmap\n");
return NULL;
}
@ -117,7 +117,7 @@ HBITMAP Imm32LoadBitmapFromBytes(const BYTE *pb)
cColors = 0;
break;
default:
ERR("\n");
ERR("Invalid bitmap\n");
DeleteObject(hbm);
return NULL;
}
@ -131,7 +131,7 @@ HBITMAP Imm32LoadBitmapFromBytes(const BYTE *pb)
ib += bm.bmWidthBytes * bm.bmHeight;
if (ib > cbBytes)
{
ERR("\n");
ERR("Invalid bitmap\n");
DeleteObject(hbm);
return NULL;
}
@ -153,7 +153,7 @@ BOOL Imm32StoreBitmapToBytes(HBITMAP hbm, LPBYTE pbData, DWORD cbDataMax)
if (!GetObject(hbm, sizeof(BITMAP), &bm))
{
ERR("\n");
ERR("Invalid bitmap\n");
return FALSE;
}
@ -173,7 +173,7 @@ BOOL Imm32StoreBitmapToBytes(HBITMAP hbm, LPBYTE pbData, DWORD cbDataMax)
cColors = 0;
break;
default:
ERR("\n");
ERR("Invalid bitmap\n");
return FALSE;
}
@ -183,7 +183,7 @@ BOOL Imm32StoreBitmapToBytes(HBITMAP hbm, LPBYTE pbData, DWORD cbDataMax)
cbBytes += bm.bmWidthBytes * bm.bmHeight;
if (cbBytes > cbDataMax)
{
ERR("\n");
ERR("Too small\n");
return FALSE;
}
@ -287,7 +287,7 @@ BOOL Imm32GetSystemLibraryPath(LPWSTR pszPath, DWORD cchPath, LPCWSTR pszFileNam
{
if (!pszFileName[0] || !GetSystemDirectoryW(pszPath, cchPath))
{
ERR("\n");
ERR("Invalid filename\n");
return FALSE;
}
StringCchCatW(pszPath, cchPath, L"\\");
@ -345,7 +345,7 @@ LPVOID FASTCALL ValidateHandleNoErr(HANDLE hObject, UINT uType)
if (!NtUserValidateHandleSecure(hObject))
{
WARN("\n");
WARN("Not a handle\n");
return NULL;
}
@ -485,7 +485,7 @@ DWORD APIENTRY Imm32BuildHimcList(DWORD dwThreadId, HIMC **pphList)
if (NT_ERROR(Status) || !dwCount)
{
ERR("\n");
ERR("Abnormal status\n");
ImmLocalFree(phNewList);
return 0;
}
@ -645,7 +645,7 @@ Imm32ReconvertWideFromAnsi(LPRECONVERTSTRING pDest, const RECONVERTSTRING *pSrc,
if (pDest->dwSize < cbDest)
{
ERR("\n");
ERR("Too small\n");
return 0;
}
@ -695,7 +695,10 @@ Imm32ReconvertAnsiFromWide(LPRECONVERTSTRING pDest, const RECONVERTSTRING *pSrc,
LPSTR pchDest;
if (pSrc->dwVersion != 0)
{
ERR("\n");
return 0;
}
cchDest = WideCharToMultiByte(uCodePage, 0, pchSrc, pSrc->dwStrLen,
NULL, 0, NULL, NULL);
@ -705,7 +708,7 @@ Imm32ReconvertAnsiFromWide(LPRECONVERTSTRING pDest, const RECONVERTSTRING *pSrc,
if (pDest->dwSize < cbDest)
{
ERR("\n");
ERR("Too small\n");
return 0;
}
@ -764,14 +767,14 @@ static BOOL APIENTRY Imm32LoadImeFixedInfo(PIMEINFOEX pInfoEx, LPCVOID pVerInfo)
VS_FIXEDFILEINFO *pFixed;
if (!s_fnVerQueryValueW(pVerInfo, L"\\", (LPVOID*)&pFixed, &cbFixed) || !cbFixed)
{
ERR("\n");
ERR("Fixed version info not available\n");
return FALSE;
}
/* NOTE: The IME module must contain a version info of input method driver. */
if (pFixed->dwFileType != VFT_DRV || pFixed->dwFileSubtype != VFT2_DRV_INPUTMETHOD)
{
ERR("\n");
ERR("DLL is not an IME\n");
return FALSE;
}
@ -811,7 +814,7 @@ BOOL APIENTRY Imm32LoadImeLangAndDesc(PIMEINFOEX pInfoEx, LPCVOID pVerInfo)
ret = s_fnVerQueryValueW(pVerInfo, L"\\VarFileInfo\\Translation", (LPVOID*)&pw, &cbData);
if (!ret || !cbData)
{
ERR("\n");
ERR("Translation not available\n");
return FALSE;
}
@ -978,10 +981,7 @@ UINT APIENTRY Imm32GetImeLayout(PREG_IME pLayouts, UINT cLayouts)
lError = RegOpenKeyW(hkeyLayouts, szImeKey, &hkeyIME); /* Open the IME key */
if (IS_ERROR_UNEXPECTEDLY(lError))
{
WARN("\n");
continue;
}
/* Load the "Ime File" value */
szImeFileName[0] = 0;
@ -1000,7 +1000,7 @@ UINT APIENTRY Imm32GetImeLayout(PREG_IME pLayouts, UINT cLayouts)
Imm32StrToUInt(szImeKey, &Value, 16);
hKL = (HKL)(DWORD_PTR)Value;
if (!IS_IME_HKL(hKL))
if (!IS_IME_HKL(hKL)) /* Not an IME */
{
WARN("\n");
continue;
@ -1093,7 +1093,7 @@ BOOL APIENTRY Imm32WriteImeLayout(HKL hKL, LPCWSTR pchFilePart, LPCWSTR pszLayou
if (iPreload >= MAX_PRELOAD) /* Not found */
{
WARN("\n");
ERR("\n");
RegCloseKey(hkeyPreload);
return FALSE;
}