windows/dialog.c: unicodification

Dimitrie O. Paun dpaun at rogers.com
Sat Oct 9 23:20:02 CDT 2004


ChangeLog
    Unicodify DIALOG_DlgDirSelect. Use SendMessageW whenever possible.


Index: windows/dialog.c
===================================================================
RCS file: /var/cvs/wine/windows/dialog.c,v
retrieving revision 1.135
diff -u -r1.135 dialog.c
--- windows/dialog.c	22 Sep 2004 19:37:13 -0000	1.135
+++ windows/dialog.c	10 Oct 2004 04:16:26 -0000
@@ -351,14 +351,14 @@
         }
 
             /* Send initialisation messages to the control */
-        if (dlgInfo->hUserFont) SendMessageA( hwndCtrl, WM_SETFONT,
+        if (dlgInfo->hUserFont) SendMessageW( hwndCtrl, WM_SETFONT,
                                              (WPARAM)dlgInfo->hUserFont, 0 );
-        if (SendMessageA(hwndCtrl, WM_GETDLGCODE, 0, 0) & DLGC_DEFPUSHBUTTON)
+        if (SendMessageW(hwndCtrl, WM_GETDLGCODE, 0, 0) & DLGC_DEFPUSHBUTTON)
         {
               /* If there's already a default push-button, set it back */
               /* to normal and use this one instead. */
             if (hwndDefButton)
-                SendMessageA( hwndDefButton, BM_SETSTYLE, BS_PUSHBUTTON, FALSE );
+                SendMessageW( hwndDefButton, BM_SETSTYLE, BS_PUSHBUTTON, FALSE );
             hwndDefButton = hwndCtrl;
             dlgInfo->idResult = GetWindowLongPtrA( hwndCtrl, GWLP_ID );
         }
@@ -651,7 +651,7 @@
     else SetWindowLongA( hwnd, DWL_DLGPROC, (LONG)dlgProc );
 
     if (dlgInfo->hUserFont)
-        SendMessageA( hwnd, WM_SETFONT, (WPARAM)dlgInfo->hUserFont, 0 );
+        SendMessageW( hwnd, WM_SETFONT, (WPARAM)dlgInfo->hUserFont, 0 );
 
     /* Create controls */
 
@@ -659,7 +659,7 @@
     {
         /* Send initialisation messages and set focus */
 
-        if (SendMessageA( hwnd, WM_INITDIALOG, (WPARAM)dlgInfo->hwndFocus, param ))
+        if (SendMessageW( hwnd, WM_INITDIALOG, (WPARAM)dlgInfo->hwndFocus, param ))
         {
             /* By returning TRUE, app has requested a default focus assignment */
             dlgInfo->hwndFocus = GetNextDlgTabItem( hwnd, 0, FALSE);
@@ -912,7 +912,7 @@
         DWORD style = GetWindowLongW( hwndControl, GWL_STYLE );
         if ((style & (WS_VISIBLE | WS_DISABLED)) == WS_VISIBLE)
         {
-            dlgCode = SendMessageA( hwndControl, WM_GETDLGCODE, 0, 0 );
+            dlgCode = SendMessageW( hwndControl, WM_GETDLGCODE, 0, 0 );
             if ( (dlgCode & (DLGC_BUTTON | DLGC_STATIC)) &&
                  GetWindowTextW( hwndControl, buffer, sizeof(buffer)/sizeof(WCHAR) ))
             {
@@ -931,14 +931,14 @@
                     if ((dlgCode & DLGC_STATIC) || (style & 0x0f) == BS_GROUPBOX )
                     {
                         /* set focus to the control */
-                        SendMessageA( hwndDlg, WM_NEXTDLGCTL, (WPARAM)hwndControl, 1);
+                        SendMessageW( hwndDlg, WM_NEXTDLGCTL, (WPARAM)hwndControl, 1);
                         /* and bump it on to next */
-                        SendMessageA( hwndDlg, WM_NEXTDLGCTL, 0, 0);
+                        SendMessageW( hwndDlg, WM_NEXTDLGCTL, 0, 0);
                     }
                     else if (dlgCode & DLGC_BUTTON)
                     {
                         /* send BM_CLICK message to the control */
-                        SendMessageA( hwndControl, BM_CLICK, 0, 0 );
+                        SendMessageW( hwndControl, BM_CLICK, 0, 0 );
                     }
                     return TRUE;
                 }
@@ -1356,7 +1356,7 @@
  */
 BOOL WINAPI CheckDlgButton( HWND hwnd, INT id, UINT check )
 {
-    SendDlgItemMessageA( hwnd, id, BM_SETCHECK, check, 0 );
+    SendDlgItemMessageW( hwnd, id, BM_SETCHECK, check, 0 );
     return TRUE;
 }
 
@@ -1366,7 +1366,7 @@
  */
 UINT WINAPI IsDlgButtonChecked( HWND hwnd, UINT id )
 {
-    return (UINT)SendDlgItemMessageA( hwnd, id, BM_GETCHECK, 0, 0 );
+    return (UINT)SendDlgItemMessageW( hwnd, id, BM_GETCHECK, 0, 0 );
 }
 
 
@@ -1654,25 +1654,26 @@
  *
  * Helper function for DlgDirSelect*
  */
-static BOOL DIALOG_DlgDirSelect( HWND hwnd, LPSTR str, INT len,
+static BOOL DIALOG_DlgDirSelect( HWND hwnd, LPWSTR str, INT len,
                                  INT id, BOOL unicode, BOOL combo )
 {
-    char *buffer, *ptr;
+    WCHAR *buffer, *ptr;
     INT item, size;
     BOOL ret;
     HWND listbox = GetDlgItem( hwnd, id );
 
-    TRACE("%p '%s' %d\n", hwnd, str, id );
+    TRACE("%p '%s' %d\n", hwnd, unicode ? debugstr_w(str) : debugstr_a((LPSTR)str), id );
     if (!listbox) return FALSE;
 
-    item = SendMessageA(listbox, combo ? CB_GETCURSEL : LB_GETCURSEL, 0, 0 );
+    item = SendMessageW(listbox, combo ? CB_GETCURSEL : LB_GETCURSEL, 0, 0 );
     if (item == LB_ERR) return FALSE;
-    size = SendMessageA(listbox, combo ? CB_GETLBTEXTLEN : LB_GETTEXTLEN, 0, 0 );
+
+    size = SendMessageW(listbox, combo ? CB_GETLBTEXTLEN : LB_GETTEXTLEN, 0, 0 );
     if (size == LB_ERR) return FALSE;
 
     if (!(buffer = HeapAlloc( GetProcessHeap(), 0, size+1 ))) return FALSE;
 
-    SendMessageA( listbox, combo ? CB_GETLBTEXT : LB_GETTEXT, item, (LPARAM)buffer );
+    SendMessageW( listbox, combo ? CB_GETLBTEXT : LB_GETTEXT, item, (LPARAM)buffer );
 
     if ((ret = (buffer[0] == '[')))  /* drive or directory */
     {
@@ -1684,20 +1685,20 @@
         }
         else
         {
-            buffer[strlen(buffer)-1] = '\\';
+            buffer[strlenW(buffer)-1] = '\\';
             ptr = buffer + 1;
         }
     }
     else ptr = buffer;
 
-    if (unicode)
+    if (!unicode)
     {
-        if (len > 0 && !MultiByteToWideChar( CP_ACP, 0, ptr, -1, (LPWSTR)str, len ))
-            ((LPWSTR)str)[len-1] = 0;
+        if (len > 0 && !WideCharToMultiByte( CP_ACP, 0, ptr, -1, (LPSTR)str, len, 0, 0 ))
+            ((LPSTR)str)[len-1] = 0;
     }
-    else lstrcpynA( str, ptr, len );
+    else lstrcpynW( str, ptr, len );
     HeapFree( GetProcessHeap(), 0, buffer );
-    TRACE("Returning %d '%s'\n", ret, str );
+    TRACE("Returning %d '%s'\n", ret, unicode ? debugstr_w(str) : debugstr_a((LPSTR)str) );
     return ret;
 }
 
@@ -1816,7 +1817,7 @@
  */
 BOOL WINAPI DlgDirSelectExA( HWND hwnd, LPSTR str, INT len, INT id )
 {
-    return DIALOG_DlgDirSelect( hwnd, str, len, id, FALSE, FALSE );
+    return DIALOG_DlgDirSelect( hwnd, (LPWSTR)str, len, id, FALSE, FALSE );
 }
 
 
@@ -1825,7 +1826,7 @@
  */
 BOOL WINAPI DlgDirSelectExW( HWND hwnd, LPWSTR str, INT len, INT id )
 {
-    return DIALOG_DlgDirSelect( hwnd, (LPSTR)str, len, id, TRUE, FALSE );
+    return DIALOG_DlgDirSelect( hwnd, str, len, id, TRUE, FALSE );
 }
 
 
@@ -1835,7 +1836,7 @@
 BOOL WINAPI DlgDirSelectComboBoxExA( HWND hwnd, LPSTR str, INT len,
                                          INT id )
 {
-    return DIALOG_DlgDirSelect( hwnd, str, len, id, FALSE, TRUE );
+    return DIALOG_DlgDirSelect( hwnd, (LPWSTR)str, len, id, FALSE, TRUE );
 }
 
 
@@ -1845,7 +1846,7 @@
 BOOL WINAPI DlgDirSelectComboBoxExW( HWND hwnd, LPWSTR str, INT len,
                                          INT id)
 {
-    return DIALOG_DlgDirSelect( hwnd, (LPSTR)str, len, id, TRUE, TRUE );
+    return DIALOG_DlgDirSelect( hwnd, str, len, id, TRUE, TRUE );
 }
 
 



More information about the wine-patches mailing list