Implement a much more visually appealing, but much more internally
[sgt/putty] / windlg.c
index e012b3d..57f4943 100644 (file)
--- a/windlg.c
+++ b/windlg.c
@@ -173,6 +173,14 @@ static int CALLBACK AboutProc (HWND hwnd, UINT msg,
     return 0;
 }
 
+/*
+ * Null dialog procedure.
+ */
+static int CALLBACK NullDlgProc (HWND hwnd, UINT msg,
+                                 WPARAM wParam, LPARAM lParam) {
+    return 0;
+}
+
 /* ----------------------------------------------------------------------
  * Routines to self-manage the controls in a dialog box.
  */
@@ -2297,6 +2305,21 @@ static int CALLBACK ReconfDlgProc (HWND hwnd, UINT msg,
     return GenericMainDlgProc (hwnd, msg, wParam, lParam, 1);
 }
 
+int defuse_showwindow(void) {
+    /*
+     * Work around the fact that the app's first call to ShowWindow
+     * will ignore the default in favour of the shell-provided
+     * setting.
+     */
+    {
+        HWND hwnd;
+        hwnd = CreateDialog (hinst, MAKEINTRESOURCE(IDD_ABOUTBOX),
+                             NULL, NullDlgProc);
+        ShowWindow(hwnd, SW_HIDE);
+        DestroyWindow(hwnd);
+    }
+}
+
 int do_config (void) {
     int ret;