05fe2add74
TEST=none BUG=none Review URL: http://codereview.chromium.org/155199 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20161 0039d316-1c4b-4281-b951-d872f2087c98
232 linhas
7.4 KiB
Plaintext
232 linhas
7.4 KiB
Plaintext
// Copyright 2006 Google Inc. All Rights Reserved.
|
|
//
|
|
// Author: Vivek Rao - vivekrao@google.com
|
|
//
|
|
// The proxy clsid #defined as PROXY_CLSID_IS in mk_common needs to be changed
|
|
// anytime any interface below changes, or if a new interface is added.
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
|
|
[
|
|
object,
|
|
uuid(5B25A8DC-1780-4178-A629-6BE8B8DEFAA2),
|
|
oleautomation,
|
|
nonextensible,
|
|
pointer_default(unique)
|
|
]
|
|
interface IBrowserHttpRequest2 : IUnknown {
|
|
// This method will send request/data from the browser process.
|
|
// @param url URL where request will be send.
|
|
// @param post_data POST data, if any. Can be NULL.
|
|
// @param request_headers HTTP request headers, if any. Can be NULL.
|
|
// @param response_headers_needed HTTP response headers that are needed.
|
|
// Should be one of the values listed here:
|
|
// http://go/queryinfoflags
|
|
// The input is a SAFEARRAY of DWORD. Can be a
|
|
// VT_EMPTY.
|
|
// @param response_headers HTTP response headers, returned as SAFEARRAY
|
|
// of BSTR. The values corresponding one-to-one
|
|
// with the response_headers_needed values. Can
|
|
// be NULL if response_headers_needed==VT_EMPTY
|
|
// @param response_code HTTP response code.
|
|
// @param cache_filename Cache file that contains the response data.
|
|
HRESULT Send([in] BSTR url,
|
|
[in] BSTR post_data,
|
|
[in] BSTR request_headers,
|
|
[in] VARIANT response_headers_needed,
|
|
[out] VARIANT* response_headers,
|
|
[out] DWORD* response_code,
|
|
[out] BSTR* cache_filename);
|
|
};
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
uuid(128C2DA6-2BC0-44c0-B3F6-4EC22E647964),
|
|
helpstring("Google Update IProcessLauncher Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IProcessLauncher : IUnknown {
|
|
// @param cmd_line The full command line to execute.
|
|
HRESULT LaunchCmdLine([in, string] const WCHAR* cmd_line);
|
|
|
|
// @param browser_type The browser to start.
|
|
// @param url The url to launch the browser with.
|
|
HRESULT LaunchBrowser([in] DWORD browser_type,
|
|
[in, string] const WCHAR* url);
|
|
|
|
// @param app_id Unique id to identify the calling client application
|
|
// @param event_id Unique id for the command
|
|
// @param caller_proc_id The process id of the calling process
|
|
// @param proc_handle The process handle valid in the caller's context
|
|
HRESULT LaunchCmdElevated([in, string] const WCHAR* app_guid,
|
|
[in, string] const WCHAR* cmd_id,
|
|
[in] DWORD caller_proc_id,
|
|
[out] ULONG_PTR* proc_handle);
|
|
};
|
|
|
|
typedef enum {
|
|
COMPLETION_CODE_SUCCESS = 1,
|
|
COMPLETION_CODE_SUCCESS_CLOSE_UI,
|
|
COMPLETION_CODE_ERROR,
|
|
COMPLETION_CODE_RESTART_ALL_BROWSERS,
|
|
COMPLETION_CODE_REBOOT,
|
|
COMPLETION_CODE_RESTART_BROWSER,
|
|
COMPLETION_CODE_RESTART_ALL_BROWSERS_NOTICE_ONLY,
|
|
COMPLETION_CODE_REBOOT_NOTICE_ONLY,
|
|
COMPLETION_CODE_RESTART_BROWSER_NOTICE_ONLY,
|
|
COMPLETION_CODE_RUN_COMMAND,
|
|
} CompletionCodes;
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
uuid(1C642CED-CA3B-4013-A9DF-CA6CE5FF6503),
|
|
helpstring("GoogleUpdate UI-specific events Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IProgressWndEvents : IUnknown {
|
|
// The UI is closing down. The user has clicked on either the "X" or the
|
|
// other buttons of the UI to close the window.
|
|
HRESULT DoClose();
|
|
|
|
// Pause has been clicked on.
|
|
HRESULT DoPause();
|
|
|
|
// Resume has been clicked on.
|
|
HRESULT DoResume();
|
|
|
|
// RestartBrowsers button has been clicked on.
|
|
HRESULT DoRestartBrowsers();
|
|
|
|
// Reboot button has been clicked on.
|
|
HRESULT DoReboot();
|
|
|
|
// Launch Browser.
|
|
HRESULT DoLaunchBrowser([in, string] const WCHAR* url);
|
|
};
|
|
|
|
|
|
[
|
|
object,
|
|
oleautomation,
|
|
uuid(49D7563B-2DDB-4831-88C8-768A53833837),
|
|
helpstring("IJobObserver Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IJobObserver : IUnknown {
|
|
HRESULT OnShow();
|
|
HRESULT OnCheckingForUpdate();
|
|
HRESULT OnUpdateAvailable([in, string] const WCHAR* version_string);
|
|
HRESULT OnWaitingToDownload();
|
|
HRESULT OnDownloading([in] int time_remaining_ms, [in] int pos);
|
|
HRESULT OnWaitingToInstall();
|
|
HRESULT OnInstalling();
|
|
HRESULT OnPause();
|
|
HRESULT OnComplete([in] CompletionCodes code,
|
|
[in, string] const WCHAR* reserved);
|
|
HRESULT SetEventSink([in] IProgressWndEvents* ui_sink);
|
|
};
|
|
|
|
// TODO(ganesh): Component story.
|
|
// TODO(ganesh): Should CheckForUpdate be synchronous? We can avoid the
|
|
// observer. However, it may block the UI.
|
|
// TODO(ganesh): On-Demand Installs.
|
|
[
|
|
object,
|
|
oleautomation,
|
|
uuid(31AC3F11-E5EA-4a85-8A3D-8E095A39C27B),
|
|
helpstring("IGoogleUpdate Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IGoogleUpdate : IUnknown {
|
|
// @param guid The guid for the app to be updated.
|
|
// @param observer The eventing interface.
|
|
HRESULT CheckForUpdate([in, string] const WCHAR* guid,
|
|
[in] IJobObserver* observer);
|
|
|
|
// @param guid The guid for the app to be updated.
|
|
// @param observer The eventing interface.
|
|
HRESULT Update([in, string] const WCHAR* guid,
|
|
[in] IJobObserver* observer);
|
|
};
|
|
|
|
// IGoogleUpdateCore is an internal Omaha interface.
|
|
[
|
|
object,
|
|
oleautomation,
|
|
uuid(909489C2-85A6-4322-AA56-D25278649D67),
|
|
helpstring("Google Update Core Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IGoogleUpdateCore : IUnknown
|
|
{
|
|
// Runs a command elevated.
|
|
//
|
|
// @param app_id Unique id to identify the calling client application
|
|
// @param event_id Unique id for the command
|
|
// @param caller_proc_id The process id of the calling process
|
|
// @param proc_handle The process handle valid in the caller's context
|
|
HRESULT LaunchCmdElevated([in, string] const WCHAR* app_guid,
|
|
[in, string] const WCHAR* cmd_id,
|
|
[in] DWORD caller_proc_id,
|
|
[out] ULONG_PTR* proc_handle);
|
|
};
|
|
|
|
[
|
|
uuid(7E6CD20B-8688-4960-96D9-B979471577B8),
|
|
version(1.0),
|
|
helpstring("Google Update Type Library")
|
|
]
|
|
library GoogleUpdateLib {
|
|
importlib("stdole2.tlb");
|
|
[
|
|
uuid(ABC01078-F197-4b0b-ADBC-CFE684B39C82),
|
|
helpstring("ProcessLauncherClass Class")
|
|
]
|
|
coclass ProcessLauncherClass {
|
|
[default] interface IProcessLauncher;
|
|
}
|
|
|
|
// This coclass declaration exists only for the purpose of forcing
|
|
// ::RegisterTypeLib() to register the interfaces within. This is
|
|
// required so that we can marshal/unmarshal the interfaces using the TypeLib
|
|
// marshaler.
|
|
[
|
|
uuid(9564861C-3469-4c9a-956A-74D5690790E6),
|
|
helpstring("InterfaceRegistrar Class")
|
|
]
|
|
coclass InterfaceRegistrar {
|
|
[default] interface IBrowserHttpRequest2;
|
|
interface IJobObserver;
|
|
interface IProgressWndEvents;
|
|
}
|
|
|
|
[
|
|
uuid(2F0E2680-9FF5-43c0-B76E-114A56E93598),
|
|
helpstring("OnDemand updates for per-user applications.")
|
|
]
|
|
coclass OnDemandUserAppsClass {
|
|
[default] interface IGoogleUpdate;
|
|
}
|
|
|
|
[
|
|
uuid(6F8BD55B-E83D-4a47-85BE-81FFA8057A69),
|
|
helpstring("OnDemand updates for per-machine applications.")
|
|
]
|
|
coclass OnDemandMachineAppsClass {
|
|
[default] interface IGoogleUpdate;
|
|
}
|
|
|
|
[
|
|
uuid(E225E692-4B47-4777-9BED-4FD7FE257F0E),
|
|
helpstring("GoogleUpdateCore Class")
|
|
]
|
|
coclass GoogleUpdateCoreClass
|
|
{
|
|
[default] interface IGoogleUpdateCore;
|
|
}
|
|
|
|
};
|