+ }\r
+\r
+ return 0;\r
+}\r
+\r
+/* Reuse output handles for a hook. */\r
+int use_output_handles(nssm_service_t *service, STARTUPINFO *si) {\r
+ si->dwFlags &= ~STARTF_USESTDHANDLES;\r
+\r
+ if (service->stdout_si) {\r
+ if (dup_handle(service->stdout_si, &si->hStdOutput, _T("stdout_pipe"), _T("hStdOutput"))) return 1;\r
+ si->dwFlags |= STARTF_USESTDHANDLES;\r
+ }\r
+\r
+ if (service->stderr_si) {\r
+ if (dup_handle(service->stderr_si, &si->hStdError, _T("stderr_pipe"), _T("hStdError"))) {\r
+ if (si->hStdOutput) {\r
+ si->dwFlags &= ~STARTF_USESTDHANDLES;\r
+ CloseHandle(si->hStdOutput);\r
+ }\r
+ return 2;\r