IStorageProviderKnownFolderSyncInfoSource Interface
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Interface qu’un fournisseur de cloud implémente pour fournir des informations sur la synchronisation status des dossiers connus.
public interface class IStorageProviderKnownFolderSyncInfoSource
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Storage.Provider.CloudFilesContract, 458752)]
/// [Windows.Foundation.Metadata.Guid(1362465602, 63424, 21456, 187, 182, 28, 220, 9, 142, 189, 169)]
struct IStorageProviderKnownFolderSyncInfoSource
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Storage.Provider.CloudFilesContract), 458752)]
[Windows.Foundation.Metadata.Guid(1362465602, 63424, 21456, 187, 182, 28, 220, 9, 142, 189, 169)]
public interface IStorageProviderKnownFolderSyncInfoSource
Public Interface IStorageProviderKnownFolderSyncInfoSource
- Attributs
Configuration requise pour Windows
Famille d’appareils |
Windows 11 Insider Preview (introduit dans 10.0.23504.0)
|
API contract |
Windows.Storage.Provider.CloudFilesContract (introduit dans v7.0)
|
Exemples
L’exemple suivant montre l’implémentation d’IStorageProviderKnownFolderSyncInfoSource par un fournisseur de stockage :
namespace winrt::CloudMirror::implementation
{
struct MyKnownFolderInfoSource : implements<MyKnownFolderInfoSource,
winrt::CloudMirror::IStorageProviderKnownFolderSyncInfoSource>
{
MyKnownFolderInfoSource();
StorageProviderKnownFolderSyncInfo GetKnownFolderSyncInfo();
winrt::event_token KnownFolderSyncInfoChanged(
winrt::Windows::Foundation::TypedEventHandler<IStorageProviderKnownFolderSyncInfoSource,
winrt::Windows::Foundation::IInspectable> const& handler);
void KnownFolderSyncInfoChanged(winrt::event_token const& token) noexcept;
private:
winrt::hstring GetProviderDisplayName();
winrt::Uri GetAvailableIcon();
winrt::Uri GetEnrollingIcon();
void NotifyStateChanged();
winrt::event<winrt::TypedEventHandler<IStorageProviderKnownFolderSyncInfoSource, IInspectable>> m_changedEvent;
std::vector<StorageProviderKnownFolderEntry> m_knownFolderEntries;
};
}
...
using namespace winrt::Windows::Storage::Provider;
namespace winrt::CloudMirror::implementation
{
MyKnownFolderInfoSource::MyKnownFolderInfoSource()
{
// The cloud provider would assess its current state and use it to
// inform File Explorer. In this example, Documents is available for
// backup, Pictures is currently enrolling, and Downloads is already
// backed up (enrolled).
winrt::StorageProviderKnownFolderEntry documents{};
documents.KnownFolderId(FOLDERID_Documents);
documents.Status(StorageProviderKnownFolderSyncStatus::Available);
m_knownFolderState.push_back(documents);
winrt::StorageProviderKnownFolderEntry pictures{};
pictures.KnownFolderId(FOLDERID_Pictures);
pictures.Status(StorageProviderKnownFolderSyncStatus::Enrolling);
m_knownFolderState.push_back(pictures);
winrt::StorageProviderKnownFolderEntry downloads{};
downloads.KnownFolderId(FOLDERID_Downloads);
downloads.Status(StorageProviderKnownFolderSyncStatus::Enrolled);
m_knownFolderState.push_back(downloads);
}
// GetKnownFolderSyncInfo is called by File Explorer whenever it needs to get the
// latest known folder sync status from the cloud provider. Once returned, the
// StorageProviderKnownFolderSyncInfo is considered immutable.
//
// A SyncRequested handler must be set on the returned object to be considered valid
// and to be displayed in File Explorer.
StorageProviderKnownFolderSyncInfo MyKnownFolderInfoSource::GetKnownFolderSyncInfo()
{
winrt::StorageProviderKnownFolderSyncInfo info{};
info.ProviderDisplayName(GetProviderDisplayName());
// Setting a SyncRequested handler to respond to user action.
auto syncRequestHandler = [](
winrt::CloudMirror::StorageProviderKnownFolderSyncRequestArgs const& args)
{
// The user wants to sync some known folders with our cloud provider.
// We can show some UI to sign in, confirm their choice, etc.
MyStorageProviderSyncManager::ShowFolderEnrollmentUI(args.KnownFolders(), args.Source());
// Or we can immediately start syncing the requested folders.
MyStorageProviderSyncManager::StartSyncingFolders(args.KnownFolders(), args.Source());
};
info.SyncRequested(syncRequestHandler);
info.KnownFolderEntries().ReplaceAll(m_knownFolderEntries);
return info;
}
}
Remarques
Explorateur de fichiers obtient une instance de IStorageProviderKnownFolderSyncInfoSource pour un fournisseur donné en appelant GetKnownFolderSyncInfoSource.
Cette interface fournit un événement KnownFolderSyncInfoChanged, que l’application déclenche quand une propriété ou un dossier status modifié, y compris le nom d’affichage. Le fournisseur de cloud ne doit pas s’attendre à ce que GetKnownFolderSyncInfoSource soit appelé immédiatement après le déclenchement de l’événement. Explorateur de fichiers ne demande qu’un nouvel objet en fonction des besoins.
Méthodes
GetKnownFolderSyncInfo() |
GetKnownFolderSyncInfo est appelé par Explorateur de fichiers chaque fois qu’il a besoin d’obtenir la dernière status de synchronisation de dossiers connus à partir du fournisseur de cloud. |
Événements
KnownFolderSyncInfoChanged |
Événement déclenché lorsque le status de synchronisation d’un dossier connu change. |