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
20 #define threading
(model
)
29 /* FIXME: Add full declarations. */
30 interface ICifComponent
;
31 interface IEnumCifComponents
;
33 interface IEnumCifGroups
;
35 interface IEnumCifModes
;
42 DWORD dwDependancySize
;
43 DWORD dwInstallDriveReq
;
45 DWORD dwDownloadDriveReq
;
49 DWORD dwTotalDownloadSize
;
53 uuid(6e449688
-c509
-11cf
-aafa
-00aa00b6015c
),
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
),
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
),
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
);
115 uuid(6e449689
-c509
-11cf
-aafa
-00aa00b6015c
),
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
{ }