CatalogPackage.h (2773B)
1 // Copyright (c) Microsoft Corporation. 2 // Licensed under the MIT License. 3 #pragma once 4 #include "CatalogPackage.g.h" 5 6 namespace winrt::Microsoft::Management::Deployment::implementation 7 { 8 struct CatalogPackage : CatalogPackageT<CatalogPackage> 9 { 10 CatalogPackage() = default; 11 12 #if !defined(INCLUDE_ONLY_INTERFACE_METHODS) 13 void Initialize( 14 ::AppInstaller::Repository::Source source, 15 std::shared_ptr<::AppInstaller::Repository::ICompositePackage> package); 16 std::shared_ptr<::AppInstaller::Repository::ICompositePackage> GetRepositoryPackage(); 17 #endif 18 19 hstring Id(); 20 hstring Name(); 21 winrt::Microsoft::Management::Deployment::PackageVersionInfo InstalledVersion(); 22 winrt::Windows::Foundation::Collections::IVectorView<winrt::Microsoft::Management::Deployment::PackageVersionId> AvailableVersions(); 23 winrt::Microsoft::Management::Deployment::PackageVersionInfo DefaultInstallVersion(); 24 winrt::Microsoft::Management::Deployment::PackageVersionInfo GetPackageVersionInfo(winrt::Microsoft::Management::Deployment::PackageVersionId const& versionKey); 25 bool IsUpdateAvailable(); 26 // Contract 5.0 27 winrt::Windows::Foundation::IAsyncOperation<winrt::Microsoft::Management::Deployment::CheckInstalledStatusResult> CheckInstalledStatusAsync( 28 winrt::Microsoft::Management::Deployment::InstalledStatusType checkTypes); 29 winrt::Microsoft::Management::Deployment::CheckInstalledStatusResult CheckInstalledStatus( 30 winrt::Microsoft::Management::Deployment::InstalledStatusType checkTypes); 31 winrt::Windows::Foundation::IAsyncOperation<winrt::Microsoft::Management::Deployment::CheckInstalledStatusResult> CheckInstalledStatusAsync(); 32 winrt::Microsoft::Management::Deployment::CheckInstalledStatusResult CheckInstalledStatus(); 33 34 #if !defined(INCLUDE_ONLY_INTERFACE_METHODS) 35 private: 36 ::AppInstaller::Repository::Source m_source; 37 std::shared_ptr<::AppInstaller::Repository::ICompositePackage> m_package; 38 bool m_updateAvailable = false; 39 Windows::Foundation::Collections::IVector<winrt::Microsoft::Management::Deployment::PackageVersionId> m_availableVersions{ winrt::single_threaded_vector<winrt::Microsoft::Management::Deployment::PackageVersionId>() }; 40 winrt::Microsoft::Management::Deployment::PackageVersionInfo m_installedVersion{ nullptr }; 41 winrt::Microsoft::Management::Deployment::PackageVersionInfo m_latestApplicableVersion{ nullptr }; 42 std::once_flag m_installedVersionOnceFlag; 43 std::once_flag m_availableVersionsOnceFlag; 44 std::once_flag m_latestApplicableVersionOnceFlag; 45 46 void InitializeLatestApplicableVersion(); 47 #endif 48 }; 49 }