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
;
33 typedef struct DeploymentProgress DeploymentProgress
;
35 interface IDeploymentResult
;
36 interface IPackageManager
;
37 interface IPackageUserInformation
;
39 runtimeclass DeploymentResult
;
40 runtimeclass PackageManager
;
41 runtimeclass PackageUserInformation
;
44 interface Windows.Foundation.Collections.IIterable
<Windows.Foundation.Uri
*>;
45 interface Windows.Foundation.Collections.IIterator
<Windows.Foundation.Uri
*>;
46 interface Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*>;
47 interface Windows.Foundation.Collections.IIterator
<Windows.ApplicationModel.Package
*>;
48 interface Windows.Foundation.Collections.IIterable
<Windows.Management.Deployment.PackageUserInformation
*>;
49 interface Windows.Foundation.Collections.IIterator
<Windows.Management.Deployment.PackageUserInformation
*>;
50 interface Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
>;
51 interface Windows.Foundation.AsyncOperationProgressHandler
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
>;
52 interface Windows.Foundation.AsyncOperationWithProgressCompletedHandler
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
>;
55 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
57 enum DeploymentOptions
60 ForceApplicationShutdown
= 0x1,
61 DevelopmentMode
= 0x2,
62 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
63 InstallAllResources
= 0x20,
64 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
65 ForceTargetApplicationShutdown
= 0x40,
66 [contract
(Windows.Foundation.UniversalApiContract
, 4.0)]
67 RequiredContentGroupOnly
= 0x100,
68 [contract
(Windows.Foundation.UniversalApiContract
, 7.0)]
69 ForceUpdateFromAnyVersion
= 0x40000,
70 [contract
(Windows.Foundation.UniversalApiContract
, 10.0)]
71 RetainFilesOnFailure
= 0x200000,
72 [contract
(Windows.Foundation.UniversalApiContract
, 10.0)]
73 StageInPlace
= 0x400000,
76 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
77 enum DeploymentProgressState
83 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
84 enum PackageInstallState
89 [contract
(Windows.Foundation.UniversalApiContract
, 2.0)]
93 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
102 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)]
103 struct DeploymentProgress
105 Windows.Management.Deployment.DeploymentProgressState state
;
110 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
111 exclusiveto
(Windows.Management.Deployment.DeploymentResult
),
112 uuid(2563b9ae
-b77d
-4c1f
-8a7b
-20e6ad515ef3
)
114 interface IDeploymentResult
: IInspectable
116 [propget] HRESULT ErrorText
([out, retval] HSTRING
*value
);
117 [propget] HRESULT ActivityId
([out, retval] GUID
*value
);
118 [propget] HRESULT ExtendedErrorCode
([out, retval] HRESULT *value
);
122 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
123 exclusiveto
(Windows.Management.Deployment.PackageManager
),
124 uuid(9a7d4b65
-5e8f
-4fc7
-a2e5
-7f6925cb8b53
)
126 interface IPackageManager
: IInspectable
128 [overload
("AddPackageAsync")]
129 HRESULT AddPackageAsync
([in] Windows.Foundation.Uri
*uri
, [in] Windows.Foundation.Collections.IIterable
<Windows.Foundation.Uri
*> *dependencies
, [in] Windows.Management.Deployment.DeploymentOptions options
,
130 [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
131 HRESULT UpdatePackageAsync
([in] Windows.Foundation.Uri
*uri
, [in] Windows.Foundation.Collections.IIterable
<Windows.Foundation.Uri
*> *dependencies
, [in] Windows.Management.Deployment.DeploymentOptions options
,
132 [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
133 HRESULT RemovePackageAsync
([in] HSTRING name
, [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
134 HRESULT StagePackageAsync
([in] Windows.Foundation.Uri
*uri
, [in] Windows.Foundation.Collections.IIterable
<Windows.Foundation.Uri
*> *dependencies
,
135 [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
136 [overload
("RegisterPackageAsync")]
137 HRESULT RegisterPackageAsync
([in] Windows.Foundation.Uri
* uri
, [in] Windows.Foundation.Collections.IIterable
<Windows.Foundation.Uri
*> *dependencies
, [in] Windows.Management.Deployment.DeploymentOptions options
,
138 [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
139 [overload
("FindPackages")]
140 HRESULT FindPackages
([out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
141 [overload
("FindPackagesForUser")]
142 HRESULT FindPackagesByUserSecurityId
([in] HSTRING sid
, [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
143 [overload
("FindPackages")]
144 HRESULT FindPackagesByNamePublisher
([in] HSTRING name
, [in] HSTRING publisher
, [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
145 [overload
("FindPackagesForUser")]
146 HRESULT FindPackagesByUserSecurityIdNamePublisher
([in] HSTRING sid
, [in] HSTRING name
, [in] HSTRING publisher
, [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
147 HRESULT FindUsers
([in] HSTRING name
, [out, retval] Windows.Foundation.Collections.IIterable
<Windows.Management.Deployment.PackageUserInformation
*> **users
);
148 HRESULT SetPackageState
([in] HSTRING name
, [in] Windows.Management.Deployment.PackageState state
);
149 [overload
("FindPackage")]
150 HRESULT FindPackageByPackageFullName
([in] HSTRING name
, [out, retval] Windows.ApplicationModel.Package
**package
);
151 HRESULT CleanupPackageForUserAsync
([in] HSTRING name
, [in] HSTRING sid
, [out, retval] Windows.Foundation.IAsyncOperationWithProgress
<Windows.Management.Deployment.DeploymentResult
*, Windows.Management.Deployment.DeploymentProgress
> **operation
);
152 [overload
("FindPackages")]
153 HRESULT FindPackagesByPackageFamilyName
([in] HSTRING family_name
, [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
154 [overload
("FindPackagesForUser")]
155 HRESULT FindPackagesByUserSecurityIdPackageFamilyName
([in] HSTRING sid
, [in] HSTRING family_name
, [out, retval] Windows.Foundation.Collections.IIterable
<Windows.ApplicationModel.Package
*> **packages
);
156 [overload
("FindPackageForUser")]
157 HRESULT FindPackageByUserSecurityIdPackageFullName
([in] HSTRING sid
, [in] HSTRING name
, [out, retval] Windows.ApplicationModel.Package
**package
);
161 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
162 exclusiveto
(Windows.Management.Deployment.PackageUserInformation
),
163 uuid(f6383423
-fa09
-4cbc
-9055-15ca275e2e7e
)
165 interface IPackageUserInformation
: IInspectable
167 [propget] HRESULT UserSecurityId
([out, retval] HSTRING
*value
);
168 [propget] HRESULT InstallState
([out, retval] Windows.Management.Deployment.PackageInstallState
*value
);
172 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
173 marshaling_behavior
(agile
)
175 runtimeclass DeploymentResult
177 [default] interface Windows.Management.Deployment.IDeploymentResult
;
178 [contract
(Windows.Foundation.UniversalApiContract
, 4.0)] interface Windows.Management.Deployment.IDeploymentResult2
;
182 activatable
(Windows.Foundation.UniversalApiContract
, 1.0),
183 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
184 marshaling_behavior
(agile
),
187 runtimeclass PackageManager
189 [default] interface Windows.Management.Deployment.IPackageManager
;
190 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)] interface Windows.Management.Deployment.IPackageManager2
;
191 [contract
(Windows.Foundation.UniversalApiContract
, 1.0)] interface Windows.Management.Deployment.IPackageManager3
;
192 [contract
(Windows.Foundation.UniversalApiContract
, 3.0)] interface Windows.Management.Deployment.IPackageManager4
;
193 [contract
(Windows.Foundation.UniversalApiContract
, 4.0)] interface Windows.Management.Deployment.IPackageManager5
;
194 [contract
(Windows.Foundation.UniversalApiContract
, 5.0)] interface Windows.Management.Deployment.IPackageManager6
;
195 [contract
(Windows.Foundation.UniversalApiContract
, 6.0)] interface Windows.Management.Deployment.IPackageManager7
;
196 [contract
(Windows.Foundation.UniversalApiContract
, 7.0)] interface Windows.Management.Deployment.IPackageManager8
;
197 [contract
(Windows.Foundation.UniversalApiContract
, 10.0)] interface Windows.Management.Deployment.IPackageManager9
;
201 contract
(Windows.Foundation.UniversalApiContract
, 1.0),
202 marshaling_behavior
(agile
)
204 runtimeclass PackageUserInformation
206 [default] interface Windows.Management.Deployment.IPackageUserInformation
;