If a parameter in the GUI was missing or invalid we were closing the dialogue and forcing the user to relaunch the installer/remover. Instead we now loop until the service has successfully been installed/removed or the user cancelled the operation.
@@ -205,7 +205,7 @@ INT_PTR CALLBACK install_dlg(HWND window, UINT message, WPARAM w, LPARAM l) {
switch (LOWORD(w)) {
/* OK button */
case IDC_OK:
- PostQuitMessage(install(window));
+ if (! install(window)) PostQuitMessage(0);
break;
/* Cancel button */
@@ -220,7 +220,7 @@ INT_PTR CALLBACK install_dlg(HWND window, UINT message, WPARAM w, LPARAM l) {
/* Remove button */
case IDC_REMOVE:
- PostQuitMessage(remove(window));
+ if (! remove(window)) PostQuitMessage(0);
}
return 1;