[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