From 1e5eefb6f2677a50fdb158e25e59f075ec034d23 Mon Sep 17 00:00:00 2001 From: jacob Date: Sat, 21 May 2005 14:16:43 +0000 Subject: [PATCH] Use {Get,Set}WindowLongPtr() instead of {Get,Set}WindowLong() for compatibility with 64-bit Windows. Untested on 64-bit, but it doesn't appear to have broken anything on 32-bit. git-svn-id: svn://svn.tartarus.org/sgt/putty@5819 cda61777-01e9-0310-a592-d414129be87e --- windows/winctrls.c | 6 +++--- windows/windlg.c | 25 +++++++++++++------------ windows/window.c | 18 +++++++++--------- windows/winpgen.c | 25 +++++++++++++------------ windows/winpgnt.c | 5 +++-- windows/winstuff.h | 2 +- 6 files changed, 42 insertions(+), 39 deletions(-) diff --git a/windows/winctrls.c b/windows/winctrls.c index c2d344a1..9ef09b7d 100644 --- a/windows/winctrls.c +++ b/windows/winctrls.c @@ -1050,7 +1050,7 @@ int handle_prefslist(struct prefslist *hdl, hdl->srcitem = LBItemFromPt(dlm->hWnd, dlm->ptCursor, TRUE); hdl->dragging = 0; /* XXX hack Q183115 */ - SetWindowLong(hwnd, DWL_MSGRESULT, TRUE); + SetWindowLongPtr(hwnd, DWLP_MSGRESULT, TRUE); ret |= 1; break; case DL_CANCELDRAG: DrawInsert(hwnd, dlm->hWnd, -1); /* Clear arrow */ @@ -1064,9 +1064,9 @@ int handle_prefslist(struct prefslist *hdl, if (dest > hdl->dummyitem) dest = hdl->dummyitem; DrawInsert (hwnd, dlm->hWnd, dest); if (dest >= 0) - SetWindowLong(hwnd, DWL_MSGRESULT, DL_MOVECURSOR); + SetWindowLongPtr(hwnd, DWLP_MSGRESULT, DL_MOVECURSOR); else - SetWindowLong(hwnd, DWL_MSGRESULT, DL_STOPCURSOR); + SetWindowLongPtr(hwnd, DWLP_MSGRESULT, DL_STOPCURSOR); ret |= 1; break; case DL_DROPPED: if (hdl->dragging) { diff --git a/windows/windlg.c b/windows/windlg.c index 91bf7565..019f6155 100644 --- a/windows/windlg.c +++ b/windows/windlg.c @@ -240,7 +240,7 @@ static int SaneDialogBox(HINSTANCE hinst, wc.style = CS_DBLCLKS | CS_SAVEBITS | CS_BYTEALIGNWINDOW; wc.lpfnWndProc = DefDlgProc; wc.cbClsExtra = 0; - wc.cbWndExtra = DLGWINDOWEXTRA + 8; + wc.cbWndExtra = DLGWINDOWEXTRA + 2*sizeof(LONG_PTR); wc.hInstance = hinst; wc.hIcon = NULL; wc.hCursor = LoadCursor(NULL, IDC_ARROW); @@ -251,11 +251,11 @@ static int SaneDialogBox(HINSTANCE hinst, hwnd = CreateDialog(hinst, tmpl, hwndparent, lpDialogFunc); - SetWindowLong(hwnd, BOXFLAGS, 0); /* flags */ - SetWindowLong(hwnd, BOXRESULT, 0); /* result from SaneEndDialog */ + SetWindowLongPtr(hwnd, BOXFLAGS, 0); /* flags */ + SetWindowLongPtr(hwnd, BOXRESULT, 0); /* result from SaneEndDialog */ while ((gm=GetMessage(&msg, NULL, 0, 0)) > 0) { - flags=GetWindowLong(hwnd, BOXFLAGS); + flags=GetWindowLongPtr(hwnd, BOXFLAGS); if (!(flags & DF_END) && !IsDialogMessage(hwnd, &msg)) DispatchMessage(&msg); if (flags & DF_END) @@ -265,15 +265,15 @@ static int SaneDialogBox(HINSTANCE hinst, if (gm == 0) PostQuitMessage(msg.wParam); /* We got a WM_QUIT, pass it on */ - ret=GetWindowLong(hwnd, BOXRESULT); + ret=GetWindowLongPtr(hwnd, BOXRESULT); DestroyWindow(hwnd); return ret; } static void SaneEndDialog(HWND hwnd, int ret) { - SetWindowLong(hwnd, BOXRESULT, ret); - SetWindowLong(hwnd, BOXFLAGS, DF_END); + SetWindowLongPtr(hwnd, BOXRESULT, ret); + SetWindowLongPtr(hwnd, BOXFLAGS, DF_END); } /* @@ -375,10 +375,11 @@ static int CALLBACK GenericMainDlgProc(HWND hwnd, UINT msg, dp.hwnd = hwnd; create_controls(hwnd, ""); /* Open and Cancel buttons etc */ SetWindowText(hwnd, dp.wintitle); - SetWindowLong(hwnd, GWL_USERDATA, 0); + SetWindowLongPtr(hwnd, GWLP_USERDATA, 0); if (help_path) - SetWindowLong(hwnd, GWL_EXSTYLE, - GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_CONTEXTHELP); + SetWindowLongPtr(hwnd, GWL_EXSTYLE, + GetWindowLongPtr(hwnd, GWL_EXSTYLE) | + WS_EX_CONTEXTHELP); else { HWND item = GetDlgItem(hwnd, IDC_HELPBTN); if (item) @@ -512,7 +513,7 @@ static int CALLBACK GenericMainDlgProc(HWND hwnd, UINT msg, } } - SetWindowLong(hwnd, GWL_USERDATA, 1); + SetWindowLongPtr(hwnd, GWLP_USERDATA, 1); return 0; case WM_LBUTTONUP: /* @@ -573,7 +574,7 @@ static int CALLBACK GenericMainDlgProc(HWND hwnd, UINT msg, /* * Only process WM_COMMAND once the dialog is fully formed. */ - if (GetWindowLong(hwnd, GWL_USERDATA) == 1) { + if (GetWindowLongPtr(hwnd, GWLP_USERDATA) == 1) { ret = winctrl_handle_command(&dp, msg, wParam, lParam); if (dp.ended && GetCapture() != hwnd) SaneEndDialog(hwnd, dp.endresult ? 1 : 0); diff --git a/windows/window.c b/windows/window.c index 68920d38..614808a9 100644 --- a/windows/window.c +++ b/windows/window.c @@ -2070,9 +2070,9 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, /* Enable or disable the scroll bar, etc */ { - LONG nflg, flag = GetWindowLong(hwnd, GWL_STYLE); + LONG nflg, flag = GetWindowLongPtr(hwnd, GWL_STYLE); LONG nexflag, exflag = - GetWindowLong(hwnd, GWL_EXSTYLE); + GetWindowLongPtr(hwnd, GWL_EXSTYLE); nexflag = exflag; if (cfg.alwaysontop != prev_cfg.alwaysontop) { @@ -2111,9 +2111,9 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, if (nflg != flag || nexflag != exflag) { if (nflg != flag) - SetWindowLong(hwnd, GWL_STYLE, nflg); + SetWindowLongPtr(hwnd, GWL_STYLE, nflg); if (nexflag != exflag) - SetWindowLong(hwnd, GWL_EXSTYLE, nexflag); + SetWindowLongPtr(hwnd, GWL_EXSTYLE, nexflag); SetWindowPos(hwnd, NULL, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOCOPYBITS | @@ -4942,7 +4942,7 @@ static int is_full_screen() { if (!IsZoomed(hwnd)) return FALSE; - if (GetWindowLong(hwnd, GWL_STYLE) & WS_CAPTION) + if (GetWindowLongPtr(hwnd, GWL_STYLE) & WS_CAPTION) return FALSE; return TRUE; } @@ -4988,13 +4988,13 @@ static void make_full_screen() return; /* Remove the window furniture. */ - style = GetWindowLong(hwnd, GWL_STYLE); + style = GetWindowLongPtr(hwnd, GWL_STYLE); style &= ~(WS_CAPTION | WS_BORDER | WS_THICKFRAME); if (cfg.scrollbar_in_fullscreen) style |= WS_VSCROLL; else style &= ~WS_VSCROLL; - SetWindowLong(hwnd, GWL_STYLE, style); + SetWindowLongPtr(hwnd, GWL_STYLE, style); /* Resize ourselves to exactly cover the nearest monitor. */ get_fullscreen_rect(&ss); @@ -5016,7 +5016,7 @@ static void clear_full_screen() DWORD oldstyle, style; /* Reinstate the window furniture. */ - style = oldstyle = GetWindowLong(hwnd, GWL_STYLE); + style = oldstyle = GetWindowLongPtr(hwnd, GWL_STYLE); style |= WS_CAPTION | WS_BORDER; if (cfg.resize_action == RESIZE_DISABLED) style &= ~WS_THICKFRAME; @@ -5027,7 +5027,7 @@ static void clear_full_screen() else style &= ~WS_VSCROLL; if (style != oldstyle) { - SetWindowLong(hwnd, GWL_STYLE, style); + SetWindowLongPtr(hwnd, GWL_STYLE, style); SetWindowPos(hwnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED); diff --git a/windows/winpgen.c b/windows/winpgen.c index dc9d2730..e35a8c16 100644 --- a/windows/winpgen.c +++ b/windows/winpgen.c @@ -801,8 +801,9 @@ static int CALLBACK MainDlgProc(HWND hwnd, UINT msg, switch (msg) { case WM_INITDIALOG: if (help_path) - SetWindowLong(hwnd, GWL_EXSTYLE, - GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_CONTEXTHELP); + SetWindowLongPtr(hwnd, GWL_EXSTYLE, + GetWindowLongPtr(hwnd, GWL_EXSTYLE) | + WS_EX_CONTEXTHELP); else { /* * If we add a Help button, this is where we destroy it @@ -818,7 +819,7 @@ static int CALLBACK MainDlgProc(HWND hwnd, UINT msg, state->collecting_entropy = FALSE; state->entropy = NULL; state->key_exists = FALSE; - SetWindowLong(hwnd, GWL_USERDATA, (LONG) state); + SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR) state); { HMENU menu, menu1; @@ -943,7 +944,7 @@ static int CALLBACK MainDlgProc(HWND hwnd, UINT msg, return 1; case WM_MOUSEMOVE: - state = (struct MainDlgState *) GetWindowLong(hwnd, GWL_USERDATA); + state = (struct MainDlgState *) GetWindowLongPtr(hwnd, GWLP_USERDATA); if (state->collecting_entropy && state->entropy && state->entropy_got < state->entropy_required) { state->entropy[state->entropy_got++] = lParam; @@ -994,7 +995,7 @@ static int CALLBACK MainDlgProc(HWND hwnd, UINT msg, case IDC_KEYSSH2DSA: { state = (struct MainDlgState *) - GetWindowLong(hwnd, GWL_USERDATA); + GetWindowLongPtr(hwnd, GWLP_USERDATA); if (!IsDlgButtonChecked(hwnd, LOWORD(wParam))) CheckRadioButton(hwnd, IDC_KEYSSH1, IDC_KEYSSH2DSA, LOWORD(wParam)); @@ -1008,7 +1009,7 @@ static int CALLBACK MainDlgProc(HWND hwnd, UINT msg, case IDC_COMMENTEDIT: if (HIWORD(wParam) == EN_CHANGE) { state = (struct MainDlgState *) - GetWindowLong(hwnd, GWL_USERDATA); + GetWindowLongPtr(hwnd, GWLP_USERDATA); if (state->key_exists) { HWND editctl = GetDlgItem(hwnd, IDC_COMMENTEDIT); int len = GetWindowTextLength(editctl); @@ -1047,7 +1048,7 @@ static int CALLBACK MainDlgProc(HWND hwnd, UINT msg, HIWORD(wParam) != BN_DOUBLECLICKED) break; state = - (struct MainDlgState *) GetWindowLong(hwnd, GWL_USERDATA); + (struct MainDlgState *) GetWindowLongPtr(hwnd, GWLP_USERDATA); if (!state->generation_thread_exists) { BOOL ok; state->keysize = GetDlgItemInt(hwnd, IDC_BITS, &ok, FALSE); @@ -1103,7 +1104,7 @@ static int CALLBACK MainDlgProc(HWND hwnd, UINT msg, if (HIWORD(wParam) != BN_CLICKED) break; state = - (struct MainDlgState *) GetWindowLong(hwnd, GWL_USERDATA); + (struct MainDlgState *) GetWindowLongPtr(hwnd, GWLP_USERDATA); if (state->key_exists) { char filename[FILENAME_MAX]; char passphrase[PASSPHRASE_MAXLEN]; @@ -1198,7 +1199,7 @@ static int CALLBACK MainDlgProc(HWND hwnd, UINT msg, if (HIWORD(wParam) != BN_CLICKED) break; state = - (struct MainDlgState *) GetWindowLong(hwnd, GWL_USERDATA); + (struct MainDlgState *) GetWindowLongPtr(hwnd, GWLP_USERDATA); if (state->key_exists) { char filename[FILENAME_MAX]; if (prompt_keyfile(hwnd, "Save public key as:", @@ -1233,7 +1234,7 @@ static int CALLBACK MainDlgProc(HWND hwnd, UINT msg, if (HIWORD(wParam) != BN_CLICKED) break; state = - (struct MainDlgState *) GetWindowLong(hwnd, GWL_USERDATA); + (struct MainDlgState *) GetWindowLongPtr(hwnd, GWLP_USERDATA); if (!state->generation_thread_exists) { char filename[FILENAME_MAX]; if (prompt_keyfile(hwnd, "Load private key:", @@ -1245,7 +1246,7 @@ static int CALLBACK MainDlgProc(HWND hwnd, UINT msg, } return 0; case WM_DONEKEY: - state = (struct MainDlgState *) GetWindowLong(hwnd, GWL_USERDATA); + state = (struct MainDlgState *) GetWindowLongPtr(hwnd, GWLP_USERDATA); state->generation_thread_exists = FALSE; state->key_exists = TRUE; SendDlgItemMessage(hwnd, IDC_PROGRESS, PBM_SETRANGE, 0, @@ -1385,7 +1386,7 @@ static int CALLBACK MainDlgProc(HWND hwnd, UINT msg, } break; case WM_CLOSE: - state = (struct MainDlgState *) GetWindowLong(hwnd, GWL_USERDATA); + state = (struct MainDlgState *) GetWindowLongPtr(hwnd, GWLP_USERDATA); sfree(state); if (requested_help) { WinHelp(hwnd, help_path, HELP_QUIT, 0); diff --git a/windows/winpgnt.c b/windows/winpgnt.c index b0cd08bb..7f6404b7 100644 --- a/windows/winpgnt.c +++ b/windows/winpgnt.c @@ -1471,8 +1471,9 @@ static int CALLBACK KeyListProc(HWND hwnd, UINT msg, } if (help_path) - SetWindowLong(hwnd, GWL_EXSTYLE, - GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_CONTEXTHELP); + SetWindowLongPtr(hwnd, GWL_EXSTYLE, + GetWindowLongPtr(hwnd, GWL_EXSTYLE) | + WS_EX_CONTEXTHELP); else { HWND item = GetDlgItem(hwnd, 103); /* the Help button */ if (item) diff --git a/windows/winstuff.h b/windows/winstuff.h index 1ecf6dcb..5febe16c 100644 --- a/windows/winstuff.h +++ b/windows/winstuff.h @@ -28,7 +28,7 @@ struct FontSpec { }; #define BOXFLAGS DLGWINDOWEXTRA -#define BOXRESULT DLGWINDOWEXTRA + 4 +#define BOXRESULT (DLGWINDOWEXTRA + sizeof(LONG_PTR)) #define DF_END 0x0001 /* -- 2.11.0