destroy window handles when program terminates
[reactos.git] / reactos / subsys / system / msconfig / msconfig.c
index 554648d..571ba5b 100644 (file)
-#include <precomp.h>\r
-\r
-HINSTANCE hInst = 0;\r
-\r
-HWND hMainWnd;                   /* Main Window */\r
-HWND hTabWnd;                    /* Tab Control Window */\r
-\r
-\r
-BOOL OnCreate(HWND hWnd)\r
-{\r
-       TCHAR   szTemp[256];\r
-       TCITEM  item;\r
-\r
-       hTabWnd = GetDlgItem(hWnd, IDC_TAB);\r
-    hToolsPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_TOOLS_PAGE), hWnd, ToolsPageWndProc);\r
-    hServicesPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SERVICES_PAGE), hWnd, ServicesPageWndProc);\r
-\r
-       // Insert Tab Pages\r
-       LoadString(hInst, IDS_TAB_GENERAL, szTemp, 256);\r
-    memset(&item, 0, sizeof(TCITEM));\r
-    item.mask = TCIF_TEXT;\r
-    item.pszText = szTemp;\r
-    TabCtrl_InsertItem(hTabWnd, 0, &item);\r
-\r
-       LoadString(hInst, IDS_TAB_FREELDR, szTemp, 256);\r
-    memset(&item, 0, sizeof(TCITEM));\r
-    item.mask = TCIF_TEXT;\r
-    item.pszText = szTemp;\r
-    TabCtrl_InsertItem(hTabWnd, 1, &item);\r
-\r
-       LoadString(hInst, IDS_TAB_SERVICES, szTemp, 256);\r
-    memset(&item, 0, sizeof(TCITEM));\r
-    item.mask = TCIF_TEXT;\r
-    item.pszText = szTemp;\r
-    TabCtrl_InsertItem(hTabWnd, 2, &item);\r
-\r
-       LoadString(hInst, IDS_TAB_STARTUP, szTemp, 256);\r
-    memset(&item, 0, sizeof(TCITEM));\r
-    item.mask = TCIF_TEXT;\r
-    item.pszText = szTemp;\r
-    TabCtrl_InsertItem(hTabWnd, 3, &item);\r
-\r
-       LoadString(hInst, IDS_TAB_TOOLS, szTemp, 256);\r
-    memset(&item, 0, sizeof(TCITEM));\r
-    item.mask = TCIF_TEXT;\r
-    item.pszText = szTemp;\r
-    TabCtrl_InsertItem(hTabWnd, 4, &item);\r
-\r
-       return TRUE;\r
-}\r
-\r
-\r
-void MsConfig_OnTabWndSelChange(void)\r
-{\r
-    switch (TabCtrl_GetCurSel(hTabWnd)) {\r
-    case 0:\r
-        ShowWindow(hToolsPage, SW_HIDE);\r
-               //ShowWindow(hFreeLdrPage, SW_SHOW);\r
-               ShowWindow(hServicesPage, SW_HIDE);\r
-        //BringWindowToTop(hFreeLdrPage);\r
-               break;\r
-    case 1:\r
-        ShowWindow(hToolsPage, SW_HIDE);\r
-               //ShowWindow(hFreeLdrPage, SW_SHOW);\r
-               ShowWindow(hServicesPage, SW_HIDE);\r
-        //BringWindowToTop(hFreeLdrPage);\r
-               break;\r
-    case 2:\r
-        ShowWindow(hToolsPage, SW_HIDE);\r
-               //ShowWindow(hFreeLdrPage, SW_HIDE);\r
-               ShowWindow(hServicesPage, SW_SHOW);\r
-        //BringWindowToTop(hFreeLdrPage);\r
-               break;\r
-    case 3:\r
-        ShowWindow(hToolsPage, SW_HIDE);\r
-               //ShowWindow(hFreeLdrPage, SW_HIDE);\r
-               ShowWindow(hServicesPage, SW_HIDE);\r
-        //BringWindowToTop(hFreeLdrPage);\r
-               break;\r
-       case 4:\r
-        ShowWindow(hToolsPage, SW_SHOW);\r
-               //ShowWindow(hFreeLdrPage, SW_HIDE);\r
-               ShowWindow(hServicesPage, SW_HIDE);\r
-        BringWindowToTop(hToolsPage);\r
-               break;\r
-       }\r
-}\r
-\r
-\r
-/* Message handler for dialog box. */\r
-INT_PTR CALLBACK\r
-MsConfigWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-    int             idctrl;\r
-    LPNMHDR         pnmh;\r
-\r
-    switch (message) {\r
-    case WM_INITDIALOG:\r
-        hMainWnd = hDlg;\r
-        return OnCreate(hDlg);\r
-\r
-       case WM_COMMAND:\r
-\r
-               if (LOWORD(wParam) == IDOK) {\r
-                       //MsConfig_OnSaveChanges();\r
-               }\r
-\r
-        if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) {\r
-            EndDialog(hDlg, LOWORD(wParam));\r
-            return TRUE;\r
-               }\r
-               break;\r
-\r
-    case WM_NOTIFY:\r
-        idctrl = (int)wParam;\r
-        pnmh = (LPNMHDR)lParam;\r
-        if ((pnmh->hwndFrom == hTabWnd) &&\r
-            (pnmh->idFrom == IDC_TAB) &&\r
-            (pnmh->code == TCN_SELCHANGE))\r
-        {\r
-            MsConfig_OnTabWndSelChange();\r
-        }\r
-        break;\r
-\r
-    case WM_DESTROY:\r
-        return DefWindowProc(hDlg, message, wParam, lParam);\r
-\r
-    }\r
-\r
-    return 0;\r
-}\r
-\r
-int APIENTRY WinMain(HINSTANCE hInstance,\r
-                     HINSTANCE hPrevInstance,\r
-                     LPSTR     lpCmdLine,\r
-                     int       nCmdShow)\r
-{\r
-\r
-    INITCOMMONCONTROLSEX InitControls;\r
-\r
-    InitControls.dwSize = sizeof(INITCOMMONCONTROLSEX);\r
-    InitControls.dwICC = ICC_TAB_CLASSES | ICC_LISTVIEW_CLASSES;\r
-    InitCommonControlsEx(&InitControls);\r
-\r
-    hInst = hInstance;\r
\r
-    DialogBox(hInst, (LPCTSTR)IDD_MSCONFIG_DIALOG, NULL, MsConfigWndProc);\r
-  \r
-    return 0;\r
-}\r
-\r
-/* EOF */\r
+#include <precomp.h>
+
+HINSTANCE hInst = 0;
+
+HWND hMainWnd;                   /* Main Window */
+HWND hTabWnd;                    /* Tab Control Window */
+
+
+BOOL OnCreate(HWND hWnd)
+{
+       TCHAR   szTemp[256];
+       TCITEM  item;
+
+       hTabWnd = GetDlgItem(hWnd, IDC_TAB);
+    hToolsPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_TOOLS_PAGE), hWnd, ToolsPageWndProc);
+    hServicesPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SERVICES_PAGE), hWnd, ServicesPageWndProc);
+
+       // Insert Tab Pages
+       LoadString(hInst, IDS_TAB_GENERAL, szTemp, 256);
+    memset(&item, 0, sizeof(TCITEM));
+    item.mask = TCIF_TEXT;
+    item.pszText = szTemp;
+    TabCtrl_InsertItem(hTabWnd, 0, &item);
+
+       LoadString(hInst, IDS_TAB_FREELDR, szTemp, 256);
+    memset(&item, 0, sizeof(TCITEM));
+    item.mask = TCIF_TEXT;
+    item.pszText = szTemp;
+    TabCtrl_InsertItem(hTabWnd, 1, &item);
+
+       LoadString(hInst, IDS_TAB_SERVICES, szTemp, 256);
+    memset(&item, 0, sizeof(TCITEM));
+    item.mask = TCIF_TEXT;
+    item.pszText = szTemp;
+    TabCtrl_InsertItem(hTabWnd, 2, &item);
+
+       LoadString(hInst, IDS_TAB_STARTUP, szTemp, 256);
+    memset(&item, 0, sizeof(TCITEM));
+    item.mask = TCIF_TEXT;
+    item.pszText = szTemp;
+    TabCtrl_InsertItem(hTabWnd, 3, &item);
+
+       LoadString(hInst, IDS_TAB_TOOLS, szTemp, 256);
+    memset(&item, 0, sizeof(TCITEM));
+    item.mask = TCIF_TEXT;
+    item.pszText = szTemp;
+    TabCtrl_InsertItem(hTabWnd, 4, &item);
+
+       return TRUE;
+}
+
+
+void MsConfig_OnTabWndSelChange(void)
+{
+    switch (TabCtrl_GetCurSel(hTabWnd)) {
+    case 0:
+        ShowWindow(hToolsPage, SW_HIDE);
+               //ShowWindow(hFreeLdrPage, SW_SHOW);
+               ShowWindow(hServicesPage, SW_HIDE);
+        //BringWindowToTop(hFreeLdrPage);
+               break;
+    case 1:
+        ShowWindow(hToolsPage, SW_HIDE);
+               //ShowWindow(hFreeLdrPage, SW_SHOW);
+               ShowWindow(hServicesPage, SW_HIDE);
+        //BringWindowToTop(hFreeLdrPage);
+               break;
+    case 2:
+        ShowWindow(hToolsPage, SW_HIDE);
+               //ShowWindow(hFreeLdrPage, SW_HIDE);
+               ShowWindow(hServicesPage, SW_SHOW);
+        //BringWindowToTop(hFreeLdrPage);
+               break;
+    case 3:
+        ShowWindow(hToolsPage, SW_HIDE);
+               //ShowWindow(hFreeLdrPage, SW_HIDE);
+               ShowWindow(hServicesPage, SW_HIDE);
+        //BringWindowToTop(hFreeLdrPage);
+               break;
+       case 4:
+        ShowWindow(hToolsPage, SW_SHOW);
+               //ShowWindow(hFreeLdrPage, SW_HIDE);
+               ShowWindow(hServicesPage, SW_HIDE);
+        BringWindowToTop(hToolsPage);
+               break;
+       }
+}
+
+
+/* Message handler for dialog box. */
+INT_PTR CALLBACK
+MsConfigWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    int             idctrl;
+    LPNMHDR         pnmh;
+
+    switch (message) {
+    case WM_INITDIALOG:
+        hMainWnd = hDlg;
+        return OnCreate(hDlg);
+
+       case WM_COMMAND:
+
+               if (LOWORD(wParam) == IDOK) {
+                       //MsConfig_OnSaveChanges();
+               }
+
+        if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) {
+            EndDialog(hDlg, LOWORD(wParam));
+            return TRUE;
+               }
+               break;
+
+    case WM_NOTIFY:
+        idctrl = (int)wParam;
+        pnmh = (LPNMHDR)lParam;
+        if ((pnmh->hwndFrom == hTabWnd) &&
+            (pnmh->idFrom == IDC_TAB) &&
+            (pnmh->code == TCN_SELCHANGE))
+        {
+            MsConfig_OnTabWndSelChange();
+        }
+        break;
+
+    case WM_DESTROY:
+               DestroyWindow(hToolsPage);
+               DestroyWindow(hServicesPage);
+        return DefWindowProc(hDlg, message, wParam, lParam);
+
+    }
+
+    return 0;
+}
+
+int APIENTRY WinMain(HINSTANCE hInstance,
+                     HINSTANCE hPrevInstance,
+                     LPSTR     lpCmdLine,
+                     int       nCmdShow)
+{
+
+    INITCOMMONCONTROLSEX InitControls;
+
+    InitControls.dwSize = sizeof(INITCOMMONCONTROLSEX);
+    InitControls.dwICC = ICC_TAB_CLASSES | ICC_LISTVIEW_CLASSES;
+    InitCommonControlsEx(&InitControls);
+
+    hInst = hInstance;
+    DialogBox(hInst, (LPCTSTR)IDD_MSCONFIG_DIALOG, NULL, MsConfigWndProc);
+  
+    return 0;
+}
+
+/* EOF */