| /* |
| * Copyright 2015 Jacek Caban for CodeWeavers |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| #ifndef __WIDL__ |
| #define threading(model) |
| #endif |
| |
| cpp_quote("#if 0") |
| import "unknwn.idl"; |
| cpp_quote("#endif") |
| |
| interface IStream; |
| |
| /* FIXME: Add full declarations. */ |
| interface ICifComponent; |
| interface IEnumCifComponents; |
| interface ICifGroup; |
| interface IEnumCifGroups; |
| interface ICifMode; |
| interface IEnumCifModes; |
| |
| typedef struct { |
| DWORD cbSize; |
| DWORD dwInstallSize; |
| DWORD dwWinDriveSize; |
| DWORD dwDownloadSize; |
| DWORD dwDependancySize; |
| DWORD dwInstallDriveReq; |
| DWORD dwWinDriveReq; |
| DWORD dwDownloadDriveReq; |
| char chWinDrive; |
| char chInstallDrive; |
| char chDownloadDrive; |
| DWORD dwTotalDownloadSize; |
| } COMPONENT_SIZES; |
| |
| [ |
| uuid(6e449688-c509-11cf-aafa-00aa00b6015c), |
| local |
| ] |
| interface ICifFile : IUnknown |
| { |
| HRESULT EnumComponents(IEnumCifComponents **enum_components, DWORD filter, void *pv); |
| HRESULT FindComponent(const char *id, ICifComponent **p); |
| HRESULT EnumGroups(IEnumCifGroups **enum_groups, DWORD filter, void *pv); |
| HRESULT FindGroup(const char *id, ICifGroup **p); |
| HRESULT EnumModes(IEnumCifModes **cuf_modes, DWORD filter, void *pv); |
| HRESULT FindMode(const char *id, ICifMode **p); |
| HRESULT GetDescription(char *desc, DWORD size); |
| HRESULT GetDetDlls(char **dlls, DWORD size); |
| } |
| |
| [ |
| uuid(6e449685-c509-11cf-aafa-00aa00b6015c), |
| local |
| ] |
| interface IInstallEngineCallback : IUnknown |
| { |
| HRESULT OnEngineStatusChange(DWORD status, DWORD substatus); |
| HRESULT OnStartInstall(DWORD dl_size, DWORD install_size); |
| HRESULT OnStartComponent(const char *id, DWORD dl_size, DWORD install_size, const char *string); |
| HRESULT OnComponentProgress(const char *id, DWORD phrase, const char *string, |
| const char *msg_string, ULONG progress, ULONG max); |
| HRESULT OnStopComponent(const char *id, HRESULT error, DWORD phrase, const char *string, DWORD status); |
| HRESULT OnStopInstall(HRESULT error, const char *error_string, DWORD status); |
| HRESULT OnEngineProblem(DWORD problem, LPDWORD action); |
| } |
| |
| [ |
| uuid(6e449684-c509-11cf-aafa-00aa00b6015c), |
| local |
| ] |
| interface IInstallEngine : IUnknown |
| { |
| HRESULT GetEngineStatus(DWORD *status); |
| HRESULT SetCifFile(const char *cab_name, const char *cif_name); |
| HRESULT DownloadComponents(DWORD flags); |
| HRESULT InstallComponents(DWORD flags); |
| HRESULT EnumInstallIDs(UINT index, char **id); |
| HRESULT EnumDownloadIDs(UINT index, char **id); |
| HRESULT IsComponentInstalled(const char *id, DWORD *status); |
| HRESULT RegisterInstallEngineCallback(IInstallEngineCallback *callback); |
| HRESULT UnregisterInstallEngineCallback(); |
| HRESULT SetAction(const char *id, DWORD action, DWORD priority); |
| HRESULT GetSizes(const char *id, COMPONENT_SIZES *sizes); |
| HRESULT LaunchExtraCommand(const char *inf_name, const char *section); |
| HRESULT GetDisplayName(const char *id, const char *name); |
| HRESULT SetBaseUrl(const char *base_name); |
| HRESULT SetDownloadDir(const char *download_dir); |
| HRESULT SetInstallDrive(char drive); |
| HRESULT SetInstallOptions(DWORD flags); |
| HRESULT SetHWND(HWND hwnd); |
| HRESULT SetIStream(IStream *stream); |
| HRESULT Abort(DWORD flags); |
| HRESULT Suspend(); |
| HRESULT Resume(); |
| } |
| |
| [ |
| uuid(6e449689-c509-11cf-aafa-00aa00b6015c), |
| local |
| ] |
| interface IInstallEngine2 : IInstallEngine |
| { |
| HRESULT SetLocalCif(const char *cif); |
| HRESULT GetICifFile(ICifFile **cif_file); |
| } |
| |
| [ |
| helpstring("Microsoft Active Setup Engine"), |
| threading(apartment), |
| uuid(6e449686-c509-11cf-aafa-00aa00b6015c) |
| ] |
| coclass InstallEngine { } |
| |
| [ |
| helpstring("Download Site Manager"), |
| threading(apartment), |
| uuid(bfc880f1-7484-11d0-8309-00aa00b6015c) |
| ] |
| coclass DownloadSiteMgr { } |