msi: Add REINSTALLMODE=v installation mode test.
[wine.git] / include / inseng.idl
blob8a3f4c4d270850680e5e4a0e0f5b30f10702ccb9
1 /*
2 * Copyright 2015 Jacek Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WIDL__
20 #define threading(model)
21 #endif
23 cpp_quote("#if 0")
24 import "unknwn.idl";
25 cpp_quote("#endif")
27 interface IStream;
29 /* FIXME: Add full declarations. */
30 interface ICifComponent;
31 interface IEnumCifComponents;
32 interface ICifGroup;
33 interface IEnumCifGroups;
34 interface ICifMode;
35 interface IEnumCifModes;
37 typedef struct {
38 DWORD cbSize;
39 DWORD dwInstallSize;
40 DWORD dwWinDriveSize;
41 DWORD dwDownloadSize;
42 DWORD dwDependancySize;
43 DWORD dwInstallDriveReq;
44 DWORD dwWinDriveReq;
45 DWORD dwDownloadDriveReq;
46 char chWinDrive;
47 char chInstallDrive;
48 char chDownloadDrive;
49 DWORD dwTotalDownloadSize;
50 } COMPONENT_SIZES;
53 uuid(6e449688-c509-11cf-aafa-00aa00b6015c),
54 local
56 interface ICifFile : IUnknown
58 HRESULT EnumComponents(IEnumCifComponents **enum_components, DWORD filter, void *pv);
59 HRESULT FindComponent(const char *id, ICifComponent **p);
60 HRESULT EnumGroups(IEnumCifGroups **enum_groups, DWORD filter, void *pv);
61 HRESULT FindGroup(const char *id, ICifGroup **p);
62 HRESULT EnumModes(IEnumCifModes **cuf_modes, DWORD filter, void *pv);
63 HRESULT FindMode(const char *id, ICifMode **p);
64 HRESULT GetDescription(char *desc, DWORD size);
65 HRESULT GetDetDlls(char **dlls, DWORD size);
69 uuid(6e449685-c509-11cf-aafa-00aa00b6015c),
70 local
72 interface IInstallEngineCallback : IUnknown
74 HRESULT OnEngineStatusChange(DWORD status, DWORD substatus);
75 HRESULT OnStartInstall(DWORD dl_size, DWORD install_size);
76 HRESULT OnStartComponent(const char *id, DWORD dl_size, DWORD install_size, const char *string);
77 HRESULT OnComponentProgress(const char *id, DWORD phrase, const char *string,
78 const char *msg_string, ULONG progress, ULONG max);
79 HRESULT OnStopComponent(const char *id, HRESULT error, DWORD phrase, const char *string, DWORD status);
80 HRESULT OnStopInstall(HRESULT error, const char *error_string, DWORD status);
81 HRESULT OnEngineProblem(DWORD problem, LPDWORD action);
85 uuid(6e449684-c509-11cf-aafa-00aa00b6015c),
86 local
88 interface IInstallEngine : IUnknown
90 HRESULT GetEngineStatus(DWORD *status);
91 HRESULT SetCifFile(const char *cab_name, const char *cif_name);
92 HRESULT DownloadComponents(DWORD flags);
93 HRESULT InstallComponents(DWORD flags);
94 HRESULT EnumInstallIDs(UINT index, char **id);
95 HRESULT EnumDownloadIDs(UINT index, char **id);
96 HRESULT IsComponentInstalled(const char *id, DWORD *status);
97 HRESULT RegisterInstallEngineCallback(IInstallEngineCallback *callback);
98 HRESULT UnregisterInstallEngineCallback();
99 HRESULT SetAction(const char *id, DWORD action, DWORD priority);
100 HRESULT GetSizes(const char *id, COMPONENT_SIZES *sizes);
101 HRESULT LaunchExtraCommand(const char *inf_name, const char *section);
102 HRESULT GetDisplayName(const char *id, const char *name);
103 HRESULT SetBaseUrl(const char *base_name);
104 HRESULT SetDownloadDir(const char *download_dir);
105 HRESULT SetInstallDrive(char drive);
106 HRESULT SetInstallOptions(DWORD flags);
107 HRESULT SetHWND(HWND hwnd);
108 HRESULT SetIStream(IStream *stream);
109 HRESULT Abort(DWORD flags);
110 HRESULT Suspend();
111 HRESULT Resume();
115 uuid(6e449689-c509-11cf-aafa-00aa00b6015c),
116 local
118 interface IInstallEngine2 : IInstallEngine
120 HRESULT SetLocalCif(const char *cif);
121 HRESULT GetICifFile(ICifFile **cif_file);
125 helpstring("Microsoft Active Setup Engine"),
126 threading(apartment),
127 uuid(6e449686-c509-11cf-aafa-00aa00b6015c)
129 coclass InstallEngine { }
132 helpstring("Download Site Manager"),
133 threading(apartment),
134 uuid(bfc880f1-7484-11d0-8309-00aa00b6015c)
136 coclass DownloadSiteMgr { }