tRemove do-nothing Unicode wrappers - vaccinewars - be a doctor and try to vaccinate the world
 (HTM) git clone git://src.adamsgaard.dk/vaccinewars
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 73a0da4f8a1d63dbb703e7523af9aae0b58319d7
 (DIR) parent f2e240bee60a4e6ae9f6e50630f6979d6f06740c
 (HTM) Author: Ben Webb <ben@salilab.org>
       Date:   Mon, 28 Dec 2020 22:53:06 -0800
       
       Remove do-nothing Unicode wrappers
       
       Now that we always have Unicode, some wrapper functions
       simply call the original Win32 API function. Remove these
       wrappers entirely and replace with the Win32 function.
       
       Diffstat:
         M src/gtkport/gtkport.c               |     127 ++++++++++++++++---------------
         M src/gtkport/treeview.c              |      36 ++++++++++++++++----------------
         M src/gtkport/unicodewrap.c           |      42 -------------------------------
         M src/gtkport/unicodewrap.h           |      10 ----------
       
       4 files changed, 82 insertions(+), 133 deletions(-)
       ---
 (DIR) diff --git a/src/gtkport/gtkport.c b/src/gtkport/gtkport.c
       t@@ -634,7 +634,7 @@ static WNDPROC wpOrigEntryProc, wpOrigTextProc;
        
        void gtk_set_default_font(HWND hWnd)
        {
       -  mySendMessage(hWnd, WM_SETFONT, (WPARAM)defFont, MAKELPARAM(FALSE, 0));
       +  SendMessageW(hWnd, WM_SETFONT, (WPARAM)defFont, MAKELPARAM(FALSE, 0));
        }
        
        GObject *GtkNewObject(GtkClass *klass)
       t@@ -779,7 +779,7 @@ LRESULT CALLBACK GtkPanedProc(HWND hwnd, UINT msg, WPARAM wParam,
          gint newpos;
          GtkPaned *paned;
        
       -  paned = GTK_PANED(myGetWindowLong(hwnd, GWLP_USERDATA));
       +  paned = GTK_PANED(GetWindowLongPtrW(hwnd, GWLP_USERDATA));
          switch (msg) {
          case WM_PAINT:
            if (GetUpdateRect(hwnd, NULL, TRUE)) {
       t@@ -847,7 +847,7 @@ LRESULT CALLBACK GtkPanedProc(HWND hwnd, UINT msg, WPARAM wParam,
            gtk_paned_set_position(paned, newpos);
            return TRUE;
          default:
       -    return myDefWindowProc(hwnd, msg, wParam, lParam);
       +    return DefWindowProcW(hwnd, msg, wParam, lParam);
          }
          return FALSE;
        }
       t@@ -868,7 +868,7 @@ LRESULT CALLBACK GtkUrlProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
            HDC hDC;
            HFONT oldFont;
        
       -    widget = GTK_WIDGET(myGetWindowLong(hwnd, GWLP_USERDATA));
       +    widget = GTK_WIDGET(GetWindowLongPtrW(hwnd, GWLP_USERDATA));
            text = GTK_LABEL(widget)->text;
            if (text && BeginPaint(hwnd, &ps)) {
              hDC = ps.hdc;
       t@@ -883,12 +883,12 @@ LRESULT CALLBACK GtkUrlProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
            }
            return TRUE;
          } else if (msg == WM_LBUTTONUP) {
       -    widget = GTK_WIDGET(myGetWindowLong(hwnd, GWLP_USERDATA));
       +    widget = GTK_WIDGET(GetWindowLongPtrW(hwnd, GWLP_USERDATA));
        
            DisplayHTML(widget, NULL, GTK_URL(widget)->target);
            return FALSE;
          } else
       -    return myDefWindowProc(hwnd, msg, wParam, lParam);
       +    return DefWindowProcW(hwnd, msg, wParam, lParam);
        }
        
        LRESULT CALLBACK GtkSepProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
       t@@ -933,7 +933,7 @@ LRESULT CALLBACK GtkSepProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
            }
            return TRUE;
          } else
       -    return myDefWindowProc(hwnd, msg, wParam, lParam);
       +    return DefWindowProcW(hwnd, msg, wParam, lParam);
        }
        
        gboolean gtk_window_wndproc(GtkWidget *widget, UINT msg, WPARAM wParam,
       t@@ -1012,10 +1012,10 @@ static BOOL HandleWinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam,
          *dodef = TRUE;
        
          if (customWndProc
       -      && myCallWindowProc(customWndProc, hwnd, msg, wParam, lParam))
       +      && CallWindowProcW(customWndProc, hwnd, msg, wParam, lParam))
            return TRUE;
        
       -  widget = GTK_WIDGET(myGetWindowLong(hwnd, GWLP_USERDATA));
       +  widget = GTK_WIDGET(GetWindowLongPtrW(hwnd, GWLP_USERDATA));
          if (widget && (klass = G_OBJECT(widget)->klass)
              && klass->wndproc) {
            retval = klass->wndproc(widget, msg, wParam, lParam, dodef);
       t@@ -1024,7 +1024,8 @@ static BOOL HandleWinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam,
          switch (msg) {
          case WM_DRAWITEM:
            if ((lpdis = (LPDRAWITEMSTRUCT)lParam)
       -        && (widget = GTK_WIDGET(myGetWindowLong(lpdis->hwndItem, GWLP_USERDATA)))
       +        && (widget = GTK_WIDGET(GetWindowLongPtrW(lpdis->hwndItem,
       +                                                  GWLP_USERDATA)))
                && (klass = G_OBJECT(widget)->klass)
                && klass->wndproc) {
              retval = klass->wndproc(widget, msg, wParam, lParam, dodef);
       t@@ -1042,7 +1043,7 @@ static BOOL HandleWinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam,
            }
            break;
          case WM_COMMAND:
       -    widget = GTK_WIDGET(myGetWindowLong((HWND)lParam, GWLP_USERDATA));
       +    widget = GTK_WIDGET(GetWindowLongPtrW((HWND)lParam, GWLP_USERDATA));
            klass = NULL;
            if (widget && (klass = G_OBJECT(widget)->klass)
                && klass->wndproc) {
       t@@ -1062,7 +1063,7 @@ static BOOL HandleWinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam,
            if (!nmhdr)
              break;
        
       -    widget = GTK_WIDGET(myGetWindowLong(nmhdr->hwndFrom, GWLP_USERDATA));
       +    widget = GTK_WIDGET(GetWindowLongPtrW(nmhdr->hwndFrom, GWLP_USERDATA));
            if (widget && (klass = G_OBJECT(widget)->klass)
                && klass->wndproc) {
              retval = klass->wndproc(widget, msg, wParam, lParam, dodef);
       t@@ -1097,7 +1098,7 @@ LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
        
          retval = HandleWinMessage(hwnd, msg, wParam, lParam, &dodef);
          if (dodef) {
       -    return myDefWindowProc(hwnd, msg, wParam, lParam);
       +    return DefWindowProcW(hwnd, msg, wParam, lParam);
          } else {
            return retval;
          }
       t@@ -1120,12 +1121,12 @@ LRESULT APIENTRY EntryWndProc(HWND hwnd, UINT msg, WPARAM wParam,
          GtkWidget *widget;
        
          if (msg == WM_KEYUP && wParam == VK_RETURN) {
       -    widget = GTK_WIDGET(myGetWindowLong(hwnd, GWLP_USERDATA));
       +    widget = GTK_WIDGET(GetWindowLongPtrW(hwnd, GWLP_USERDATA));
            if (widget)
              gtk_signal_emit(G_OBJECT(widget), "activate");
            return FALSE;
          }
       -  return myCallWindowProc(wpOrigEntryProc, hwnd, msg, wParam, lParam);
       +  return CallWindowProcW(wpOrigEntryProc, hwnd, msg, wParam, lParam);
        }
        
        LRESULT APIENTRY TextWndProc(HWND hwnd, UINT msg, WPARAM wParam,
       t@@ -1134,12 +1135,12 @@ LRESULT APIENTRY TextWndProc(HWND hwnd, UINT msg, WPARAM wParam,
          GtkWidget *widget;
        
          if (msg == WM_GETDLGCODE) {
       -    widget = GTK_WIDGET(myGetWindowLong(hwnd, GWLP_USERDATA));
       +    widget = GTK_WIDGET(GetWindowLongPtrW(hwnd, GWLP_USERDATA));
            if (!GTK_EDITABLE(widget)->is_editable) {
              return DLGC_HASSETSEL | DLGC_WANTARROWS;
            }
          }
       -  return myCallWindowProc(wpOrigTextProc, hwnd, msg, wParam, lParam);
       +  return CallWindowProcW(wpOrigTextProc, hwnd, msg, wParam, lParam);
        }
        
        void SetCustomWndProc(WNDPROC wndproc)
       t@@ -1416,7 +1417,7 @@ static BOOL CALLBACK SetFocusEnum(HWND hWnd, LPARAM data)
          GtkWidget *widget;
          GtkWindow *window = GTK_WINDOW(data);
        
       -  widget = GTK_WIDGET(myGetWindowLong(hWnd, GWLP_USERDATA));
       +  widget = GTK_WIDGET(GetWindowLongPtrW(hWnd, GWLP_USERDATA));
          if (!widget || !GTK_WIDGET_CAN_FOCUS(widget) ||
              !GTK_WIDGET_SENSITIVE(widget) || !gtk_widget_get_visible(widget) ||
              window->focus == widget) {
       t@@ -1459,7 +1460,7 @@ void gtk_window_update_focus(GtkWindow *window)
          FocusWnd = GetFocus();
          window->focus = NULL;
          if (FocusWnd) {
       -    widget = GTK_WIDGET(myGetWindowLong(FocusWnd, GWLP_USERDATA));
       +    widget = GTK_WIDGET(GetWindowLongPtrW(FocusWnd, GWLP_USERDATA));
            if (widget && GTK_WIDGET(window)->hWnd &&
                IsChild(GTK_WIDGET(window)->hWnd, FocusWnd)) {
              window->focus = widget;
       t@@ -1475,7 +1476,7 @@ void gtk_widget_realize(GtkWidget *widget)
            return;
          gtk_signal_emit(G_OBJECT(widget), "realize", &req);
          if (widget->hWnd)
       -    mySetWindowLong(widget->hWnd, GWLP_USERDATA, (LONG_PTR)widget);
       +    SetWindowLongPtrW(widget->hWnd, GWLP_USERDATA, (LONG_PTR)widget);
          GTK_WIDGET_SET_FLAGS(widget, GTK_REALIZED);
          gtk_widget_set_sensitive(widget, GTK_WIDGET_SENSITIVE(widget));
        
       t@@ -2011,7 +2012,7 @@ void gtk_editable_insert_text(GtkEditable *editable, const gchar *new_text,
        
          hWnd = widget->hWnd;
          if (hWnd) {
       -    mySendMessage(hWnd, EM_SETSEL, (WPARAM)*position, (LPARAM)*position);
       +    SendMessageW(hWnd, EM_SETSEL, (WPARAM)*position, (LPARAM)*position);
            myEditReplaceSel(hWnd, FALSE, newstr->str);
            *position += newstr->len;
            gtk_editable_set_position(editable, *position);
       t@@ -2035,12 +2036,12 @@ static void gtk_text_view_set_format(GtkTextView *textview,
          /* RichEdit controls do something odd behind the scenes with line ends,
           * so we use our guess for the last character position, and then read
           * back the resultant selection to get the true "length" of the control */
       -  mySendMessage(widget->hWnd, EM_SETSEL, (WPARAM)endpos, (LPARAM)endpos);
       -  mySendMessage(widget->hWnd, EM_GETSEL, (WPARAM)&st, (LPARAM)&end);
       +  SendMessageW(widget->hWnd, EM_SETSEL, (WPARAM)endpos, (LPARAM)endpos);
       +  SendMessageW(widget->hWnd, EM_GETSEL, (WPARAM)&st, (LPARAM)&end);
          endpos = (gint)end;
        
       -  mySendMessage(widget->hWnd, EM_SETSEL, (WPARAM)(endpos - len),
       -                (LPARAM)endpos);
       +  SendMessageW(widget->hWnd, EM_SETSEL, (WPARAM)(endpos - len),
       +               (LPARAM)endpos);
        
          if (!tagname || !(buffer = gtk_text_view_get_buffer(textview))
              || !(cf = g_datalist_get_data(&buffer->tags, tagname))) {
       t@@ -2049,7 +2050,7 @@ static void gtk_text_view_set_format(GtkTextView *textview,
            cfdef.dwEffects = CFE_AUTOCOLOR;
            cf = &cfdef;
          }
       -  mySendMessage(widget->hWnd, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)cf);
       +  SendMessageW(widget->hWnd, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)cf);
        }
        
        void gtk_editable_delete_text(GtkEditable *editable,
       t@@ -2094,7 +2095,7 @@ void gtk_editable_set_editable(GtkEditable *editable, gboolean is_editable)
          editable->is_editable = is_editable;
          hWnd = widget->hWnd;
          if (hWnd)
       -    mySendMessage(hWnd, EM_SETREADONLY, (WPARAM)(!is_editable), (LPARAM)0);
       +    SendMessageW(hWnd, EM_SETREADONLY, (WPARAM)(!is_editable), (LPARAM)0);
        }
        
        void gtk_editable_set_position(GtkEditable *editable, gint position)
       t@@ -2108,10 +2109,10 @@ void gtk_editable_set_position(GtkEditable *editable, gint position)
        
          /* RichEdit 2.0 doesn't appear to show the caret unless we show the
           * selection */
       -  mySendMessage(hWnd, EM_HIDESELECTION, 0, 0);
       -  mySendMessage(hWnd, EM_SETSEL, (WPARAM)position, (LPARAM)position);
       -  mySendMessage(hWnd, EM_SCROLLCARET, 0, 0);
       -  mySendMessage(hWnd, EM_HIDESELECTION, 1, 0);
       +  SendMessageW(hWnd, EM_HIDESELECTION, 0, 0);
       +  SendMessageW(hWnd, EM_SETSEL, (WPARAM)position, (LPARAM)position);
       +  SendMessageW(hWnd, EM_SCROLLCARET, 0, 0);
       +  SendMessageW(hWnd, EM_HIDESELECTION, 1, 0);
        }
        
        gint gtk_editable_get_position(GtkEditable *editable)
       t@@ -2123,7 +2124,7 @@ gint gtk_editable_get_position(GtkEditable *editable)
          if (!GTK_WIDGET_REALIZED(widget))
            return 0;
          hWnd = widget->hWnd;
       -  mySendMessage(hWnd, EM_GETSEL, (WPARAM)NULL, (LPARAM)&EndPos);
       +  SendMessageW(hWnd, EM_GETSEL, (WPARAM)NULL, (LPARAM)&EndPos);
          return (gint)EndPos;
        }
        
       t@@ -2542,9 +2543,9 @@ void gtk_entry_realize(GtkWidget *widget)
                                          hInst, NULL);
          /* Subclass the window (we assume that all edit boxes have the same
           * window procedure) */
       -  wpOrigEntryProc = (WNDPROC)mySetWindowLong(widget->hWnd,
       -                                             GWLP_WNDPROC,
       -                                             (LONG_PTR)EntryWndProc);
       +  wpOrigEntryProc = (WNDPROC)SetWindowLongPtrW(widget->hWnd,
       +                                               GWLP_WNDPROC,
       +                                               (LONG_PTR)EntryWndProc);
          gtk_set_default_font(widget->hWnd);
          gtk_editable_set_editable(GTK_EDITABLE(widget),
                                    GTK_EDITABLE(widget)->is_editable);
       t@@ -2570,9 +2571,9 @@ void gtk_text_realize(GtkWidget *widget)
                                          0, Parent, NULL, hInst, NULL);
          /* Subclass the window (we assume that all multiline edit boxes have the 
           * same window procedure) */
       -  wpOrigTextProc = (WNDPROC)mySetWindowLong(widget->hWnd,
       -                                            GWLP_WNDPROC,
       -                                            (LONG_PTR)TextWndProc);
       +  wpOrigTextProc = (WNDPROC)SetWindowLongPtrW(widget->hWnd,
       +                                              GWLP_WNDPROC,
       +                                              (LONG_PTR)TextWndProc);
          gtk_set_default_font(widget->hWnd);
          gtk_editable_set_editable(GTK_EDITABLE(widget),
                                    GTK_EDITABLE(widget)->is_editable);
       t@@ -3266,8 +3267,8 @@ void gtk_check_button_toggled(GtkCheckButton *check_button, gpointer data)
        
          hWnd = GTK_WIDGET(check_button)->hWnd;
          if (hWnd) {
       -    mySendMessage(hWnd, BM_SETCHECK,
       -                  is_active ? BST_CHECKED : BST_UNCHECKED, 0);
       +    SendMessageW(hWnd, BM_SETCHECK,
       +                 is_active ? BST_CHECKED : BST_UNCHECKED, 0);
          }
        }
        
       t@@ -3290,8 +3291,8 @@ void gtk_radio_button_toggled(GtkRadioButton *radio_button, gpointer data)
        
          hWnd = GTK_WIDGET(radio_button)->hWnd;
          if (hWnd) {
       -    mySendMessage(hWnd, BM_SETCHECK,
       -                  is_active ? BST_CHECKED : BST_UNCHECKED, 0);
       +    SendMessageW(hWnd, BM_SETCHECK,
       +                 is_active ? BST_CHECKED : BST_UNCHECKED, 0);
          }
          if (is_active) {
            for (group = radio_button->group; group; group = g_slist_next(group)) {
       t@@ -3300,7 +3301,7 @@ void gtk_radio_button_toggled(GtkRadioButton *radio_button, gpointer data)
                GTK_TOGGLE_BUTTON(radio)->toggled = FALSE;
                hWnd = GTK_WIDGET(radio)->hWnd;
                if (hWnd)
       -          mySendMessage(hWnd, BM_SETCHECK, BST_UNCHECKED, 0);
       +          SendMessageW(hWnd, BM_SETCHECK, BST_UNCHECKED, 0);
              }
            }
          }
       t@@ -3335,9 +3336,9 @@ void gtk_main()
        
          RecurseLevel++;
        
       -  while (myGetMessage(&msg, NULL, 0, 0)) {
       +  while (GetMessageW(&msg, NULL, 0, 0)) {
            MsgDone = FALSE;
       -    widget = GTK_WIDGET(myGetWindowLong(msg.hwnd, GWLP_USERDATA));
       +    widget = GTK_WIDGET(GetWindowLongPtrW(msg.hwnd, GWLP_USERDATA));
            window = gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW);
            if (window) {
              hAccel = GTK_WINDOW(window)->hAccel;
       t@@ -3349,12 +3350,12 @@ void gtk_main()
              for (list = WindowList; list && !MsgDone; list = g_slist_next(list)) {
                widget = GTK_WIDGET(list->data);
                if (widget && widget->hWnd
       -            && (MsgDone = myIsDialogMessage(widget->hWnd, &msg)) == TRUE)
       +            && (MsgDone = IsDialogMessageW(widget->hWnd, &msg)) == TRUE)
                  break;
              }
            if (!MsgDone) {
              TranslateMessage(&msg);
       -      myDispatchMessage(&msg);
       +      DispatchMessageW(&msg);
            }
          }
          RecurseLevel--;
       t@@ -4167,7 +4168,7 @@ gint gtk_spin_button_get_value_as_int(GtkSpinButton *spin_button)
        
          hWnd = spin_button->updown;
          if (hWnd) {
       -    lres = mySendMessage(hWnd, UDM_GETPOS, 0, 0);
       +    lres = SendMessageW(hWnd, UDM_GETPOS, 0, 0);
            if (HIWORD(lres) != 0)
              return 0;
            else
       t@@ -4183,7 +4184,7 @@ void gtk_spin_button_set_value(GtkSpinButton *spin_button, gfloat value)
          spin_button->adj->value = value;
          hWnd = spin_button->updown;
          if (hWnd)
       -    mySendMessage(hWnd, UDM_SETPOS, 0, (LPARAM)MAKELONG((short)value, 0));
       +    SendMessageW(hWnd, UDM_SETPOS, 0, (LPARAM)MAKELONG((short)value, 0));
        }
        
        void gtk_spin_button_set_adjustment(GtkSpinButton *spin_button,
       t@@ -4194,11 +4195,11 @@ void gtk_spin_button_set_adjustment(GtkSpinButton *spin_button,
          spin_button->adj = adjustment;
          hWnd = spin_button->updown;
          if (hWnd) {
       -    mySendMessage(hWnd, UDM_SETRANGE, 0,
       -                  (LPARAM)MAKELONG((short)adjustment->upper,
       -                                   (short)adjustment->lower));
       -    mySendMessage(hWnd, UDM_SETPOS, 0,
       -                  (LPARAM)MAKELONG((short)adjustment->value, 0));
       +    SendMessageW(hWnd, UDM_SETRANGE, 0,
       +                 (LPARAM)MAKELONG((short)adjustment->upper,
       +                                  (short)adjustment->lower));
       +    SendMessageW(hWnd, UDM_SETPOS, 0,
       +                 (LPARAM)MAKELONG((short)adjustment->value, 0));
          }
        }
        
       t@@ -4351,7 +4352,7 @@ void gtk_entry_set_visibility(GtkEntry *entry, gboolean visible)
          entry->is_visible = visible;
          hWnd = GTK_WIDGET(entry)->hWnd;
          if (hWnd)
       -    mySendMessage(hWnd, EM_SETPASSWORDCHAR, visible ? 0 : (WPARAM)'*', 0);
       +    SendMessageW(hWnd, EM_SETPASSWORDCHAR, visible ? 0 : (WPARAM)'*', 0);
        }
        
        guint SetAccelerator(GtkWidget *labelparent, gchar *Text,
       t@@ -4723,7 +4724,7 @@ void gtk_combo_box_set_model(GtkComboBox *combo_box, GtkTreeModel *model)
        
          /* For now we work only with a single column of string type */
          if (hWnd) {
       -    mySendMessage(hWnd, CB_RESETCONTENT, 0, 0);
       +    SendMessageW(hWnd, CB_RESETCONTENT, 0, 0);
          }
          if (hWnd && combo_box->model_column >= 0) {
            int nrow;
       t@@ -4734,7 +4735,7 @@ void gtk_combo_box_set_model(GtkComboBox *combo_box, GtkTreeModel *model)
                                                    GtkListStoreRow, nrow);
              myComboBox_AddString(hWnd, row->data[col]);
            }
       -    mySendMessage(hWnd, CB_SETCURSEL, (WPARAM)combo_box->active, 0);
       +    SendMessageW(hWnd, CB_SETCURSEL, (WPARAM)combo_box->active, 0);
          }
        }
        
       t@@ -4880,7 +4881,7 @@ void gtk_combo_box_update_selection(GtkWidget *widget)
        
          if (widget->hWnd == NULL)
            return;
       -  lres = mySendMessage(widget->hWnd, CB_GETCURSEL, 0, 0);
       +  lres = SendMessageW(widget->hWnd, CB_GETCURSEL, 0, 0);
          if (lres == CB_ERR)
            return;
        
       t@@ -4985,8 +4986,8 @@ void gtk_progress_bar_set_fraction(GtkProgressBar *pbar, gfloat percentage)
          widget = GTK_WIDGET(pbar);
          pbar->position = percentage;
          if (GTK_WIDGET_REALIZED(widget)) {
       -    mySendMessage(widget->hWnd, PBM_SETPOS,
       -                  (WPARAM)(10000.0 * pbar->position), 0);
       +    SendMessageW(widget->hWnd, PBM_SETPOS,
       +                 (WPARAM)(10000.0 * pbar->position), 0);
          }
        }
        
       t@@ -5015,9 +5016,9 @@ void gtk_progress_bar_realize(GtkWidget *widget)
                                          widget->allocation.height, Parent, NULL,
                                          hInst, NULL);
          gtk_set_default_font(widget->hWnd);
       -  mySendMessage(widget->hWnd, PBM_SETRANGE, 0, MAKELPARAM(0, 10000));
       -  mySendMessage(widget->hWnd, PBM_SETPOS, (WPARAM)(10000.0 * prog->position),
       -                0);
       +  SendMessageW(widget->hWnd, PBM_SETRANGE, 0, MAKELPARAM(0, 10000));
       +  SendMessageW(widget->hWnd, PBM_SETPOS, (WPARAM)(10000.0 * prog->position),
       +               0);
        }
        
        gint GtkMessageBox(GtkWidget *parent, const gchar *Text,
 (DIR) diff --git a/src/gtkport/treeview.c b/src/gtkport/treeview.c
       t@@ -95,7 +95,7 @@ static void SetTreeViewHeaderSize(GtkTreeView *clist)
          clist->scrollpos = GetScrollPos(hWnd, SB_HORZ);
        
          GetWindowRect(hWnd, &rc);
       -  width = (int)mySendMessage(hWnd, LB_GETHORIZONTALEXTENT, 0, 0);
       +  width = (int)SendMessageW(hWnd, LB_GETHORIZONTALEXTENT, 0, 0);
          width = MAX(width, rc.right - rc.left) + 100;
        
          SetWindowPos(clist->header, HWND_TOP, -clist->scrollpos, 0,
       t@@ -109,7 +109,7 @@ static LRESULT APIENTRY ListWndProc(HWND hwnd, UINT msg, WPARAM wParam,
          GtkWidget *widget;
        
          widget = GTK_WIDGET(GetWindowLongPtr(hwnd, GWLP_USERDATA));
       -  retval = myCallWindowProc(wpOrigListProc, hwnd, msg, wParam, lParam);
       +  retval = CallWindowProcW(wpOrigListProc, hwnd, msg, wParam, lParam);
        
          if (msg == WM_HSCROLL && widget) {
            GtkTreeView *clist = GTK_TREE_VIEW(widget);
       t@@ -187,7 +187,7 @@ static void gtk_tree_view_set_extent(GtkTreeView *tv)
              GtkTreeViewColumn *col = colpt->data;
              width += col->width;
            }
       -    mySendMessage(hWnd, LB_SETHORIZONTALEXTENT, (WPARAM)width, 0);
       +    SendMessageW(hWnd, LB_SETHORIZONTALEXTENT, (WPARAM)width, 0);
            SetTreeViewHeaderSize(tv);
          }
        }
       t@@ -269,7 +269,7 @@ void gtk_tree_view_realize(GtkWidget *widget)
          gtk_set_default_font(header);
          hdl.prc = &rcParent;
          hdl.pwpos = &wp;
       -  mySendMessage(header, HDM_LAYOUT, 0, (LPARAM)&hdl);
       +  SendMessageW(header, HDM_LAYOUT, 0, (LPARAM)&hdl);
          tv->header_size = wp.cy;
          widget->hWnd = myCreateWindowEx(WS_EX_CLIENTEDGE, "LISTBOX", "",
                                          WS_CHILD | WS_TABSTOP | WS_VSCROLL
       t@@ -277,13 +277,13 @@ void gtk_tree_view_realize(GtkWidget *widget)
                                          | LBS_NOTIFY, 0, 0, 0, 0, Parent, NULL,
                                          hInst, NULL);
          /* Subclass the window */
       -  wpOrigListProc = (WNDPROC)mySetWindowLong(widget->hWnd, GWLP_WNDPROC,
       -                                            (LONG_PTR)ListWndProc);
       +  wpOrigListProc = (WNDPROC)SetWindowLongPtrW(widget->hWnd, GWLP_WNDPROC,
       +                                              (LONG_PTR)ListWndProc);
          gtk_set_default_font(widget->hWnd);
        
          if (tv->model) {
            for (i = 0; i < tv->model->rows->len; ++i) {
       -      mySendMessage(widget->hWnd, LB_ADDSTRING, 0, 1);
       +      SendMessageW(widget->hWnd, LB_ADDSTRING, 0, 1);
            }
          }
          gtk_tree_view_update_all_widths(tv);
       t@@ -332,7 +332,7 @@ void gtk_list_store_clear(GtkListStore *list_store)
            gtk_tree_view_update_all_widths(list_store->view);
            hWnd = GTK_WIDGET(list_store->view)->hWnd;
            if (hWnd) {
       -      mySendMessage(hWnd, LB_RESETCONTENT, 0, 0);
       +      SendMessageW(hWnd, LB_RESETCONTENT, 0, 0);
            }
          }
        }
       t@@ -398,7 +398,7 @@ void gtk_list_store_set(GtkListStore *list_store, GtkTreeIter *iter, ...)
            if (GTK_WIDGET_REALIZED(widget)) {
              HWND hWnd = widget->hWnd;
              if (new_row) {
       -        mySendMessage(hWnd, LB_INSERTSTRING, (WPARAM)*iter, 1);
       +        SendMessageW(hWnd, LB_INSERTSTRING, (WPARAM)*iter, 1);
              } else {
                InvalidateRect(hWnd, NULL, FALSE);
              }
       t@@ -734,7 +734,7 @@ gboolean gtk_list_store_remove(GtkListStore *list_store, GtkTreeIter *iter)
            if (list_store->view && GTK_WIDGET_REALIZED(GTK_WIDGET(list_store->view))) {
              HWND hWnd = GTK_WIDGET(list_store->view)->hWnd;
        
       -      mySendMessage(hWnd, LB_DELETESTRING, (WPARAM)rowind, 0);
       +      SendMessageW(hWnd, LB_DELETESTRING, (WPARAM)rowind, 0);
            }
            return TRUE;
          } else {
       t@@ -777,11 +777,11 @@ void gtk_tree_view_set_column_width_full(GtkTreeView *tv, gint column,
              if (column == ncols - 1)
                width = 9000;
              hdi.cxy = width;
       -      if (mySendMessage(header, HDM_GETITEM, (WPARAM)column, (LPARAM)&hdi)
       +      if (SendMessageW(header, HDM_GETITEM, (WPARAM)column, (LPARAM)&hdi)
                  && hdi.cxy != width) {
                hdi.mask = HDI_WIDTH;
                hdi.cxy = width;
       -        mySendMessage(header, HDM_SETITEM, (WPARAM)column, (LPARAM)&hdi);
       +        SendMessageW(header, HDM_SETITEM, (WPARAM)column, (LPARAM)&hdi);
              }
            }
            gtk_tree_view_set_extent(tv);
       t@@ -806,9 +806,9 @@ void gtk_tree_selection_select_path(GtkTreeSelection *selection,
          hWnd = GTK_WIDGET(selection)->hWnd;
          if (hWnd) {
            if (selection->mode == GTK_SELECTION_SINGLE) {
       -      mySendMessage(hWnd, LB_SETCURSEL, (WPARAM)row, 0);
       +      SendMessageW(hWnd, LB_SETCURSEL, (WPARAM)row, 0);
            } else {
       -      mySendMessage(hWnd, LB_SETSEL, (WPARAM)TRUE, (LPARAM)row);
       +      SendMessageW(hWnd, LB_SETSEL, (WPARAM)TRUE, (LPARAM)row);
            }
            gtk_tree_view_update_selection(GTK_WIDGET(selection));
          }
       t@@ -855,9 +855,9 @@ void gtk_tree_selection_unselect_path(GtkTreeSelection *selection,
          hWnd = GTK_WIDGET(selection)->hWnd;
          if (hWnd) {
            if (selection->mode == GTK_SELECTION_SINGLE) {
       -      mySendMessage(hWnd, LB_SETCURSEL, (WPARAM)(-1), 0);
       +      SendMessageW(hWnd, LB_SETCURSEL, (WPARAM)(-1), 0);
            } else {
       -      mySendMessage(hWnd, LB_SETSEL, (WPARAM)FALSE, (LPARAM)row);
       +      SendMessageW(hWnd, LB_SETSEL, (WPARAM)FALSE, (LPARAM)row);
            }
            gtk_tree_view_update_selection(GTK_WIDGET(selection));
          }
       t@@ -908,7 +908,7 @@ void gtk_tree_view_update_selection(GtkWidget *widget)
          tv->selection = NULL;
          if (widget->hWnd) {
            if (tv->model) for (i = 0; i < tv->model->rows->len; i++) {
       -      if (mySendMessage(widget->hWnd, LB_GETSEL, (WPARAM)i, 0) > 0) {
       +      if (SendMessageW(widget->hWnd, LB_GETSEL, (WPARAM)i, 0) > 0) {
                tv->selection = g_list_append(tv->selection, GINT_TO_POINTER(i));
              }
            }
       t@@ -930,7 +930,7 @@ static LRESULT CALLBACK TreeViewHdrWndProc(HWND hwnd, UINT msg, WPARAM wParam,
          }
        
          if (dodef) {
       -    return myDefWindowProc(hwnd, msg, wParam, lParam);
       +    return DefWindowProcW(hwnd, msg, wParam, lParam);
          } else {
            return retval;
          }
 (DIR) diff --git a/src/gtkport/unicodewrap.c b/src/gtkport/unicodewrap.c
       t@@ -274,11 +274,6 @@ HWND myCreateDialog(HINSTANCE hInstance, LPCTSTR lpTemplate, HWND hWndParent,
          return retval;
        }
        
       -LRESULT mySendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
       -{
       -  return SendMessageW(hWnd, Msg, wParam, lParam);
       -}
       -
        void myEditReplaceSel(HWND hWnd, BOOL fCanUndo, LPCSTR lParam)
        {
          gunichar2 *text;
       t@@ -287,27 +282,6 @@ void myEditReplaceSel(HWND hWnd, BOOL fCanUndo, LPCSTR lParam)
          g_free(text);
        }
        
       -LONG_PTR mySetWindowLong(HWND hWnd, int nIndex, LONG_PTR dwNewLong)
       -{
       -  return SetWindowLongPtrW(hWnd, nIndex, dwNewLong);
       -}
       -
       -LONG_PTR myGetWindowLong(HWND hWnd, int nIndex)
       -{
       -  return GetWindowLongPtrW(hWnd, nIndex);
       -}
       -
       -LRESULT myCallWindowProc(WNDPROC lpPrevWndProc, HWND hWnd, UINT Msg,
       -                         WPARAM wParam, LPARAM lParam)
       -{
       -  return CallWindowProcW(lpPrevWndProc, hWnd, Msg, wParam, lParam);
       -}
       -
       -LRESULT myDefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
       -{
       -  return DefWindowProcW(hWnd, Msg, wParam, lParam);
       -}
       -
        int myMessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType)
        {
          int retval;
       t@@ -320,22 +294,6 @@ int myMessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType)
          return retval;
        }
        
       -BOOL myGetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin,
       -                  UINT wMsgFilterMax)
       -{
       -  return GetMessageW(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);
       -}
       -
       -LONG myDispatchMessage(CONST MSG *lpmsg)
       -{
       -  return DispatchMessageW(lpmsg);
       -}
       -
       -BOOL myIsDialogMessage(HWND hDlg, LPMSG lpMsg)
       -{
       -  return IsDialogMessageW(hDlg, lpMsg);
       -}
       -
        size_t myw32strlen(const char *str)
        {
          return g_utf8_strlen(str, -1);
 (DIR) diff --git a/src/gtkport/unicodewrap.h b/src/gtkport/unicodewrap.h
       t@@ -52,18 +52,8 @@ int myTabCtrl_InsertItem(HWND hWnd, int index, const TC_ITEM *pitem);
        ATOM myRegisterClass(CONST WNDCLASS *lpWndClass);
        HWND myCreateDialog(HINSTANCE hInstance, LPCTSTR lpTemplate, HWND hWndParent,
                            DLGPROC lpDialogFunc);
       -LRESULT mySendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
        void myEditReplaceSel(HWND hWnd, BOOL fCanUndo, LPCSTR lParam);
       -LONG_PTR mySetWindowLong(HWND hWnd, int nIndex, LONG_PTR dwNewLong);
       -LONG_PTR myGetWindowLong(HWND hWnd, int nIndex);
       -LRESULT myCallWindowProc(WNDPROC lpPrevWndProc, HWND hWnd, UINT Msg,
       -                         WPARAM wParam, LPARAM lParam);
       -LRESULT myDefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
        int myMessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);
       -BOOL myGetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin,
       -                  UINT wMsgFilterMax);
       -LONG myDispatchMessage(CONST MSG *lpmsg);
       -BOOL myIsDialogMessage(HWND hDlg, LPMSG lpMsg);
        size_t myw32strlen(const char *str);
        LRESULT myComboBox_AddString(HWND hWnd, LPCTSTR text);
        gchar *w32tostr(const gunichar2 *instr, int len);