2 * Copyright 2023 RĂ©mi Bernon for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #pragma winrt ns_prefix
23 import
"windows.foundation.idl";
24 import
"windows.applicationmodel.idl";
26 namespace Windows.Management.Deployment
{
28 typedef enum DeploymentOptions DeploymentOptions
;
29 typedef enum DeploymentProgressState DeploymentProgressState
;
30 typedef enum PackageInstallState PackageInstallState
;
31 typedef enum PackageState PackageState
;
32 typedef enum PackageTypes PackageTypes
;
33 typedef enum RemovalOptions RemovalOptions
;
35 typedef struct DeploymentProgress DeploymentProgress
;
37 interface IDeploymentResult
;
38 interface IPackageManager
;
39 interface IPackageManager2
;
40 interface IPackageUserInformation
;
42 runtimeclass DeploymentResult
;
43 runtimeclass PackageManager
;
44 runtimeclass PackageUserInformation
;
47 interface Windows.Foundation.Collections.IIterable
<Windows.Foundation.Uri
*>;
48 interface Windows.Foundation.Collections.IIterator
<Windows.Foundation.Uri
*>;
49 interface Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*>;
50 interface Windows.Foundation.Collections.IIterator
<Windows.ApplicationModel.Package
*>;
51 interface Windows.Foundation.Collections.IIterable
<Windows.Management.Deployment.PackageUserInformation
*>;
52 interface Windows.Foundation.Collections.IIterator
<Windows.Management.Deployment.PackageUserInformation
*>;
53 interface Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
>;
54 interface Windows.Foundation.AsyncOperationProgressHandler
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
>;
55 interface Windows.Foundation.AsyncOperationWithProgressCompletedHandler
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
>;
58 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
60 enum DeploymentOptions
63 ForceApplicationShutdown
= 0x1,
64 DevelopmentMode
= 0x2,
65 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
66 InstallAllResources
= 0x20,
67 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
68 ForceTargetApplicationShutdown
= 0x40,
69 [contract
(Windows.Foundation.UniversalApiContract
, 4.0)]
70 RequiredContentGroupOnly
= 0x100,
71 [contract
(Windows.Foundation.UniversalApiContract
, 7.0)]
72 ForceUpdateFromAnyVersion
= 0x40000,
73 [contract
(Windows.Foundation.UniversalApiContract
, 10.0)]
74 RetainFilesOnFailure
= 0x200000,
75 [contract
(Windows.Foundation.UniversalApiContract
, 10.0)]
76 StageInPlace
= 0x400000,
79 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
80 enum DeploymentProgressState
86 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
87 enum PackageInstallState
92 [contract
(Windows.Foundation.UniversalApiContract
, 2.0)]
96 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
105 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
114 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
116 [contract
(Windows.Foundation.UniversalApiContract
, 3.0)]
118 [contract
(Windows.Foundation.UniversalApiContract
, 10.0)]
122 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
127 PreserveApplicationData
= 0x1000,
128 [contract
(Windows.Foundation.UniversalApiContract
, 10.0)]
129 PreserveRoamableApplicationData
= 0x80,
130 [contract
(Windows.Foundation.UniversalApiContract
, 7.0)]
131 RemoveForAllUsers
= 0x80000,
134 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
135 struct DeploymentProgress
137 Windows.Management.Deployment.DeploymentProgressState state
;
142 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
143 exclusiveto
(Windows.Management.Deployment.DeploymentResult
),
144 uuid(2563b9ae
-b77d
-4c1f
-8a7b
-20e6ad515ef3
)
146 interface IDeploymentResult
: IInspectable
148 [propget] HRESULT ErrorText
([out, retval] HSTRING
*value
);
149 [propget] HRESULT ActivityId
([out, retval] GUID
*value
);
150 [propget] HRESULT ExtendedErrorCode
([out, retval] HRESULT *value
);
154 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
155 exclusiveto
(Windows.Management.Deployment.PackageManager
),
156 uuid(9a7d4b65
-5e8f
-4fc7
-a2e5
-7f6925cb8b53
)
158 interface IPackageManager
: IInspectable
160 [overload
("AddPackageAsync")]
161 HRESULT AddPackageAsync
([in] Windows.Foundation.Uri
*uri
, [in] Windows.Foundation.Collections.IIterable
<Windows.Foundation.Uri
*> *dependencies
, [in] Windows.Management.Deployment.DeploymentOptions options
,
162 [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
163 HRESULT UpdatePackageAsync
([in] Windows.Foundation.Uri
*uri
, [in] Windows.Foundation.Collections.IIterable
<Windows.Foundation.Uri
*> *dependencies
, [in] Windows.Management.Deployment.DeploymentOptions options
,
164 [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
165 HRESULT RemovePackageAsync
([in] HSTRING name
, [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
166 HRESULT StagePackageAsync
([in] Windows.Foundation.Uri
*uri
, [in] Windows.Foundation.Collections.IIterable
<Windows.Foundation.Uri
*> *dependencies
,
167 [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
168 [overload
("RegisterPackageAsync")]
169 HRESULT RegisterPackageAsync
([in] Windows.Foundation.Uri
* uri
, [in] Windows.Foundation.Collections.IIterable
<Windows.Foundation.Uri
*> *dependencies
, [in] Windows.Management.Deployment.DeploymentOptions options
,
170 [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
171 [overload
("FindPackages")]
172 HRESULT FindPackages
([out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
173 [overload
("FindPackagesForUser")]
174 HRESULT FindPackagesByUserSecurityId
([in] HSTRING sid
, [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
175 [overload
("FindPackages")]
176 HRESULT FindPackagesByNamePublisher
([in] HSTRING name
, [in] HSTRING publisher
, [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
177 [overload
("FindPackagesForUser")]
178 HRESULT FindPackagesByUserSecurityIdNamePublisher
([in] HSTRING sid
, [in] HSTRING name
, [in] HSTRING publisher
, [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
179 HRESULT FindUsers
([in] HSTRING name
, [out, retval] Windows.Foundation.Collections.IIterable
<Windows.Management.Deployment.PackageUserInformation
*> **users
);
180 HRESULT SetPackageState
([in] HSTRING name
, [in] Windows.Management.Deployment.PackageState state
);
181 [overload
("FindPackage")]
182 HRESULT FindPackageByPackageFullName
([in] HSTRING name
, [out, retval] Windows.ApplicationModel.Package
**package
);
183 HRESULT CleanupPackageForUserAsync
([in] HSTRING name
, [in] HSTRING sid
, [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
184 [overload
("FindPackages")]
185 HRESULT FindPackagesByPackageFamilyName
([in] HSTRING family_name
, [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
186 [overload
("FindPackagesForUser")]
187 HRESULT FindPackagesByUserSecurityIdPackageFamilyName
([in] HSTRING sid
, [in] HSTRING family_name
, [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
188 [overload
("FindPackageForUser")]
189 HRESULT FindPackageByUserSecurityIdPackageFullName
([in] HSTRING sid
, [in] HSTRING name
, [out, retval] Windows.ApplicationModel.Package
**package
);
193 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
194 exclusiveto
(Windows.Management.Deployment.PackageManager
),
195 uuid(f7aad08d
-0840-46f2
-b5d8
-cad47693a095
)
197 interface IPackageManager2
: IInspectable
199 [overload
("RemovePackageAsync")]
200 HRESULT RemovePackageWithOptionsAsync
([in] HSTRING name
, [in] Windows.Management.Deployment.RemovalOptions options
,
201 [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
202 [overload
("StagePackageAsync")]
203 HRESULT StagePackageWithOptionsAsync
([in] Windows.Foundation.Uri
*uri
, [in] Windows.Foundation.Collections.IIterable
<Windows.Foundation.Uri
*> *dependencies
,
204 [in] Windows.Management.Deployment.DeploymentOptions options
,
205 [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
206 HRESULT RegisterPackageByFullNameAsync
([in] HSTRING name
, [in] Windows.Foundation.Collections.IIterable
<HSTRING
> *dependencies
,
207 [in] Windows.Management.Deployment.DeploymentOptions options
,
208 [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
209 [overload
("FindPackagesWithPackageTypes")]
210 HRESULT FindPackagesWithPackageTypes
([in] Windows.Management.Deployment.PackageTypes types
, [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
211 [overload
("FindPackagesForUserWithPackageTypes")]
212 HRESULT FindPackagesByUserSecurityIdWithPackageTypes
([in] HSTRING sid
, [in] Windows.Management.Deployment.PackageTypes types
,
213 [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
214 [overload
("FindPackagesWithPackageTypes")]
215 HRESULT FindPackagesByNamePublisherWithPackageTypes
([in] HSTRING name
, [in] HSTRING publisher
, [in] Windows.Management.Deployment.PackageTypes types
,
216 [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
217 [overload
("FindPackagesForUserWithPackageTypes")]
218 HRESULT FindPackagesByUserSecurityIdNamePublisherWithPackageTypes
([in] HSTRING sid
, [in] HSTRING name
, [in] HSTRING publisher
, [in] Windows.Management.Deployment.PackageTypes types
,
219 [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
220 [overload
("FindPackagesWithPackageTypes")]
221 HRESULT FindPackagesByPackageFamilyNameWithPackageTypes
([in] HSTRING family_name
, [in] Windows.Management.Deployment.PackageTypes types
,
222 [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
223 [overload
("FindPackagesForUserWithPackageTypes")]
224 HRESULT FindPackagesByUserSecurityIdPackageFamilyNameWithPackageTypes
([in] HSTRING sid
, [in] HSTRING family_name
, [in] Windows.Management.Deployment.PackageTypes types
,
225 [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
226 [overload
("StageUserDataAsync")]
227 HRESULT StageUserDataAsync
([in] HSTRING name
, [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
231 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
232 exclusiveto
(Windows.Management.Deployment.PackageUserInformation
),
233 uuid(f6383423
-fa09
-4cbc
-9055-15ca275e2e7e
)
235 interface IPackageUserInformation
: IInspectable
237 [propget] HRESULT UserSecurityId
([out, retval] HSTRING
*value
);
238 [propget] HRESULT InstallState
([out, retval] Windows.Management.Deployment.PackageInstallState
*value
);
242 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
243 marshaling_behavior
(agile
)
245 runtimeclass DeploymentResult
247 [default] interface Windows.Management.Deployment.IDeploymentResult
;
248 [contract
(Windows.Foundation.UniversalApiContract
, 4.0)] interface Windows.Management.Deployment.IDeploymentResult2
;
252 activatable
(Windows.Foundation.UniversalApiContract
, 1.0),
253 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
254 marshaling_behavior
(agile
),
257 runtimeclass PackageManager
259 [default] interface Windows.Management.Deployment.IPackageManager
;
260 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)] interface Windows.Management.Deployment.IPackageManager2
;
261 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)] interface Windows.Management.Deployment.IPackageManager3
;
262 [contract
(Windows.Foundation.UniversalApiContract
, 3.0)] interface Windows.Management.Deployment.IPackageManager4
;
263 [contract
(Windows.Foundation.UniversalApiContract
, 4.0)] interface Windows.Management.Deployment.IPackageManager5
;
264 [contract
(Windows.Foundation.UniversalApiContract
, 5.0)] interface Windows.Management.Deployment.IPackageManager6
;
265 [contract
(Windows.Foundation.UniversalApiContract
, 6.0)] interface Windows.Management.Deployment.IPackageManager7
;
266 [contract
(Windows.Foundation.UniversalApiContract
, 7.0)] interface Windows.Management.Deployment.IPackageManager8
;
267 [contract
(Windows.Foundation.UniversalApiContract
, 10.0)] interface Windows.Management.Deployment.IPackageManager9
;
271 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
272 marshaling_behavior
(agile
)
274 runtimeclass PackageUserInformation
276 [default] interface Windows.Management.Deployment.IPackageUserInformation
;