1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 01:48:00 +00:00

Make SaneDialogBox and SaneEndDialog use [GS]etWindowLong rather than

a global variable.  Should mean that pageant builds.

[originally from svn r3274]
This commit is contained in:
Owen Dunn 2003-06-18 17:25:18 +00:00
parent 27d54e8f96
commit a5ffab338d
3 changed files with 36 additions and 21 deletions

View File

@ -47,6 +47,7 @@ IDD_MAINBOX DIALOG DISCARDABLE 0, 0, 280, 252
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "PuTTY Configuration"
FONT 8, "MS Shell Dlg"
CLASS "PuTTYConfigBox"
BEGIN
END

View File

@ -42,24 +42,46 @@ int SaneDialogBox(HINSTANCE hinst,
HWND hwndparent,
DLGPROC lpDialogFunc)
{
HWND boxhwnd;
WNDCLASS wc;
HWND hwnd;
MSG msg;
boxhwnd = CreateDialog(hinst, tmpl, hwndparent, lpDialogFunc);
int flags;
int ret;
wc.style = CS_DBLCLKS | CS_SAVEBITS | CS_BYTEALIGNWINDOW;
wc.lpfnWndProc = DefDlgProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = DLGWINDOWEXTRA + 8;
wc.hInstance = hinst;
wc.hIcon = NULL;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH) (COLOR_BACKGROUND +1);
wc.lpszMenuName = NULL;
wc.lpszClassName = "PuTTYConfigBox";
RegisterClass(&wc);
hwnd = CreateDialog(hinst, tmpl, hwndparent, lpDialogFunc);
SetWindowLong(hwnd, BOXFLAGS, 0); /* flags */
SetWindowLong(hwnd, BOXRESULT, 0); /* result from SaneEndDialog */
while (GetMessage(&msg, NULL, 0, 0)) {
if (!(boxinfo.flags & DF_END) && !IsDialogMessage(boxhwnd, &msg))
flags=GetWindowLong(hwnd, BOXFLAGS);
if (!(flags & DF_END) && !IsDialogMessage(hwnd, &msg))
DispatchMessage(&msg);
if (boxinfo.flags & DF_END) break;
if (flags & DF_END)
break;
}
boxinfo.flags=0;
return boxinfo.result;
ret=GetWindowLong(hwnd, BOXRESULT);
DestroyWindow(hwnd);
return ret;
}
void SaneEndDialog(HWND hwnd, int ret)
{
boxinfo.result = ret;
boxinfo.flags |= DF_END;
DestroyWindow(hwnd);
SetWindowLong(hwnd, BOXRESULT, ret);
SetWindowLong(hwnd, BOXFLAGS, DF_END);
}
#ifdef DEBUG

View File

@ -23,18 +23,15 @@ struct FontSpec {
int charset;
};
struct dlgboxinfo {
int result;
int flags;
};
#define BOXFLAGS DLGWINDOWEXTRA
#define BOXRESULT DLGWINDOWEXTRA + 4
#define DF_END 0x0001
/*
* Global variables. Most modules declare these `extern', but
* window.c will do `#define PUTTY_DO_GLOBALS' before including this
* module, and so will get them properly defined.
*/
*/
#ifndef GLOBAL
#ifdef PUTTY_DO_GLOBALS
#define GLOBAL
@ -70,11 +67,6 @@ typedef HDC Context;
*/
GLOBAL HWND logbox;
/*
* Global structure to hold return values from the config box.
*/
GLOBAL struct dlgboxinfo boxinfo;
/*
* The all-important instance handle.
*/