diff --git a/include/inseng.idl b/include/inseng.idl index 7b9d0e778fd..8a3f4c4d270 100644 --- a/include/inseng.idl +++ b/include/inseng.idl @@ -20,6 +20,107 @@ #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),