/* * Copyright 2023 RĂ©mi Bernon for CodeWeavers * * 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 */ #ifdef __WIDL__ #pragma winrt ns_prefix #endif import "windows.foundation.idl"; import "windows.applicationmodel.idl"; namespace Windows.Management.Deployment { typedef enum DeploymentOptions DeploymentOptions; typedef enum DeploymentProgressState DeploymentProgressState; typedef enum PackageInstallState PackageInstallState; typedef enum PackageState PackageState; typedef enum PackageTypes PackageTypes; typedef enum RemovalOptions RemovalOptions; typedef struct DeploymentProgress DeploymentProgress; interface IDeploymentResult; interface IPackageManager; interface IPackageManager2; interface IPackageUserInformation; runtimeclass DeploymentResult; runtimeclass PackageManager; runtimeclass PackageUserInformation; declare { interface Windows.Foundation.Collections.IIterable; interface Windows.Foundation.Collections.IIterator; interface Windows.Foundation.Collections.IIterable; interface Windows.Foundation.Collections.IIterator; interface Windows.Foundation.Collections.IIterable; interface Windows.Foundation.Collections.IIterator; interface Windows.Foundation.IAsyncOperationWithProgress; interface Windows.Foundation.AsyncOperationProgressHandler; interface Windows.Foundation.AsyncOperationWithProgressCompletedHandler; } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [flags] enum DeploymentOptions { None = 0x0, ForceApplicationShutdown = 0x1, DevelopmentMode = 0x2, [contract(Windows.Foundation.UniversalApiContract, 1.0)] InstallAllResources = 0x20, [contract(Windows.Foundation.UniversalApiContract, 1.0)] ForceTargetApplicationShutdown = 0x40, [contract(Windows.Foundation.UniversalApiContract, 4.0)] RequiredContentGroupOnly = 0x100, [contract(Windows.Foundation.UniversalApiContract, 7.0)] ForceUpdateFromAnyVersion = 0x40000, [contract(Windows.Foundation.UniversalApiContract, 10.0)] RetainFilesOnFailure = 0x200000, [contract(Windows.Foundation.UniversalApiContract, 10.0)] StageInPlace = 0x400000, }; [contract(Windows.Foundation.UniversalApiContract, 1.0)] enum DeploymentProgressState { Queued = 0, Processing = 1, }; [contract(Windows.Foundation.UniversalApiContract, 1.0)] enum PackageInstallState { NotInstalled = 0, Staged = 1, Installed = 2, [contract(Windows.Foundation.UniversalApiContract, 2.0)] Paused = 6, }; [contract(Windows.Foundation.UniversalApiContract, 1.0)] enum PackageState { Normal = 0, LicenseInvalid = 1, Modified = 2, Tampered = 3, }; [contract(Windows.Foundation.UniversalApiContract, 1.0)] [flags] enum PackageTypes { None = 0x0, Main = 0x1, Framework = 0x2, Resource = 0x4, Bundle = 0x8, [contract(Windows.Foundation.UniversalApiContract, 1.0)] Xap = 0x10, [contract(Windows.Foundation.UniversalApiContract, 3.0)] Optional = 0x20, [contract(Windows.Foundation.UniversalApiContract, 10.0)] All = 0xffffffff, }; [contract(Windows.Foundation.UniversalApiContract, 1.0)] [flags] enum RemovalOptions { None = 0x0, PreserveApplicationData = 0x1000, [contract(Windows.Foundation.UniversalApiContract, 10.0)] PreserveRoamableApplicationData = 0x80, [contract(Windows.Foundation.UniversalApiContract, 7.0)] RemoveForAllUsers = 0x80000, }; [contract(Windows.Foundation.UniversalApiContract, 1.0)] struct DeploymentProgress { Windows.Management.Deployment.DeploymentProgressState state; UINT32 percentage; }; [ contract(Windows.Foundation.UniversalApiContract, 1.0), exclusiveto(Windows.Management.Deployment.DeploymentResult), uuid(2563b9ae-b77d-4c1f-8a7b-20e6ad515ef3) ] interface IDeploymentResult : IInspectable { [propget] HRESULT ErrorText([out, retval] HSTRING *value); [propget] HRESULT ActivityId([out, retval] GUID *value); [propget] HRESULT ExtendedErrorCode([out, retval] HRESULT *value); } [ contract(Windows.Foundation.UniversalApiContract, 1.0), exclusiveto(Windows.Management.Deployment.PackageManager), uuid(9a7d4b65-5e8f-4fc7-a2e5-7f6925cb8b53) ] interface IPackageManager : IInspectable { [overload("AddPackageAsync")] HRESULT AddPackageAsync([in] Windows.Foundation.Uri *uri, [in] Windows.Foundation.Collections.IIterable *dependencies, [in] Windows.Management.Deployment.DeploymentOptions options, [out, retval] Windows.Foundation.IAsyncOperationWithProgress **operation); HRESULT UpdatePackageAsync([in] Windows.Foundation.Uri *uri, [in] Windows.Foundation.Collections.IIterable *dependencies, [in] Windows.Management.Deployment.DeploymentOptions options, [out, retval] Windows.Foundation.IAsyncOperationWithProgress **operation); HRESULT RemovePackageAsync([in] HSTRING name, [out, retval] Windows.Foundation.IAsyncOperationWithProgress **operation); HRESULT StagePackageAsync([in] Windows.Foundation.Uri *uri, [in] Windows.Foundation.Collections.IIterable *dependencies, [out, retval] Windows.Foundation.IAsyncOperationWithProgress **operation); [overload("RegisterPackageAsync")] HRESULT RegisterPackageAsync([in] Windows.Foundation.Uri* uri, [in] Windows.Foundation.Collections.IIterable *dependencies, [in] Windows.Management.Deployment.DeploymentOptions options, [out, retval] Windows.Foundation.IAsyncOperationWithProgress **operation); [overload("FindPackages")] HRESULT FindPackages([out, retval] Windows.Foundation.Collections.IIterable **packages); [overload("FindPackagesForUser")] HRESULT FindPackagesByUserSecurityId([in] HSTRING sid, [out, retval] Windows.Foundation.Collections.IIterable **packages); [overload("FindPackages")] HRESULT FindPackagesByNamePublisher([in] HSTRING name, [in] HSTRING publisher, [out, retval] Windows.Foundation.Collections.IIterable **packages); [overload("FindPackagesForUser")] HRESULT FindPackagesByUserSecurityIdNamePublisher([in] HSTRING sid, [in] HSTRING name, [in] HSTRING publisher, [out, retval] Windows.Foundation.Collections.IIterable **packages); HRESULT FindUsers([in] HSTRING name, [out, retval] Windows.Foundation.Collections.IIterable **users); HRESULT SetPackageState([in] HSTRING name, [in] Windows.Management.Deployment.PackageState state); [overload("FindPackage")] HRESULT FindPackageByPackageFullName([in] HSTRING name, [out, retval] Windows.ApplicationModel.Package **package); HRESULT CleanupPackageForUserAsync([in] HSTRING name, [in] HSTRING sid, [out, retval] Windows.Foundation.IAsyncOperationWithProgress **operation); [overload("FindPackages")] HRESULT FindPackagesByPackageFamilyName([in] HSTRING family_name, [out, retval] Windows.Foundation.Collections.IIterable **packages); [overload("FindPackagesForUser")] HRESULT FindPackagesByUserSecurityIdPackageFamilyName([in] HSTRING sid, [in] HSTRING family_name, [out, retval] Windows.Foundation.Collections.IIterable **packages); [overload("FindPackageForUser")] HRESULT FindPackageByUserSecurityIdPackageFullName([in] HSTRING sid, [in] HSTRING name, [out, retval] Windows.ApplicationModel.Package **package); } [ contract(Windows.Foundation.UniversalApiContract, 1.0), exclusiveto(Windows.Management.Deployment.PackageManager), uuid(f7aad08d-0840-46f2-b5d8-cad47693a095) ] interface IPackageManager2 : IInspectable { [overload("RemovePackageAsync")] HRESULT RemovePackageWithOptionsAsync([in] HSTRING name, [in] Windows.Management.Deployment.RemovalOptions options, [out, retval] Windows.Foundation.IAsyncOperationWithProgress **operation); [overload("StagePackageAsync")] HRESULT StagePackageWithOptionsAsync([in] Windows.Foundation.Uri *uri, [in] Windows.Foundation.Collections.IIterable *dependencies, [in] Windows.Management.Deployment.DeploymentOptions options, [out, retval] Windows.Foundation.IAsyncOperationWithProgress **operation); HRESULT RegisterPackageByFullNameAsync([in] HSTRING name, [in] Windows.Foundation.Collections.IIterable *dependencies, [in] Windows.Management.Deployment.DeploymentOptions options, [out, retval] Windows.Foundation.IAsyncOperationWithProgress **operation); [overload("FindPackagesWithPackageTypes")] HRESULT FindPackagesWithPackageTypes([in] Windows.Management.Deployment.PackageTypes types, [out, retval] Windows.Foundation.Collections.IIterable **packages); [overload("FindPackagesForUserWithPackageTypes")] HRESULT FindPackagesByUserSecurityIdWithPackageTypes([in] HSTRING sid, [in] Windows.Management.Deployment.PackageTypes types, [out, retval] Windows.Foundation.Collections.IIterable **packages); [overload("FindPackagesWithPackageTypes")] HRESULT FindPackagesByNamePublisherWithPackageTypes([in] HSTRING name, [in] HSTRING publisher, [in] Windows.Management.Deployment.PackageTypes types, [out, retval] Windows.Foundation.Collections.IIterable **packages); [overload("FindPackagesForUserWithPackageTypes")] HRESULT FindPackagesByUserSecurityIdNamePublisherWithPackageTypes([in] HSTRING sid, [in] HSTRING name, [in] HSTRING publisher, [in] Windows.Management.Deployment.PackageTypes types, [out, retval] Windows.Foundation.Collections.IIterable **packages); [overload("FindPackagesWithPackageTypes")] HRESULT FindPackagesByPackageFamilyNameWithPackageTypes([in] HSTRING family_name, [in] Windows.Management.Deployment.PackageTypes types, [out, retval] Windows.Foundation.Collections.IIterable **packages); [overload("FindPackagesForUserWithPackageTypes")] HRESULT FindPackagesByUserSecurityIdPackageFamilyNameWithPackageTypes([in] HSTRING sid, [in] HSTRING family_name, [in] Windows.Management.Deployment.PackageTypes types, [out, retval] Windows.Foundation.Collections.IIterable **packages); [overload("StageUserDataAsync")] HRESULT StageUserDataAsync([in] HSTRING name, [out, retval] Windows.Foundation.IAsyncOperationWithProgress **operation); } [ contract(Windows.Foundation.UniversalApiContract, 1.0), exclusiveto(Windows.Management.Deployment.PackageUserInformation), uuid(f6383423-fa09-4cbc-9055-15ca275e2e7e) ] interface IPackageUserInformation : IInspectable { [propget] HRESULT UserSecurityId([out, retval] HSTRING *value); [propget] HRESULT InstallState([out, retval] Windows.Management.Deployment.PackageInstallState *value); } [ contract(Windows.Foundation.UniversalApiContract, 1.0), marshaling_behavior(agile) ] runtimeclass DeploymentResult { [default] interface Windows.Management.Deployment.IDeploymentResult; [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Management.Deployment.IDeploymentResult2; } [ activatable(Windows.Foundation.UniversalApiContract, 1.0), contract(Windows.Foundation.UniversalApiContract, 1.0), marshaling_behavior(agile), threading(both) ] runtimeclass PackageManager { [default] interface Windows.Management.Deployment.IPackageManager; [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Management.Deployment.IPackageManager2; [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Management.Deployment.IPackageManager3; [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Management.Deployment.IPackageManager4; [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Management.Deployment.IPackageManager5; [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Management.Deployment.IPackageManager6; [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Management.Deployment.IPackageManager7; [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Management.Deployment.IPackageManager8; [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.Management.Deployment.IPackageManager9; } [ contract(Windows.Foundation.UniversalApiContract, 1.0), marshaling_behavior(agile) ] runtimeclass PackageUserInformation { [default] interface Windows.Management.Deployment.IPackageUserInformation; } }