Author: akhaldi
Date: Thu Nov 17 22:42:31 2016
New Revision: 73274
URL:
http://svn.reactos.org/svn/reactos?rev=73274&view=rev
Log:
[PSDK] Update inseng.idl. CORE-12409
Modified:
trunk/reactos/sdk/include/psdk/inseng.idl
Modified: trunk/reactos/sdk/include/psdk/inseng.idl
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/psdk/inseng.id…
==============================================================================
--- trunk/reactos/sdk/include/psdk/inseng.idl [iso-8859-1] (original)
+++ trunk/reactos/sdk/include/psdk/inseng.idl [iso-8859-1] Thu Nov 17 22:42:31 2016
@@ -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,15 +27,231 @@
interface IStream;
-/* FIXME: Add full declarations. */
-interface ICifComponent;
-interface IEnumCifComponents;
-interface ICifGroup;
-interface IEnumCifGroups;
-interface ICifMode;
-interface IEnumCifModes;
-
-typedef struct {
+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;
DWORD dwInstallSize;
DWORD dwWinDriveSize;
@@ -49,6 +266,15 @@
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 +288,24 @@
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 +321,7 @@
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);
}
[
@@ -122,6 +365,16 @@
}
[
+ 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),
uuid(6e449686-c509-11cf-aafa-00aa00b6015c)
@@ -134,3 +387,6 @@
uuid(bfc880f1-7484-11d0-8309-00aa00b6015c)
]
coclass DownloadSiteMgr { }
+
+cpp_quote("HRESULT WINAPI GetICifFileFromFile(ICifFile **, const char *);")
+cpp_quote("HRESULT WINAPI GetICifRWFileFromFile(ICifRWFile **, const char *);")