[PATCH] include: Add missing definitions in inseng.idl and correct a few functions
Vijay Kiran Kamuju
infyquest at gmail.com
Wed Apr 17 06:18:53 CDT 2019
Split from the main patch
From: Michael Müller <michael at fds-team.de>
Signed-off-by: Vijay Kiran Kamuju <infyquest at gmail.com>
---
include/inseng.idl | 273 +++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 264 insertions(+), 9 deletions(-)
diff --git a/include/inseng.idl b/include/inseng.idl
index 8a3f4c4d270..bc6ee0a58ad 100644
--- a/include/inseng.idl
+++ b/include/inseng.idl
@@ -1,5 +1,6 @@
/*
* Copyright 2015 Jacek Caban for CodeWeavers
+ * Copyright 2016 Michael Müller
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -26,13 +27,228 @@ cpp_quote("#endif")
interface IStream;
-/* FIXME: Add full declarations. */
-interface ICifComponent;
-interface IEnumCifComponents;
-interface ICifGroup;
-interface IEnumCifGroups;
-interface ICifMode;
-interface IEnumCifModes;
+cpp_quote("#define MAX_ID_LENGTH 48")
+cpp_quote("#define MAX_DISPLAYNAME_LENGTH 128")
+
+cpp_quote("#define URLF_DEFAULT 0x0")
+cpp_quote("#define URLF_EXTRACT 0x1")
+cpp_quote("#define URLF_RELATIVEURL 0x2")
+cpp_quote("#define URLF_DELETE_AFTER_EXTRACT 0x4")
+
+cpp_quote("#define ENGINESTATUS_NOTREADY 0x0")
+cpp_quote("#define ENGINESTATUS_LOADING 0x1")
+cpp_quote("#define ENGINESTATUS_INSTALLING 0x2")
+cpp_quote("#define ENGINESTATUS_READY 0x3")
+
+cpp_quote("#define SETACTION_NONE 0x0")
+cpp_quote("#define SETACTION_INSTALL 0x1")
+
+cpp_quote("#define INSTALLOPTIONS_NOCACHE 0x01")
+cpp_quote("#define INSTALLOPTIONS_DOWNLOAD 0x02")
+cpp_quote("#define INSTALLOPTIONS_INSTALL 0x04")
+cpp_quote("#define INSTALLOPTIONS_DONTALLOWXPLATFORM 0x08")
+cpp_quote("#define INSTALLOPTIONS_FORCEDEPENDENCIES 0x10")
+
+cpp_quote("#define EXECUTEJOB_SILENT 0x01")
+cpp_quote("#define EXECUTEJOB_DELETE_JOB 0x02")
+cpp_quote("#define EXECUTEJOB_VERIFYFILES 0x08")
+cpp_quote("#define EXECUTEJOB_IGNORETRUST 0x10")
+cpp_quote("#define EXECUTEJOB_IGNOREDOWNLOADERROR 0x20")
+cpp_quote("#define EXECUTEJOB_DONTALLOWCANCEL 0x40")
+
+cpp_quote("#define ENGINEPROBLEM_DOWNLOADFAIL 0x1")
+
+cpp_quote("#define PLATFORM_WIN95 0x01")
+cpp_quote("#define PLATFORM_WIN98 0x02")
+cpp_quote("#define PLATFORM_NT4 0x04")
+cpp_quote("#define PLATFORM_NT5 0x08")
+cpp_quote("#define PLATFORM_NT4ALPHA 0x10")
+cpp_quote("#define PLATFORM_NT5ALPHA 0x20")
+cpp_quote("#define PLATFORM_MILLEN 0x40")
+cpp_quote("#define PLATFORM_ALL (PLATFORM_WIN95 | PLATFORM_WIN98 | PLATFORM_NT4 | PLATFORM_NT5 | PLATFORM_NT4ALPHA | PLATFORM_NT5ALPHA | PLATFORM_MILLEN)")
+
+enum InstallStatus
+{
+ INSTALLSTATUS_INITIALIZING,
+ INSTALLSTATUS_DEPENDENCY,
+ INSTALLSTATUS_DOWNLOADING,
+ INSTALLSTATUS_COPYING,
+ INSTALLSTATUS_RETRYING,
+ INSTALLSTATUS_CHECKINGTRUST,
+ INSTALLSTATUS_EXTRACTING,
+ INSTALLSTATUS_RUNNING,
+ INSTALLSTATUS_FINISHED,
+ INSTALLSTATUS_DOWNLOADFINISHED,
+};
+
+enum ComponentAction
+{
+ ActionNone,
+ ActionInstall,
+ ActionUninstall,
+};
+
+[
+ object,
+ local,
+ pointer_default(unique)
+]
+interface ICifComponent
+{
+ HRESULT GetID(char *id, DWORD size);
+ HRESULT GetGUID(char *guid, DWORD size);
+ HRESULT GetDescription(char *desc, DWORD size);
+ HRESULT GetDetails(char *details, DWORD size);
+ HRESULT GetUrl(UINT index, char *url, DWORD size, DWORD *flags);
+ HRESULT GetFileExtractList(UINT index, char *extract, DWORD size);
+ HRESULT GetUrlCheckRange(UINT index, DWORD *min, DWORD *max);
+ HRESULT GetCommand(UINT index, char *cmd, DWORD cmd_size, char *switches, DWORD switch_size, DWORD *type);
+ HRESULT GetVersion(DWORD *version, DWORD *build);
+ HRESULT GetLocale(char *pszLocale, DWORD size);
+ HRESULT GetUninstallKey(char *key, DWORD size);
+ HRESULT GetInstalledSize(DWORD *win, DWORD *app);
+ DWORD GetDownloadSize();
+ DWORD GetExtractSize();
+ HRESULT GetSuccessKey(char *key, DWORD size);
+ HRESULT GetProgressKeys(char *progress, DWORD progress_size, char *cancel, DWORD cancel_size);
+ HRESULT IsActiveSetupAware();
+ HRESULT IsRebootRequired();
+ HRESULT RequiresAdminRights();
+ DWORD GetPriority();
+ HRESULT GetDependency(UINT index, char *id, DWORD buf, char *type, DWORD *ver, DWORD *build);
+ DWORD GetPlatform();
+ HRESULT GetMode(UINT index, char *mode, DWORD size);
+ HRESULT GetGroup(char *id, DWORD size);
+ HRESULT IsUIVisible();
+ HRESULT GetPatchID(char *id, DWORD size);
+ HRESULT GetDetVersion(char *dll, DWORD dll_size, char *entry, DWORD entry_size);
+ HRESULT GetTreatAsOneComponents(UINT index, char *id, DWORD buf);
+ HRESULT GetCustomData(char *key, char *data, DWORD size);
+ DWORD IsComponentInstalled();
+ HRESULT IsComponentDownloaded();
+ DWORD IsThisVersionInstalled(DWORD version, DWORD build, DWORD *ret_version, DWORD *ret_build);
+ DWORD GetInstallQueueState();
+ HRESULT SetInstallQueueState(DWORD state);
+ DWORD GetActualDownloadSize();
+ DWORD GetCurrentPriority();
+ HRESULT SetCurrentPriority(DWORD priority);
+};
+
+[
+ object,
+ local,
+ pointer_default(unique)
+]
+interface ICifRWComponent : ICifComponent
+{
+ HRESULT SetGUID(const char *guid);
+ HRESULT SetDescription(const char *desc);
+ HRESULT SetUrl(UINT index, const char *url, DWORD url_flags);
+ HRESULT SetCommand(UINT index, const char *cmd, const char *switches, DWORD type);
+ HRESULT SetVersion(const char *version);
+ HRESULT SetUninstallKey(const char *key);
+ HRESULT SetInstalledSize(DWORD win, DWORD app);
+ HRESULT SetDownloadSize(DWORD size);
+ HRESULT SetExtractSize(DWORD size);
+ HRESULT DeleteDependency(const char *id, char type);
+ HRESULT AddDependency(const char *id, char type);
+ HRESULT SetUIVisible(BOOL visible);
+ HRESULT SetGroup(const char *id);
+ HRESULT SetPlatform(DWORD platform);
+ HRESULT SetPriority(DWORD priority);
+ HRESULT SetReboot(BOOL reboot);
+ HRESULT DeleteFromModes(const char *mode);
+ HRESULT AddToMode(const char *mode);
+ HRESULT SetModes(const char *mode);
+ HRESULT CopyComponent(const char *ciffile);
+ HRESULT AddToTreatAsOne(const char *compid);
+ HRESULT SetDetails(const char *desc);
+};
+
+[
+ object,
+ local,
+ pointer_default(unique)
+]
+interface IEnumCifComponents : IUnknown
+{
+ HRESULT Next(ICifComponent **);
+ HRESULT Reset();
+};
+
+[
+ object,
+ local,
+ pointer_default(unique)
+]
+interface ICifGroup
+{
+ HRESULT GetID(char *id, DWORD size);
+ HRESULT GetDescription(char *desc, DWORD size);
+ DWORD GetPriority();
+
+ HRESULT EnumComponents(IEnumCifComponents **, DWORD filter, void *pv);
+ DWORD GetCurrentPriority();
+};
+
+[
+ object,
+ local,
+ pointer_default(unique)
+]
+interface ICifRWGroup : ICifGroup
+{
+ HRESULT SetDescription(const char *desc);
+ HRESULT SetPriority(DWORD priority);
+ HRESULT SetDetails(const char *details);
+};
+
+[
+ object,
+ local,
+ pointer_default(unique)
+]
+interface IEnumCifGroups : IUnknown
+{
+ HRESULT Next(ICifGroup **);
+ HRESULT Reset();
+};
+
+[
+ object,
+ local,
+ pointer_default(unique)
+]
+interface ICifMode
+{
+ HRESULT GetID(char *id, DWORD size);
+ HRESULT GetDescription(char *desc, DWORD size);
+ HRESULT GetDetails(char *details, DWORD size);
+
+ HRESULT EnumComponents(IEnumCifComponents **, DWORD filter, void *pv);
+};
+
+[
+ object,
+ local,
+ pointer_default(unique)
+]
+interface ICifRWMode : ICifMode
+{
+ HRESULT SetDescription(const char *desc);
+ HRESULT SetDetails(const char *details);
+};
+
+[
+ object,
+ local,
+ pointer_default(unique)
+]
+interface IEnumCifModes : IUnknown
+{
+ HRESULT Next(ICifMode **);
+ HRESULT Reset();
+};
typedef struct {
DWORD cbSize;
@@ -49,6 +265,15 @@ typedef struct {
DWORD dwTotalDownloadSize;
} COMPONENT_SIZES;
+typedef struct
+{
+ DWORD cbSize;
+ DWORD dwDownloadKBRemaining;
+ DWORD dwInstallKBRemaining;
+ DWORD dwDownloadSecsRemaining;
+ DWORD dwInstallSecsRemaining;
+} INSTALLPROGRESS;
+
[
uuid(6e449688-c509-11cf-aafa-00aa00b6015c),
local
@@ -62,7 +287,24 @@ interface ICifFile : IUnknown
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);
+ HRESULT GetDetDlls(char *dlls, DWORD size);
+}
+
+[
+ object,
+ local,
+ pointer_default(unique)
+]
+interface ICifRWFile : ICifFile
+{
+ HRESULT SetDescription(const char *desc);
+ HRESULT CreateComponent(const char *id, ICifRWComponent **p);
+ HRESULT CreateGroup(const char *id, ICifRWGroup **p);
+ HRESULT CreateMode(const char *id, ICifRWMode **p);
+ HRESULT DeleteComponent(const char *id);
+ HRESULT DeleteGroup(const char *id);
+ HRESULT DeleteMode(const char *id);
+ HRESULT Flush();
}
[
@@ -78,7 +320,7 @@ interface IInstallEngineCallback : IUnknown
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);
+ HRESULT OnEngineProblem(DWORD problem, DWORD *action);
}
[
@@ -121,6 +363,16 @@ interface IInstallEngine2 : IInstallEngine
HRESULT GetICifFile(ICifFile **cif_file);
}
+[
+ uuid(6e449687-c509-11cf-aafa-00aa00b6015c),
+ local
+]
+interface IInstallEngineTiming : IUnknown
+{
+ HRESULT GetRates(DWORD *download, DWORD *install);
+ HRESULT GetInstallProgress(INSTALLPROGRESS *progress);
+}
+
[
helpstring("Microsoft Active Setup Engine"),
threading(apartment),
@@ -134,3 +386,6 @@ coclass InstallEngine { }
uuid(bfc880f1-7484-11d0-8309-00aa00b6015c)
]
coclass DownloadSiteMgr { }
+
+cpp_quote("HRESULT WINAPI GetICifFileFromFile(ICifFile **, const char *);")
+cpp_quote("HRESULT WINAPI GetICifRWFileFromFile(ICifRWFile **, const char *);")
--
2.17.0
More information about the wine-devel
mailing list