1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef REMOTING_HOST_WIN_LAUNCH_NATIVE_MESSAGING_HOST_PROCESS_H_
6 #define REMOTING_HOST_WIN_LAUNCH_NATIVE_MESSAGING_HOST_PROCESS_H_
7 
8 #include <cstdint>
9 
10 #include "base/win/scoped_handle.h"
11 
12 namespace base {
13 class FilePath;
14 }  // namespace base
15 
16 namespace remoting {
17 
18 enum ProcessLaunchResult {
19   PROCESS_LAUNCH_RESULT_SUCCESS,
20   PROCESS_LAUNCH_RESULT_CANCELLED,
21   PROCESS_LAUNCH_RESULT_FAILED,
22 };
23 
24 // Launches the executable at |binary_path| using the parameters passed in.
25 // If the process is launched successfully, |read_handle| and |write_handle| are
26 // valid for I/O and the function returns PROCESS_LAUNCH_RESULT_SUCCESS.
27 ProcessLaunchResult LaunchNativeMessagingHostProcess(
28     const base::FilePath& binary_path,
29     intptr_t parent_window_handle,
30     bool elevate_process,
31     base::win::ScopedHandle* read_handle,
32     base::win::ScopedHandle* write_handle);
33 
34 }  // namespace remoting
35 
36 #endif  // REMOTING_HOST_WIN_LAUNCH_NATIVE_MESSAGING_HOST_PROCESS_H_