}\r
}\r
\r
+void close_handle(HANDLE *handle, HANDLE *remember) {\r
+ if (remember) *remember = INVALID_HANDLE_VALUE;\r
+ if (! handle) return;\r
+ if (! *handle) return;\r
+ CloseHandle(*handle);\r
+ if (remember) *remember = *handle;\r
+ *handle = 0;\r
+}\r
+\r
+void close_handle(HANDLE *handle) {\r
+ close_handle(handle, NULL);\r
+}\r
+\r
/* Get path, share mode, creation disposition and flags for a stream. */\r
int get_createfile_parameters(HKEY key, TCHAR *prefix, TCHAR *path, unsigned long *sharing, unsigned long default_sharing, unsigned long *disposition, unsigned long default_disposition, unsigned long *flags, unsigned long default_flags, bool *copy_and_truncate) {\r
TCHAR value[NSSM_STDIO_LENGTH];\r