wine/include/windows.management.deployment.idl

209 lines
11 KiB
Text

/*
* 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 struct DeploymentProgress DeploymentProgress;
interface IDeploymentResult;
interface IPackageManager;
interface IPackageUserInformation;
runtimeclass DeploymentResult;
runtimeclass PackageManager;
runtimeclass PackageUserInformation;
declare {
interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Uri *>;
interface Windows.Foundation.Collections.IIterator<Windows.Foundation.Uri *>;
interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Package *>;
interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.Package *>;
interface Windows.Foundation.Collections.IIterable<Windows.Management.Deployment.PackageUserInformation *>;
interface Windows.Foundation.Collections.IIterator<Windows.Management.Deployment.PackageUserInformation *>;
interface Windows.Foundation.IAsyncOperationWithProgress<Windows.Management.Deployment.DeploymentResult *, Windows.Management.Deployment.DeploymentProgress>;
interface Windows.Foundation.AsyncOperationProgressHandler<Windows.Management.Deployment.DeploymentResult *, Windows.Management.Deployment.DeploymentProgress>;
interface Windows.Foundation.AsyncOperationWithProgressCompletedHandler<Windows.Management.Deployment.DeploymentResult *, Windows.Management.Deployment.DeploymentProgress>;
}
[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)]
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<Windows.Foundation.Uri *> *dependencies, [in] Windows.Management.Deployment.DeploymentOptions options,
[out, retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Management.Deployment.DeploymentResult *, Windows.Management.Deployment.DeploymentProgress> **operation);
HRESULT UpdatePackageAsync([in] Windows.Foundation.Uri *uri, [in] Windows.Foundation.Collections.IIterable<Windows.Foundation.Uri *> *dependencies, [in] Windows.Management.Deployment.DeploymentOptions options,
[out, retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Management.Deployment.DeploymentResult *, Windows.Management.Deployment.DeploymentProgress> **operation);
HRESULT RemovePackageAsync([in] HSTRING name, [out, retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Management.Deployment.DeploymentResult *, Windows.Management.Deployment.DeploymentProgress> **operation);
HRESULT StagePackageAsync([in] Windows.Foundation.Uri *uri, [in] Windows.Foundation.Collections.IIterable<Windows.Foundation.Uri *> *dependencies,
[out, retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Management.Deployment.DeploymentResult *, Windows.Management.Deployment.DeploymentProgress> **operation);
[overload("RegisterPackageAsync")]
HRESULT RegisterPackageAsync([in] Windows.Foundation.Uri* uri, [in] Windows.Foundation.Collections.IIterable<Windows.Foundation.Uri *> *dependencies, [in] Windows.Management.Deployment.DeploymentOptions options,
[out, retval] Windows.Foundation.IAsyncOperationWithProgress<Windows.Management.Deployment.DeploymentResult *, Windows.Management.Deployment.DeploymentProgress> **operation);
[overload("FindPackages")]
HRESULT FindPackages([out, retval] Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Package *> **packages);
[overload("FindPackagesForUser")]
HRESULT FindPackagesByUserSecurityId([in] HSTRING sid, [out, retval] Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Package *> **packages);
[overload("FindPackages")]
HRESULT FindPackagesByNamePublisher([in] HSTRING name, [in] HSTRING publisher, [out, retval] Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Package *> **packages);
[overload("FindPackagesForUser")]
HRESULT FindPackagesByUserSecurityIdNamePublisher([in] HSTRING sid, [in] HSTRING name, [in] HSTRING publisher, [out, retval] Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Package *> **packages);
HRESULT FindUsers([in] HSTRING name, [out, retval] Windows.Foundation.Collections.IIterable<Windows.Management.Deployment.PackageUserInformation *> **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<Windows.Management.Deployment.DeploymentResult *, Windows.Management.Deployment.DeploymentProgress> **operation);
[overload("FindPackages")]
HRESULT FindPackagesByPackageFamilyName([in] HSTRING family_name, [out, retval] Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Package *> **packages);
[overload("FindPackagesForUser")]
HRESULT FindPackagesByUserSecurityIdPackageFamilyName([in] HSTRING sid, [in] HSTRING family_name, [out, retval] Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Package *> **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.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;
}
}