| // Copyright 2018 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, |
| oleautomation, |
| uuid(A949CB4E-C4F9-44C4-B213-6BF8AA9AC69C), |
| helpstring("IElevator Interface"), |
| pointer_default(unique) |
| ] |
| interface IElevator : IUnknown |
| { |
| // Elevators are exposed as methods on IElevator, and provide High Integrity |
| // actions. Any changes to add or change a method in IElevator will require a |
| // security review. |
| // |
| // Runs the Chrome Recovery CRX elevated. |
| // |
| // @param crx_path Path for the recovery CRX. |
| // @param browser_appid Omaha AppID for the version of Chrome being recovered. |
| // @param browser_version Version of Chrome for the recovery CRX. |
| // @param session_id Omaha Session Id. |
| // @param caller_proc_id The process id of the calling process. |
| // @param proc_handle The process handle valid in the calling process context. |
| HRESULT RunRecoveryCRXElevated([in, string] const WCHAR* crx_path, |
| [in, string] const WCHAR* browser_appid, |
| [in, string] const WCHAR* browser_version, |
| [in, string] const WCHAR* session_id, |
| [in] DWORD caller_proc_id, |
| [out] ULONG_PTR* proc_handle); |
| }; |
| |
| // The interfaces below are all IElevator with unique IIDs. IElevator is |
| // registered with unique IIDs for the various flavors of Chrome and Chromium. |
| // This allows the different flavors of Chrome/Chromium to co-exist without side |
| // effects. |
| [ |
| object, |
| oleautomation, |
| uuid(B88C45B9-8825-4629-B83E-77CC67D9CEED), |
| helpstring("IElevatorChromium Interface"), |
| pointer_default(unique) |
| ] |
| interface IElevatorChromium : IElevator |
| { |
| }; |
| |
| [ |
| object, |
| oleautomation, |
| uuid(463ABECF-410D-407F-8AF5-0DF35A005CC8), |
| helpstring("IElevatorChrome Interface"), |
| pointer_default(unique) |
| ] |
| interface IElevatorChrome : IElevator |
| { |
| }; |
| |
| [ |
| object, |
| oleautomation, |
| uuid(A2721D66-376E-4D2F-9F0F-9070E9A42B5F), |
| helpstring("IElevatorChromeBeta Interface"), |
| pointer_default(unique) |
| ] |
| interface IElevatorChromeBeta : IElevator |
| { |
| }; |
| |
| [ |
| object, |
| oleautomation, |
| uuid(BB2AA26B-343A-4072-8B6F-80557B8CE571), |
| helpstring("IElevatorChromeDev Interface"), |
| pointer_default(unique) |
| ] |
| interface IElevatorChromeDev : IElevator |
| { |
| }; |
| |
| [ |
| object, |
| oleautomation, |
| uuid(4F7CE041-28E9-484F-9DD0-61A8CACEFEE4), |
| helpstring("IElevatorChromeCanary Interface"), |
| pointer_default(unique) |
| ] |
| interface IElevatorChromeCanary : IElevator |
| { |
| }; |
| |
| [ |
| uuid(0014D784-7012-4A79-8AB6-ADDB8193A06E), |
| version(1.0), |
| helpstring("Elevator 1.0 Type Library") |
| ] |
| library ElevatorLib { |
| importlib("stdole2.tlb"); |
| |
| interface IElevator; |
| interface IElevatorChromium; |
| interface IElevatorChrome; |
| interface IElevatorChromeBeta; |
| interface IElevatorChromeDev; |
| interface IElevatorChromeCanary; |
| }; |