summaryrefslogtreecommitdiffstats
path: root/remoting/host/win/chromoting_lib_idl.templ
blob: 15f6f53a94426dd6c94a6c3a728584234a9e15b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import "oaidl.idl";
import "ocidl.idl";

[
  object,
  uuid(e051a481-6345-4ba1-bdb1-cf7929955268),
  dual,
  nonextensible,
  helpstring("IDaemonControl Interface"),
  pointer_default(unique)
]
interface IDaemonControl : IDispatch {
  [ id(1), helpstring("Returns a filtered copy of the daemon's configuration. "
                      "Only 'host_id' and 'xmpp_login' values are returned, "
                      "because any other values may contain security-sensitive "
                      "information.") ]
  HRESULT GetConfig([out, retval] BSTR* config_out);

  [ id(2), helpstring("Returns a string representing the version of "
                      "the daemon.") ]
  HRESULT GetVersion([out, retval] BSTR* version_out);

  [ id(3), helpstring("Replaces the existing daemon's configuration with "
                      "the specified settings.") ]
  HRESULT SetConfig([in] BSTR config);

  [ id(4), helpstring("Sets the owner window for any windows shown by "
                      "the daemon controller.") ]
  HRESULT SetOwnerWindow([in] LONG_PTR owner_window);

  [ id(5), helpstring("Starts the daemon.") ]
  HRESULT StartDaemon();

  [ id(6), helpstring("Stops the daemon.") ]
  HRESULT StopDaemon();

  [ id(7), helpstring("Modifies the existing daemon's configuration by "
                      "merging it with the specified settings. The 'host_id' "
                      "and 'xmpp_login' values cannot be modified, and must "
                      "not be passed to this method.") ]
  HRESULT UpdateConfig([in] BSTR config);
};

[
  object,
  uuid(655bd819-c08c-4b04-80c2-f160739ff6ef),
  dual,
  nonextensible,
  helpstring("IDaemonControl2 Interface"),
  pointer_default(unique)
]
interface IDaemonControl2 : IDaemonControl {
  [ id(8), helpstring("Retrieves the user's consent to collect crash dumps "
                      "and gather usage statistics.") ]
  HRESULT GetUsageStatsConsent([out] BOOL* allowed,
                               [out] BOOL* set_by_policy);

  [ id(9), helpstring("Records the user's consent to collect crash dumps "
                      "and gather usage statistics.") ]
  HRESULT SetUsageStatsConsent([in] BOOL allowed);
};

[
  object,
  uuid(b59b96da-83cb-40ee-9b91-c377400fc3e3),
  nonextensible,
  helpstring("IRdpDesktopSessionEventHandler Interface"),
  pointer_default(unique)
]
interface IRdpDesktopSessionEventHandler : IUnknown {
  [ id(1), helpstring("Notifies that an RDP connection has been established "
                      "successfully.") ]
  HRESULT OnRdpConnected();

  [ id(2), helpstring("Notifies the delegate that the RDP connection has been "
                      "closed.") ]
  HRESULT OnRdpClosed();
};

[
  object,
  uuid(6a7699f0-ee43-43e7-aa30-a6738f9bd470),
  nonextensible,
  helpstring("IRdpDesktopSession Interface"),
  pointer_default(unique)
]
interface IRdpDesktopSession : IUnknown {
  [ id(1), helpstring("Initiates a loopback RDP connection to spawn a new "
                      "Windows session. |width| and |height| specify the "
                      "initial screen resolution. |terminal_id| specifies a "
                      "unique value to be used to identify this connection.") ]
  HRESULT Connect([in] long width, [in] long height, [in] BSTR terminal_id,
                  [in] IRdpDesktopSessionEventHandler* event_handler);

  [ id(2), helpstring("Shuts down the connection created by Connect().") ]
  HRESULT Disconnect();

  [ id(3), helpstring("Changes the screen resolution.") ]
  HRESULT ChangeResolution([in] long width, [in] long height);

  [ id(4), helpstring("Sends Secure Attention Sequence to the session.") ]
  HRESULT InjectSas();
};

[
  uuid(b6396c45-b0cc-456b-9f49-f12964ee6df4),
  version(1.0),
  helpstring("Chromoting 1.0 Type Library")
]
library ChromotingLib {
  importlib("stdole2.tlb");

  [
    uuid(@DAEMON_CONTROLLER_CLSID@),
    helpstring("ElevatedController Class")
  ]
  coclass ElevatedController {
    [default] interface IDaemonControl2;
  };

  [
    uuid(@RDP_DESKTOP_SESSION_CLSID@),
    helpstring("RdpDesktopSession Class")
  ]
  coclass RdpDesktopSession {
    [default] interface IRdpDesktopSession;
  };
};