/*
- * winmisc.c: miscellaneous Windows-specific things.
+ * winmisc.c: miscellaneous Windows-specific things
*/
-#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include "putty.h"
+OSVERSIONINFO osVersion;
+
void platform_get_x11_auth(char *display, int *proto,
unsigned char *data, int *datalen)
{
/* We don't support this at all under Windows. */
}
+const char platform_x11_best_transport[] = "localhost";
+
Filename filename_from_str(const char *str)
{
Filename ret;
return !*fn.path;
}
+char *get_username(void)
+{
+ DWORD namelen;
+ char *user;
+
+ namelen = 0;
+ if (GetUserName(NULL, &namelen) == FALSE)
+ return NULL;
+
+ user = snewn(namelen, char);
+ GetUserName(user, &namelen);
+
+ return user;
+}
+
+int SaneDialogBox(HINSTANCE hinst,
+ LPCTSTR tmpl,
+ HWND hwndparent,
+ DLGPROC lpDialogFunc)
+{
+ WNDCLASS wc;
+ HWND hwnd;
+ MSG msg;
+ int flags;
+ int ret;
+ int gm;
+
+ 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 ((gm=GetMessage(&msg, NULL, 0, 0)) > 0) {
+ flags=GetWindowLong(hwnd, BOXFLAGS);
+ if (!(flags & DF_END) && !IsDialogMessage(hwnd, &msg))
+ DispatchMessage(&msg);
+ if (flags & DF_END)
+ break;
+ }
+
+ if (gm == 0)
+ PostQuitMessage(msg.wParam); /* We got a WM_QUIT, pass it on */
+
+ ret=GetWindowLong(hwnd, BOXRESULT);
+ DestroyWindow(hwnd);
+ return ret;
+}
+
+void SaneEndDialog(HWND hwnd, int ret)
+{
+ SetWindowLong(hwnd, BOXRESULT, ret);
+ SetWindowLong(hwnd, BOXFLAGS, DF_END);
+}
+
+BOOL init_winver(void)
+{
+ ZeroMemory(&osVersion, sizeof(osVersion));
+ osVersion.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
+ return GetVersionEx ( (OSVERSIONINFO *) &osVersion);
+}
+
#ifdef DEBUG
static FILE *debug_fp = NULL;
static HANDLE debug_hdl = INVALID_HANDLE_VALUE;