+ HKEY key;\r
+ value_t value;\r
+ int ret;\r
+\r
+ if (mode == MODE_DUMPING) {\r
+ TCHAR *service_name = service->name;\r
+ if (argc > remainder) service_name = argv[remainder];\r
+ if (service->native) key = 0;\r
+ else {\r
+ key = open_registry(service->name, KEY_READ);\r
+ if (! key) return 4;\r
+ }\r
+\r
+ TCHAR quoted_service_name[SERVICE_NAME_LENGTH * 2];\r
+ TCHAR quoted_exe[EXE_LENGTH * 2];\r
+ TCHAR quoted_nssm[EXE_LENGTH * 2];\r
+ if (quote(service_name, quoted_service_name, _countof(quoted_service_name))) return 5;\r
+ if (quote(service->exe, quoted_exe, _countof(quoted_exe))) return 6;\r
+ if (quote(nssm_exe(), quoted_nssm, _countof(quoted_nssm))) return 6;\r
+ _tprintf(_T("%s install %s %s\n"), quoted_nssm, quoted_service_name, quoted_exe);\r
+\r
+ ret = 0;\r
+ for (i = 0; settings[i].name; i++) {\r
+ setting = &settings[i];\r
+ if (! setting->native && service->native) continue;\r
+ if (dump_setting(service_name, key, service->handle, setting)) ret++;\r
+ }\r
+\r
+ if (! service->native) RegCloseKey(key);\r
+ CloseServiceHandle(service->handle);\r
+\r
+ if (ret) return 1;\r
+ return 0;\r
+ }\r
+\r