[PATCH] handle error returns from ImmGetCompositionString

Marcus Meissner marcus at jet.franken.de
Sun Feb 17 08:58:06 CST 2008


since we had DWORD as return value, we could not have cehcked
for < 0. Changed to use LONG, also renamed value.

Ciao, Marcus
---
 dlls/user32/edit.c |   26 +++++++++++++-------------
 1 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/dlls/user32/edit.c b/dlls/user32/edit.c
index a3eb1d8..f5bc433 100644
--- a/dlls/user32/edit.c
+++ b/dlls/user32/edit.c
@@ -5347,7 +5347,7 @@ static void EDIT_UpdateText(EDITSTATE *es, const RECT *rc, BOOL bErase)
 
 static void EDIT_GetCompositionStr(HWND hwnd, LPARAM CompFlag, EDITSTATE *es)
 {
-    DWORD dwBufLen;
+    LONG lBufLen;
     LPWSTR lpCompStr = NULL;
     HIMC hIMC;
     LPSTR lpCompStrAttr = NULL;
@@ -5356,15 +5356,15 @@ static void EDIT_GetCompositionStr(HWND hwnd, LPARAM CompFlag, EDITSTATE *es)
     if (!(hIMC = ImmGetContext(hwnd)))
         return;
 
-    dwBufLen = ImmGetCompositionStringW(hIMC, GCS_COMPSTR, NULL, 0);
+    lBufLen = ImmGetCompositionStringW(hIMC, GCS_COMPSTR, NULL, 0);
 
-    if (dwBufLen < 0)
+    if (lBufLen < 0)
     {
         ImmReleaseContext(hwnd, hIMC);
         return;
     }
 
-    lpCompStr = HeapAlloc(GetProcessHeap(),0,dwBufLen + sizeof(WCHAR));
+    lpCompStr = HeapAlloc(GetProcessHeap(),0,lBufLen + sizeof(WCHAR));
     if (!lpCompStr)
     {
         ERR("Unable to allocate IME CompositionString\n");
@@ -5372,9 +5372,9 @@ static void EDIT_GetCompositionStr(HWND hwnd, LPARAM CompFlag, EDITSTATE *es)
         return;
     }
 
-    if (dwBufLen)
-        ImmGetCompositionStringW(hIMC, GCS_COMPSTR, lpCompStr, dwBufLen);
-    lpCompStr[dwBufLen/sizeof(WCHAR)] = 0;
+    if (lBufLen)
+        ImmGetCompositionStringW(hIMC, GCS_COMPSTR, lpCompStr, lBufLen);
+    lpCompStr[lBufLen/sizeof(WCHAR)] = 0;
 
     if (CompFlag & GCS_COMPATTR)
     {
@@ -5427,21 +5427,21 @@ static void EDIT_GetCompositionStr(HWND hwnd, LPARAM CompFlag, EDITSTATE *es)
 
 static void EDIT_GetResultStr(HWND hwnd, EDITSTATE *es)
 {
-    DWORD dwBufLen;
+    LONG lBufLen;
     LPWSTR lpResultStr;
     HIMC    hIMC;
 
     if ( !(hIMC = ImmGetContext(hwnd)))
         return;
 
-    dwBufLen = ImmGetCompositionStringW(hIMC, GCS_RESULTSTR, NULL, 0);
-    if (dwBufLen <= 0)
+    lBufLen = ImmGetCompositionStringW(hIMC, GCS_RESULTSTR, NULL, 0);
+    if (lBufLen <= 0)
     {
         ImmReleaseContext(hwnd, hIMC);
         return;
     }
 
-    lpResultStr = HeapAlloc(GetProcessHeap(),0, dwBufLen+sizeof(WCHAR));
+    lpResultStr = HeapAlloc(GetProcessHeap(),0, lBufLen+sizeof(WCHAR));
     if (!lpResultStr)
     {
         ERR("Unable to alloc buffer for IME string\n");
@@ -5449,8 +5449,8 @@ static void EDIT_GetResultStr(HWND hwnd, EDITSTATE *es)
         return;
     }
 
-    ImmGetCompositionStringW(hIMC, GCS_RESULTSTR, lpResultStr, dwBufLen);
-    lpResultStr[dwBufLen/sizeof(WCHAR)] = 0;
+    ImmGetCompositionStringW(hIMC, GCS_RESULTSTR, lpResultStr, lBufLen);
+    lpResultStr[lBufLen/sizeof(WCHAR)] = 0;
 
     /* check for change in composition start */
     if (es->selection_end < es->composition_start)
-- 
1.5.2.4



More information about the wine-patches mailing list