//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0018
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.ApplicationModel.Core.idl";
import "Windows.Storage.idl";
import "Windows.Storage.Streams.idl";
import "Windows.System.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if !defined(__windows2Eapplicationmodel2Ecore_h__)")
cpp_quote("#include <Windows.ApplicationModel.Core.h>")
cpp_quote("#endif // !defined(__windows2Eapplicationmodel2Ecore_h__)")
cpp_quote("#if !defined(__windows2Estorage_h__)")
cpp_quote("#include <Windows.Storage.h>")
cpp_quote("#endif // !defined(__windows2Estorage_h__)")
cpp_quote("#if !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#include <Windows.Storage.Streams.h>")
cpp_quote("#endif // !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#if !defined(__windows2Esystem_h__)")
cpp_quote("#include <Windows.System.h>")
cpp_quote("#endif // !defined(__windows2Esystem_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Core
        {
            runtimeclass AppListEntry;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        runtimeclass Deferral;

        interface IAsyncAction;

        typedef struct Size Size;

        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Storage
    {
        runtimeclass StorageFolder;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            runtimeclass RandomAccessStreamReference;
        }
    }
}
namespace Windows
{
    namespace System
    {
        typedef enum ProcessorArchitecture ProcessorArchitecture;
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        apicontract FullTrustAppContract;

        apicontract StartupTaskContract;

        typedef enum PackageContentGroupState PackageContentGroupState;

        typedef enum PackageSignatureKind PackageSignatureKind;

        typedef enum StartupTaskState StartupTaskState;

        typedef struct PackageVersion PackageVersion;

        interface IAppDisplayInfo;

        interface IAppInfo;

        interface IDesignModeStatics;

        interface IEnteredBackgroundEventArgs;

        interface IFullTrustProcessLauncherStatics;

        interface ILeavingBackgroundEventArgs;

        interface IPackage;

        interface IPackage2;

        interface IPackage3;

        interface IPackage4;

        interface IPackage5;

        interface IPackageCatalog;

        interface IPackageCatalog2;

        interface IPackageCatalogAddOptionalPackageResult;

        interface IPackageCatalogStatics;

        interface IPackageContentGroup;

        interface IPackageContentGroupStagingEventArgs;

        interface IPackageContentGroupStatics;

        interface IPackageId;

        interface IPackageIdWithMetadata;

        interface IPackageInstallingEventArgs;

        interface IPackageStagingEventArgs;

        interface IPackageStatics;

        interface IPackageStatus;

        interface IPackageStatus2;

        interface IPackageStatusChangedEventArgs;

        interface IPackageUninstallingEventArgs;

        interface IPackageUpdatingEventArgs;

        interface IPackageWithMetadata;

        interface IStartupTask;

        interface IStartupTaskStatics;

        interface ISuspendingDeferral;

        interface ISuspendingEventArgs;

        interface ISuspendingOperation;

        runtimeclass AppDisplayInfo;

        runtimeclass AppInfo;

        runtimeclass DesignMode;

        runtimeclass EnteredBackgroundEventArgs;

        runtimeclass FullTrustProcessLauncher;

        runtimeclass LeavingBackgroundEventArgs;

        runtimeclass Package;

        runtimeclass PackageCatalog;

        runtimeclass PackageCatalogAddOptionalPackageResult;

        runtimeclass PackageContentGroup;

        runtimeclass PackageContentGroupStagingEventArgs;

        runtimeclass PackageId;

        runtimeclass PackageInstallingEventArgs;

        runtimeclass PackageStagingEventArgs;

        runtimeclass PackageStatus;

        runtimeclass PackageStatusChangedEventArgs;

        runtimeclass PackageUninstallingEventArgs;

        runtimeclass PackageUpdatingEventArgs;

        runtimeclass StartupTask;

        runtimeclass SuspendingDeferral;

        runtimeclass SuspendingEventArgs;

        runtimeclass SuspendingOperation;
    }
}

// Generic instantiations
namespace Windows
{
    namespace ApplicationModel
    {
        declare
        {
            interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.AppInfo*>;

            interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.Package*>;

            interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.PackageContentGroup*>;

            interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.StartupTask*>;

            interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.AppInfo*>;

            interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.Package*>;

            interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.PackageContentGroup*>;

            interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.StartupTask*>;

            interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.AppInfo*>;

            interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Package*>;

            interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.PackageContentGroup*>;

            interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.StartupTask*>;

            interface Windows.Foundation.Collections.IVector<Windows.ApplicationModel.Package*>;

            interface Windows.Foundation.Collections.IVector<Windows.ApplicationModel.PackageContentGroup*>;

            interface Windows.Foundation.EventHandler<Windows.ApplicationModel.EnteredBackgroundEventArgs*>;

            interface Windows.Foundation.EventHandler<Windows.ApplicationModel.LeavingBackgroundEventArgs*>;

            interface Windows.Foundation.EventHandler<Windows.ApplicationModel.SuspendingEventArgs*>;

            interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.PackageCatalogAddOptionalPackageResult*>;

            interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.PackageContentGroup*>;

            interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.StartupTask*>;

            interface Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.StartupTaskState>;

            interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.AppInfo*>*>;

            interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.StartupTask*>*>;

            interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVector<Windows.ApplicationModel.PackageContentGroup*>*>;

            interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.PackageCatalog*, Windows.ApplicationModel.PackageContentGroupStagingEventArgs*>;

            interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.PackageCatalog*, Windows.ApplicationModel.PackageInstallingEventArgs*>;

            interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.PackageCatalog*, Windows.ApplicationModel.PackageStagingEventArgs*>;

            interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.PackageCatalog*, Windows.ApplicationModel.PackageStatusChangedEventArgs*>;

            interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.PackageCatalog*, Windows.ApplicationModel.PackageUninstallingEventArgs*>;

            interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.PackageCatalog*, Windows.ApplicationModel.PackageUpdatingEventArgs*>;
        }
    }
}

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        [contractversion(1.0)]
        apicontract FullTrustAppContract
        {
        }

        [contractversion(1.0)]
        apicontract StartupTaskContract
        {
        }

        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
        enum PackageContentGroupState
        {
            NotStaged = 0,
            Queued    = 1,
            Staging   = 2,
            Staged    = 3
        };

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        enum PackageSignatureKind
        {
            None       = 0,
            Developer  = 1,
            Enterprise = 2,
            Store      = 3,
            System     = 4
        };

        [contract(Windows.ApplicationModel.StartupTaskContract, 1.0)]
        enum StartupTaskState
        {
            Disabled       = 0,
            DisabledByUser = 1,
            Enabled        = 2
        };

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        struct PackageVersion
        {
            UINT16 Major;
            UINT16 Minor;
            UINT16 Build;
            UINT16 Revision;
        };

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.ApplicationModel.AppDisplayInfo)]
        [uuid(1AEB1103-E4D4-41AA-A4F6-C4A276E79EAC)]
        interface IAppDisplayInfo : IInspectable
        {
            [propget] HRESULT DisplayName([out] [retval] HSTRING* value);
            [propget] HRESULT Description([out] [retval] HSTRING* value);
            HRESULT GetLogo([in] Windows.Foundation.Size size, [out] [retval] Windows.Storage.Streams.RandomAccessStreamReference** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.ApplicationModel.AppInfo)]
        [uuid(CF7F59B3-6A09-4DE8-A6C0-5792D56880D1)]
        interface IAppInfo : IInspectable
        {
            [propget] HRESULT Id([out] [retval] HSTRING* value);
            [propget] HRESULT AppUserModelId([out] [retval] HSTRING* value);
            [propget] HRESULT DisplayInfo([out] [retval] Windows.ApplicationModel.AppDisplayInfo** value);
            [propget] HRESULT PackageFamilyName([out] [retval] HSTRING* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.ApplicationModel.DesignMode)]
        [uuid(2C3893CC-F81A-4E7A-B857-76A80887E185)]
        interface IDesignModeStatics : IInspectable
        {
            [propget] HRESULT DesignModeEnabled([out] [retval] boolean* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [uuid(F722DCC2-9827-403D-AAED-ECCA9AC17398)]
        interface IEnteredBackgroundEventArgs : IInspectable
        {
            HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
        }

        [contract(Windows.ApplicationModel.FullTrustAppContract, 1.0)]
        [exclusiveto(Windows.ApplicationModel.FullTrustProcessLauncher)]
        [uuid(D784837F-1100-3C6B-A455-F6262CC331B6)]
        interface IFullTrustProcessLauncherStatics : IInspectable
        {
            [overload("LaunchFullTrustProcessForCurrentAppAsync")] HRESULT LaunchFullTrustProcessForCurrentAppAsync([out] [retval] Windows.Foundation.IAsyncAction** asyncAction);
            [overload("LaunchFullTrustProcessForCurrentAppAsync")] HRESULT LaunchFullTrustProcessForCurrentAppWithParametersAsync([in] HSTRING parameterGroupId, [out] [retval] Windows.Foundation.IAsyncAction** asyncAction);
            [overload("LaunchFullTrustProcessForAppAsync")] HRESULT LaunchFullTrustProcessForAppAsync([in] HSTRING fullTrustPackageRelativeAppId, [out] [retval] Windows.Foundation.IAsyncAction** asyncAction);
            [overload("LaunchFullTrustProcessForAppAsync")] HRESULT LaunchFullTrustProcessForAppWithParametersAsync([in] HSTRING fullTrustPackageRelativeAppId, [in] HSTRING parameterGroupId, [out] [retval] Windows.Foundation.IAsyncAction** asyncAction);
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [uuid(39C6EC9A-AE6E-46F9-A07A-CFC23F88733E)]
        interface ILeavingBackgroundEventArgs : IInspectable
        {
            HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.ApplicationModel.Package)]
        [uuid(163C792F-BD75-413C-BF23-B1FE7B95D825)]
        interface IPackage : IInspectable
        {
            [propget] HRESULT Id([out] [retval] Windows.ApplicationModel.PackageId** value);
            [propget] HRESULT InstalledLocation([out] [retval] Windows.Storage.StorageFolder** value);
            [propget] HRESULT IsFramework([out] [retval] boolean* value);
            [propget] HRESULT Dependencies([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Package*>** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.ApplicationModel.Package)]
        [uuid(A6612FB6-7688-4ACE-95FB-359538E7AA01)]
        interface IPackage2 : IInspectable
        {
            [propget] HRESULT DisplayName([out] [retval] HSTRING* value);
            [propget] HRESULT PublisherDisplayName([out] [retval] HSTRING* value);
            [propget] HRESULT Description([out] [retval] HSTRING* value);
            [propget] HRESULT Logo([out] [retval] Windows.Foundation.Uri** value);
            [propget] HRESULT IsResourcePackage([out] [retval] boolean* value);
            [propget] HRESULT IsBundle([out] [retval] boolean* value);
            [propget] HRESULT IsDevelopmentMode([out] [retval] boolean* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.ApplicationModel.Package)]
        [uuid(5F738B61-F86A-4917-93D1-F1EE9D3B35D9)]
        interface IPackage3 : IInspectable
        {
            [propget] HRESULT Status([out] [retval] Windows.ApplicationModel.PackageStatus** value);
            [propget] HRESULT InstalledDate([out] [retval] Windows.Foundation.DateTime* value);
            HRESULT GetAppListEntriesAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.Core.AppListEntry*>*>** operation);
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [exclusiveto(Windows.ApplicationModel.Package)]
        [uuid(65AED1AE-B95B-450C-882B-6255187F397E)]
        interface IPackage4 : IInspectable
        {
            [propget] HRESULT SignatureKind([out] [retval] Windows.ApplicationModel.PackageSignatureKind* value);
            [propget] HRESULT IsOptional([out] [retval] boolean* value);
            HRESULT VerifyContentIntegrityAsync([out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
        }

        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
        [exclusiveto(Windows.ApplicationModel.Package)]
        [uuid(0E842DD4-D9AC-45ED-9A1E-74CE056B2635)]
        interface IPackage5 : IInspectable
        {
            HRESULT GetContentGroupsAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVector<Windows.ApplicationModel.PackageContentGroup*>*>** operation);
            HRESULT GetContentGroupAsync([in] HSTRING name, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.PackageContentGroup*>** operation);
            [overload("StageContentGroupsAsync")] HRESULT StageContentGroupsAsync([in] Windows.Foundation.Collections.IIterable<HSTRING>* names, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVector<Windows.ApplicationModel.PackageContentGroup*>*>** operation);
            [overload("StageContentGroupsAsync")] HRESULT StageContentGroupsWithPriorityAsync([in] Windows.Foundation.Collections.IIterable<HSTRING>* names, [in] boolean moveToHeadOfQueue, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVector<Windows.ApplicationModel.PackageContentGroup*>*>** operation);
            HRESULT SetInUseAsync([in] boolean inUse, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [exclusiveto(Windows.ApplicationModel.PackageCatalog)]
        [uuid(230A3751-9DE3-4445-BE74-91FB325ABEFE)]
        interface IPackageCatalog : IInspectable
        {
            [eventadd] HRESULT PackageStaging([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.PackageCatalog*, Windows.ApplicationModel.PackageStagingEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
            [eventremove] HRESULT PackageStaging([in] EventRegistrationToken token);
            [eventadd] HRESULT PackageInstalling([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.PackageCatalog*, Windows.ApplicationModel.PackageInstallingEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
            [eventremove] HRESULT PackageInstalling([in] EventRegistrationToken token);
            [eventadd] HRESULT PackageUpdating([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.PackageCatalog*, Windows.ApplicationModel.PackageUpdatingEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
            [eventremove] HRESULT PackageUpdating([in] EventRegistrationToken token);
            [eventadd] HRESULT PackageUninstalling([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.PackageCatalog*, Windows.ApplicationModel.PackageUninstallingEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
            [eventremove] HRESULT PackageUninstalling([in] EventRegistrationToken token);
            [eventadd] HRESULT PackageStatusChanged([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.PackageCatalog*, Windows.ApplicationModel.PackageStatusChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
            [eventremove] HRESULT PackageStatusChanged([in] EventRegistrationToken token);
        }

        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
        [exclusiveto(Windows.ApplicationModel.PackageCatalog)]
        [uuid(96A60C36-8FF7-4344-B6BF-EE64C2207ED2)]
        interface IPackageCatalog2 : IInspectable
        {
            [eventadd] HRESULT PackageContentGroupStaging([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.PackageCatalog*, Windows.ApplicationModel.PackageContentGroupStagingEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
            [eventremove] HRESULT PackageContentGroupStaging([in] EventRegistrationToken token);
            HRESULT AddOptionalPackageAsync([in] HSTRING optionalPackageFamilyName, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.PackageCatalogAddOptionalPackageResult*>** operation);
        }

        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
        [exclusiveto(Windows.ApplicationModel.PackageCatalogAddOptionalPackageResult)]
        [uuid(3BF10CD4-B4DF-47B3-A963-E2FA832F7DD3)]
        interface IPackageCatalogAddOptionalPackageResult : IInspectable
        {
            [propget] HRESULT Package([out] [retval] Windows.ApplicationModel.Package** value);
            [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [exclusiveto(Windows.ApplicationModel.PackageCatalog)]
        [uuid(A18C9696-E65B-4634-BA21-5E63EB7244A7)]
        interface IPackageCatalogStatics : IInspectable
        {
            HRESULT OpenForCurrentPackage([out] [retval] Windows.ApplicationModel.PackageCatalog** value);
            HRESULT OpenForCurrentUser([out] [retval] Windows.ApplicationModel.PackageCatalog** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
        [exclusiveto(Windows.ApplicationModel.PackageContentGroup)]
        [uuid(8F62695D-120A-4798-B5E1-5800DDA8F2E1)]
        interface IPackageContentGroup : IInspectable
        {
            [propget] HRESULT Package([out] [retval] Windows.ApplicationModel.Package** value);
            [propget] HRESULT Name([out] [retval] HSTRING* value);
            [propget] HRESULT State([out] [retval] Windows.ApplicationModel.PackageContentGroupState* value);
            [propget] HRESULT IsRequired([out] [retval] boolean* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
        [exclusiveto(Windows.ApplicationModel.PackageContentGroupStagingEventArgs)]
        [uuid(3D7BC27E-6F27-446C-986E-D4733D4D9113)]
        interface IPackageContentGroupStagingEventArgs : IInspectable
        {
            [propget] HRESULT ActivityId([out] [retval] GUID* value);
            [propget] HRESULT Package([out] [retval] Windows.ApplicationModel.Package** value);
            [propget] HRESULT Progress([out] [retval] DOUBLE* value);
            [propget] HRESULT IsComplete([out] [retval] boolean* value);
            [propget] HRESULT ErrorCode([out] [retval] HRESULT* value);
            [propget] HRESULT ContentGroupName([out] [retval] HSTRING* value);
            [propget] HRESULT IsContentGroupRequired([out] [retval] boolean* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
        [exclusiveto(Windows.ApplicationModel.PackageContentGroup)]
        [uuid(70EE7619-5F12-4B92-B9EA-6CCADA13BC75)]
        interface IPackageContentGroupStatics : IInspectable
        {
            [propget] HRESULT RequiredGroupName([out] [retval] HSTRING* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.ApplicationModel.PackageId)]
        [uuid(1ADB665E-37C7-4790-9980-DD7AE74E8BB2)]
        interface IPackageId : IInspectable
        {
            [propget] HRESULT Name([out] [retval] HSTRING* value);
            [propget] HRESULT Version([out] [retval] Windows.ApplicationModel.PackageVersion* value);
            [propget] HRESULT Architecture([out] [retval] Windows.System.ProcessorArchitecture* value);
            [propget] HRESULT ResourceId([out] [retval] HSTRING* value);
            [propget] HRESULT Publisher([out] [retval] HSTRING* value);
            [propget] HRESULT PublisherId([out] [retval] HSTRING* value);
            [propget] HRESULT FullName([out] [retval] HSTRING* value);
            [propget] HRESULT FamilyName([out] [retval] HSTRING* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.ApplicationModel.PackageId)]
        [uuid(40577A7C-0C9E-443D-9074-855F5CE0A08D)]
        interface IPackageIdWithMetadata : IInspectable
        {
            [propget] HRESULT ProductId([out] [retval] HSTRING* value);
            [propget] HRESULT Author([out] [retval] HSTRING* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [exclusiveto(Windows.ApplicationModel.PackageInstallingEventArgs)]
        [uuid(97741EB7-AB7A-401A-8B61-EB0E7FAFF237)]
        interface IPackageInstallingEventArgs : IInspectable
        {
            [propget] HRESULT ActivityId([out] [retval] GUID* value);
            [propget] HRESULT Package([out] [retval] Windows.ApplicationModel.Package** value);
            [propget] HRESULT Progress([out] [retval] DOUBLE* value);
            [propget] HRESULT IsComplete([out] [retval] boolean* value);
            [propget] HRESULT ErrorCode([out] [retval] HRESULT* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [exclusiveto(Windows.ApplicationModel.PackageStagingEventArgs)]
        [uuid(1041682D-54E2-4F51-B828-9EF7046C210F)]
        interface IPackageStagingEventArgs : IInspectable
        {
            [propget] HRESULT ActivityId([out] [retval] GUID* value);
            [propget] HRESULT Package([out] [retval] Windows.ApplicationModel.Package** value);
            [propget] HRESULT Progress([out] [retval] DOUBLE* value);
            [propget] HRESULT IsComplete([out] [retval] boolean* value);
            [propget] HRESULT ErrorCode([out] [retval] HRESULT* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.ApplicationModel.Package)]
        [uuid(4E534BDF-2960-4878-97A4-9624DEB72F2D)]
        interface IPackageStatics : IInspectable
        {
            [propget] HRESULT Current([out] [retval] Windows.ApplicationModel.Package** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.ApplicationModel.PackageStatus)]
        [uuid(5FE74F71-A365-4C09-A02D-046D525EA1DA)]
        interface IPackageStatus : IInspectable
        {
            HRESULT VerifyIsOK([out] [retval] boolean* value);
            [propget] HRESULT NotAvailable([out] [retval] boolean* value);
            [propget] HRESULT PackageOffline([out] [retval] boolean* value);
            [propget] HRESULT DataOffline([out] [retval] boolean* value);
            [propget] HRESULT Disabled([out] [retval] boolean* value);
            [propget] HRESULT NeedsRemediation([out] [retval] boolean* value);
            [propget] HRESULT LicenseIssue([out] [retval] boolean* value);
            [propget] HRESULT Modified([out] [retval] boolean* value);
            [propget] HRESULT Tampered([out] [retval] boolean* value);
            [propget] HRESULT DependencyIssue([out] [retval] boolean* value);
            [propget] HRESULT Servicing([out] [retval] boolean* value);
            [propget] HRESULT DeploymentInProgress([out] [retval] boolean* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
        [exclusiveto(Windows.ApplicationModel.PackageStatus)]
        [uuid(F428FA93-7C56-4862-ACFA-ABAEDCC0694D)]
        interface IPackageStatus2 : IInspectable
        {
            [propget] HRESULT IsPartiallyStaged([out] [retval] boolean* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [exclusiveto(Windows.ApplicationModel.PackageStatusChangedEventArgs)]
        [uuid(437D714D-BD80-4A70-BC50-F6E796509575)]
        interface IPackageStatusChangedEventArgs : IInspectable
        {
            [propget] HRESULT Package([out] [retval] Windows.ApplicationModel.Package** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [exclusiveto(Windows.ApplicationModel.PackageUninstallingEventArgs)]
        [uuid(4443AA52-AB22-44CD-82BB-4EC9B827367A)]
        interface IPackageUninstallingEventArgs : IInspectable
        {
            [propget] HRESULT ActivityId([out] [retval] GUID* value);
            [propget] HRESULT Package([out] [retval] Windows.ApplicationModel.Package** value);
            [propget] HRESULT Progress([out] [retval] DOUBLE* value);
            [propget] HRESULT IsComplete([out] [retval] boolean* value);
            [propget] HRESULT ErrorCode([out] [retval] HRESULT* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [exclusiveto(Windows.ApplicationModel.PackageUpdatingEventArgs)]
        [uuid(CD7B4228-FD74-443E-B114-23E677B0E86F)]
        interface IPackageUpdatingEventArgs : IInspectable
        {
            [propget] HRESULT ActivityId([out] [retval] GUID* value);
            [propget] HRESULT SourcePackage([out] [retval] Windows.ApplicationModel.Package** value);
            [propget] HRESULT TargetPackage([out] [retval] Windows.ApplicationModel.Package** value);
            [propget] HRESULT Progress([out] [retval] DOUBLE* value);
            [propget] HRESULT IsComplete([out] [retval] boolean* value);
            [propget] HRESULT ErrorCode([out] [retval] HRESULT* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.ApplicationModel.Package)]
        [uuid(95949780-1DE9-40F2-B452-0DE9F1910012)]
        interface IPackageWithMetadata : IInspectable
        {
            [propget] HRESULT InstallDate([out] [retval] Windows.Foundation.DateTime* value);
            HRESULT GetThumbnailToken([out] [retval] HSTRING* value);
            [deprecated("Launch may be altered or unavailable for releases after Windows 8.1. Instead, for SmartCardTrigger scenarios use SmartCardTriggerDetails.TryLaunchSelfAsync", deprecate, Windows.Foundation.UniversalApiContract, 1.0)] HRESULT Launch([in] HSTRING parameters);
        }

        [contract(Windows.ApplicationModel.StartupTaskContract, 1.0)]
        [exclusiveto(Windows.ApplicationModel.StartupTask)]
        [uuid(F75C23C8-B5F2-4F6C-88DD-36CB1D599D17)]
        interface IStartupTask : IInspectable
        {
            HRESULT RequestEnableAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.StartupTaskState>** operation);
            HRESULT Disable();
            [propget] HRESULT State([out] [retval] Windows.ApplicationModel.StartupTaskState* value);
            [propget] HRESULT TaskId([out] [retval] HSTRING* value);
        }

        [contract(Windows.ApplicationModel.StartupTaskContract, 1.0)]
        [exclusiveto(Windows.ApplicationModel.StartupTask)]
        [uuid(EE5B60BD-A148-41A7-B26E-E8B88A1E62F8)]
        interface IStartupTaskStatics : IInspectable
        {
            HRESULT GetForCurrentPackageAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.StartupTask*>*>** operation);
            HRESULT GetAsync([in] HSTRING taskId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.ApplicationModel.StartupTask*>** operation);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [uuid(59140509-8BC9-4EB4-B636-DABDC4F46F66)]
        interface ISuspendingDeferral : IInspectable
        {
            HRESULT Complete();
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [uuid(96061C05-2DBA-4D08-B0BD-2B30A131C6AA)]
        interface ISuspendingEventArgs : IInspectable
        {
            [propget] HRESULT SuspendingOperation([out] [retval] Windows.ApplicationModel.SuspendingOperation** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [uuid(9DA4CA41-20E1-4E9B-9F65-A9F435340C3A)]
        interface ISuspendingOperation : IInspectable
        {
            HRESULT GetDeferral([out] [retval] Windows.ApplicationModel.SuspendingDeferral** deferral);
            [propget] HRESULT Deadline([out] [retval] Windows.Foundation.DateTime* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass AppDisplayInfo
        {
            [default] interface Windows.ApplicationModel.IAppDisplayInfo;
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass AppInfo
        {
            [default] interface Windows.ApplicationModel.IAppInfo;
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        [static(Windows.ApplicationModel.IDesignModeStatics, Windows.Foundation.UniversalApiContract, 1.0)]
        [threading(both)]
        runtimeclass DesignMode
        {
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [marshaling_behavior(agile)]
        runtimeclass EnteredBackgroundEventArgs
        {
            [default] interface Windows.ApplicationModel.IEnteredBackgroundEventArgs;
        }

        [contract(Windows.ApplicationModel.FullTrustAppContract, 1.0)]
        [marshaling_behavior(agile)]
        [static(Windows.ApplicationModel.IFullTrustProcessLauncherStatics, Windows.ApplicationModel.FullTrustAppContract, 1.0)]
        [threading(both)]
        runtimeclass FullTrustProcessLauncher
        {
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [marshaling_behavior(agile)]
        runtimeclass LeavingBackgroundEventArgs
        {
            [default] interface Windows.ApplicationModel.ILeavingBackgroundEventArgs;
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        [static(Windows.ApplicationModel.IPackageStatics, Windows.Foundation.UniversalApiContract, 1.0)]
        [threading(both)]
        runtimeclass Package
        {
            [default] interface Windows.ApplicationModel.IPackage;
            [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.ApplicationModel.IPackage2;
            [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.ApplicationModel.IPackage3;
            [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.ApplicationModel.IPackageWithMetadata;
            [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.ApplicationModel.IPackage4;
            [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.ApplicationModel.IPackage5;
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [static(Windows.ApplicationModel.IPackageCatalogStatics, Windows.Foundation.UniversalApiContract, 3.0)]
        runtimeclass PackageCatalog
        {
            [default] interface Windows.ApplicationModel.IPackageCatalog;
            [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.ApplicationModel.IPackageCatalog2;
        }

        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
        runtimeclass PackageCatalogAddOptionalPackageResult
        {
            [default] interface Windows.ApplicationModel.IPackageCatalogAddOptionalPackageResult;
        }

        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
        [marshaling_behavior(agile)]
        [static(Windows.ApplicationModel.IPackageContentGroupStatics, Windows.Foundation.UniversalApiContract, 4.0)]
        [threading(both)]
        runtimeclass PackageContentGroup
        {
            [default] interface Windows.ApplicationModel.IPackageContentGroup;
        }

        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass PackageContentGroupStagingEventArgs
        {
            [default] interface Windows.ApplicationModel.IPackageContentGroupStagingEventArgs;
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        runtimeclass PackageId
        {
            [default] interface Windows.ApplicationModel.IPackageId;
            [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.ApplicationModel.IPackageIdWithMetadata;
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass PackageInstallingEventArgs
        {
            [default] interface Windows.ApplicationModel.IPackageInstallingEventArgs;
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass PackageStagingEventArgs
        {
            [default] interface Windows.ApplicationModel.IPackageStagingEventArgs;
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        runtimeclass PackageStatus
        {
            [default] interface Windows.ApplicationModel.IPackageStatus;
            [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.ApplicationModel.IPackageStatus2;
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass PackageStatusChangedEventArgs
        {
            [default] interface Windows.ApplicationModel.IPackageStatusChangedEventArgs;
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass PackageUninstallingEventArgs
        {
            [default] interface Windows.ApplicationModel.IPackageUninstallingEventArgs;
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass PackageUpdatingEventArgs
        {
            [default] interface Windows.ApplicationModel.IPackageUpdatingEventArgs;
        }

        [contract(Windows.ApplicationModel.StartupTaskContract, 1.0)]
        [marshaling_behavior(agile)]
        [static(Windows.ApplicationModel.IStartupTaskStatics, Windows.ApplicationModel.StartupTaskContract, 1.0)]
        [threading(both)]
        runtimeclass StartupTask
        {
            [default] interface Windows.ApplicationModel.IStartupTask;
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        runtimeclass SuspendingDeferral
        {
            [default] interface Windows.ApplicationModel.ISuspendingDeferral;
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        runtimeclass SuspendingEventArgs
        {
            [default] interface Windows.ApplicationModel.ISuspendingEventArgs;
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        runtimeclass SuspendingOperation
        {
            [default] interface Windows.ApplicationModel.ISuspendingOperation;
        }
    }
}
