diff options
Diffstat (limited to 'cloud_print')
-rw-r--r-- | cloud_print/virtual_driver/win/install/setup.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/cloud_print/virtual_driver/win/install/setup.cc b/cloud_print/virtual_driver/win/install/setup.cc index 6ee3109..c9dfe6b 100644 --- a/cloud_print/virtual_driver/win/install/setup.cc +++ b/cloud_print/virtual_driver/win/install/setup.cc @@ -92,21 +92,23 @@ HRESULT RegisterPortMonitor(bool install) { LOG(ERROR) << "Can't find regsvr32.exe."; return result; } + CommandLine command_line(regsvr32_path); command_line.AppendArg("/s"); if (!install) { command_line.AppendArg("/u"); } command_line.AppendArgPath(source_path); + + base::LaunchOptions options; HANDLE process_handle; - if (!base::LaunchApp(command_line.command_line_string(), - true, - false, - &process_handle)) { + options.wait = true; + if (!base::LaunchProcess(command_line, options, &process_handle)) { LOG(ERROR) << "Unable to launch regsvr32.exe."; return ERROR_NOT_SUPPORTED; } base::win::ScopedHandle scoped_process_handle(process_handle); + DWORD exit_code = S_OK; if (!GetExitCodeProcess(scoped_process_handle, &exit_code)) { HRESULT result = cloud_print::GetLastHResult(); |