https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e1df4f2d8f6206382b9902...
commit e1df4f2d8f6206382b9902727d52b2681c672679 Author: Katayama Hirofumi MZ katayama.hirofumi.mz@gmail.com AuthorDate: Wed Oct 26 12:01:33 2022 +0900 Commit: GitHub noreply@github.com CommitDate: Wed Oct 26 12:01:33 2022 +0900
[IMM32] Add reasoning for tracing (#4807)
Follow-up of c2a9436 (#4798). Improve trace messages. CORE-11700 --- dll/win32/imm32/candidate.c | 18 ++++++++++++------ dll/win32/imm32/compstr.c | 13 ++++++------- dll/win32/imm32/ime.c | 43 +++++++++++++++++++++++++++++++------------ dll/win32/imm32/imm.c | 26 ++++++++++++++------------ dll/win32/imm32/keymsg.c | 17 +++++++---------- dll/win32/imm32/utils.c | 40 ++++++++++++++++++++-------------------- 6 files changed, 90 insertions(+), 67 deletions(-)
diff --git a/dll/win32/imm32/candidate.c b/dll/win32/imm32/candidate.c index a1df77e7b33..df976e407c8 100644 --- a/dll/win32/imm32/candidate.c +++ b/dll/win32/imm32/candidate.c @@ -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("Too small\n"); + goto Quit; + } + + if (pCI->dwCount <= dwIndex) { - ERR("\n"); + 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; }
diff --git a/dll/win32/imm32/compstr.c b/dll/win32/imm32/compstr.c index 980e904e1c6..5486397f3f4 100644 --- a/dll/win32/imm32/compstr.c +++ b/dll/win32/imm32/compstr.c @@ -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; } diff --git a/dll/win32/imm32/ime.c b/dll/win32/imm32/ime.c index 9bc3cd6830a..d898c924570 100644 --- a/dll/win32/imm32/ime.c +++ b/dll/win32/imm32/ime.c @@ -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)) { diff --git a/dll/win32/imm32/imm.c b/dll/win32/imm32/imm.c index 117384111be..27d80d3a82d 100644 --- a/dll/win32/imm32/imm.c +++ b/dll/win32/imm32/imm.c @@ -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; }
diff --git a/dll/win32/imm32/keymsg.c b/dll/win32/imm32/keymsg.c index 8e1cac90154..c759176e7d6 100644 --- a/dll/win32/imm32/keymsg.c +++ b/dll/win32/imm32/keymsg.c @@ -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; } } diff --git a/dll/win32/imm32/utils.c b/dll/win32/imm32/utils.c index b98697358e9..cd7cfd56bd2 100644 --- a/dll/win32/imm32/utils.c +++ b/dll/win32/imm32/utils.c @@ -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; }