inseng.idl 4.36 KB
Newer Older
1
/*
2
 * Copyright 2015 Jacek Caban for CodeWeavers
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

19 20 21
#ifndef __WIDL__
#define threading(model)
#endif
22

23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
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);
}

124 125 126 127 128
[
    helpstring("Microsoft Active Setup Engine"),
    threading(apartment),
    uuid(6e449686-c509-11cf-aafa-00aa00b6015c)
]
129
coclass InstallEngine { }
130 131 132 133 134 135

[
    helpstring("Download Site Manager"),
    threading(apartment),
    uuid(bfc880f1-7484-11d0-8309-00aa00b6015c)
]
136
coclass DownloadSiteMgr { }