J'ai créé une instance de IExplorerBrowser dans mon code pour créer une vue d'E/S personnalisée dans l'une de mes boîtes de dialogue. J'ai implémenté les interfaces IServiceProvider et ICommDlgBrowser dans ma classe hôte. J'utilise la méthode IExplorerBrowser :: BrowseToIDList pour remplir la vue.Comment puis-je filtrer par type de fichier dans un IExplorerBrowser dans les bibliothèques Windows 7?
Je souhaite filtrer les types de fichiers affichés (par exemple, uniquement les fichiers PNG). Si j'appelle BrowseToIDList avec FOLDERID_Pictures (c'est-à-dire "Mes images"), je peux utiliser la méthode ICommDlgBrowser :: IncludeObject ou IFolderFilter :: ShouldShow pour restreindre les fichiers que j'autorise à afficher. Toutefois, si je consulte la bibliothèque d'images sous Windows 7 (FOLDERID_PicturesLibrary), ICommDlgBrowser :: IncludeObject et IFolderFilter :: ShouldShow ne sont jamais appelés.
Y a-t-il des limites au filtrage des fichiers dans les bibliothèques sur Win7 dont je ne suis pas conscient? Peut-être qu'il me manque une interface ou peut-être que j'ai spécifié le mauvais drapeau quelque part.
Toutes les idées seraient grandement appréciées.
[Cela m'a pris un certain temps] (https://msdn.microsoft.com/en-us/library/windows/desktop/bb761909%28v=vs.85%29.aspx): "Notez que le le client ne reçoit pas un appel à 'ICommDlgBrowser :: IncludeObject' si un filtre de dossier a été défini sur le navigateur par un appel à' IFolderFilterSite :: SetFilter'. " –