| // 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; |
| }; |
| }; |