SHAddToRecentDocs, fonction (shlobj_core.h)
Avertit le système qu’un élément a été accédé, afin de suivre les éléments utilisés le plus récemment et le plus fréquemment. Cette fonction peut également être utilisée pour effacer toutes les données d’utilisation.
Syntaxe
void SHAddToRecentDocs(
UINT uFlags,
[in, optional] LPCVOID pv
);
Paramètres
uFlags
Type : UINT
Valeur de l’énumération SHARD qui indique la forme des informations pointées par le paramètre pv .
[in, optional] pv
Type : LPCVOID
Pointeur vers les données qui identifie l’élément auquel l’accès a été effectué. L’élément peut être spécifié dans ce paramètre sous l’une des formes suivantes :
- Chaîne terminée par null qui contient le chemin d’accès et le nom de fichier de l’élément.
- PIDL qui identifie l’objet de fichier de l’élément.
- Windows 7 et versions ultérieures uniquement. Structure SHARDAPPIDINFO, SHARDAPPIDINFOIDLIST ou SHARDAPPIDINFOLINK qui identifie l’élément via un AppUserModelID. Pour plus d’informations, consultez ID de modèle utilisateur d’application (AppUserModelIDs).
- Windows 7 et versions ultérieures uniquement. Objet IShellLink qui identifie l’élément via un raccourci.
Définissez ce paramètre sur NULL pour effacer toutes les données d’utilisation sur tous les éléments.
Valeur de retour
None
Remarques
Les statistiques d’utilisation collectées par le biais des appels à cette méthode sont utilisées pour déterminer les listes d’éléments consultés le plus récemment et le plus fréquemment. Ces listes sont affichées dans le menu Démarrer et, dans Windows 7 et versions ultérieures, dans la liste de raccourcis d’une application.
Lorsque cette méthode est appelée, elle affecte les domaines suivants :
- Mises à jour les listes Récents et Fréquents pour la liste de raccourcis de l’application associée.
- Ajoute un raccourci au dossier Récent de l’utilisateur (FOLDERID_Recent, CSIDL_RECENT). Cela se reflète dans le menu Mes documents récents (Windows XP) et Éléments récents (Windows Vista et versions ultérieures) du menu Démarrer .
- Ajoute un raccourci au sous-menu Documents du menu Démarrer classique. (Notez que l’option de menu Démarrer classique n’est pas disponible dans Windows 7 et versions ultérieures.)
Dans certains cas, notamment lorsqu’un utilisateur ouvre un élément via Windows Explorer ou utilise la boîte de dialogue de fichier commune pour ouvrir, enregistrer ou créer un fichier, l’interpréteur de commandes appelle SHAddToRecentDocs au nom de l’application. Une application qui dispose d’une interface utilisateur personnalisée pour sélectionner des éléments doit appeler SHAddToRecentDocs explicitement pour garantir des statistiques précises. Les appels dupliqués étant pris en compte par le système, il n’y a aucun risque de déformation des données.
Les fichiers exécutables (.exe) sont filtrés à partir de la liste des documents récemment utilisés dans Windows XP et les versions ultérieures. Bien que SHAddToRecentDocs accepte le chemin d’accès d’un fichier exécutable, ce fichier n’apparaîtra pas dans la liste Éléments récents .
Les dossiers sont également acceptés par SHAddToRecentDocs, mais ils apparaissent uniquement dans la liste de raccourcis pour le bouton de barre des tâches Windows Explorer. Les dossiers n’apparaissent pas dans la liste de raccourcis d’une autre application.
Dans certains cas, SHAddToRecentDocs tente d’inscrire une application pour gérer un type de fichier qu’elle n’est pas inscrite pour gérer. Cela se produit dans les circonstances suivantes :
- Une application appelle explicitement SHAddToRecentDocs avec un type de fichier qu’elle n’est pas inscrite à gérer. Cela s’applique également aux appels effectués à SHAddToRecentDocs par la boîte de dialogue de fichier commune pour le compte de l’application, mais uniquement lorsque la boîte de dialogue est utilisée pour ouvrir un fichier, et non lorsqu’elle est utilisée pour en enregistrer un.
- L’utilisateur supprime un fichier d’un type que l’application n’est pas inscrite à gérer sur le bouton de la barre des tâches de l’application.
Un ensemble de conditions doit être respecté pour que l’inscription soit effectuée avec succès :
- L’application doit être inscrite sous HKEY_CLASSES_ROOT\Applications.
- Cette inscription ne peut pas inclure la valeur NoOpenWith. Pour plus d’informations sur NoOpenWith, consultez Types de fichiers.
- Cette inscription ne peut pas fournir de données sous une sous-clé SupportedTypes . Pour plus d’informations sur la sous-clé SupportedTypes, consultez Types de fichiers.
-
Le fichier exécutable de l’application ne peut pas être répertorié dans la valeur KillList trouvée ici :
HKEY_LOCAL_MACHINE Software Microsoft Windows CurrentVersion Explorer FileAssociation KillList
Note Les applications tierces ne doivent pas modifier la valeur KillList. Il doit être considéré comme en lecture seule. -
L’inscription HKEY_CLASSES_ROOT\Applications de l’application doit avoir un ensemble de verbes par défaut définis sous un
HKEY_CLASSES_ROOT\Applications\ExampleApp.exesous-clé \shell .
Si SHAddToRecentDocs tente l’inscription à la suite d’un glisser-déplacer sur le bouton de la barre des tâches, la sous-clé de l’interpréteur de commandes est créée si elle n’existe pas déjà, tant que l’inscription existante de l’application ne contient pas de valeur NoOpenWith et que l’exécutable de l’application n’est pas répertorié dans la valeur KillList.
Suppression des appels à SHAddToRecentDocs
Dans les versions de Windows antérieures à Windows 7, un type de fichier peut définir l’indicateur FTA_NoRecentDocs pour empêcher l’ajout de ce type de fichier au dossier Récent . Ce mécanisme est également pris en charge sous Windows 7 et versions ultérieures. Pour plus d’informations, consultez Types de fichiers.SHAddToRecentDocs suit les statistiques d’utilisation des documents via les verbes appelés pour accéder à ces documents. Les verbes fournis par les gestionnaires IContextMenu inscrits sont suivis, ces éléments s’affichent dans Mes documents récents (Windows XP) et Éléments récents (Windows Vista). Dans Windows 7, les dossiers parents des documents s’affichent dans la liste de raccourcis pour le bouton de barre des tâches Windows Explorer. Toutefois, les documents accessibles via ces verbes IContextMenu n’apparaissent pas dans l’application Jump Listes. Pour que ces éléments apparaissent dans la liste de raccourcis d’une application, une application doit appeler SHAddToRecentDocs explicitement.
Avant Windows 7, seul le open
verbe entrait un appel à SHAddToRecentDocs. Dans Windows 7 et versions ultérieures, d’autres verbes peuvent également générer des statistiques d’utilisation. Ces informations sont utilisées pour rendre les destinations d’une liste de raccourcis plus complètes et plus précises.
Toutefois, certaines classes d’inscriptions d’association de types de fichiers ou des implémentations IContextMenu individuelles ne sont pas appropriées pour ce type de suivi. Le point de suivi de l’utilisation consiste à générer une liste d’éléments auxquels l’utilisateur est susceptible de vouloir à nouveau accéder. Si un verbe particulier (delete
pour instance) est appelé par nature sur un élément auquel l’utilisateur n’aura plus accès, ou s’il s’agit d’une action secondaire telle qu’une analyse antivirus sur un fichier, ce verbe n’est pas approprié pour le suivi. Les classes de type de fichier doivent se supprimer de ce suivi via l’entrée de Registre NoRecentDocs. NoRecentDocs est de type REG_SZ et n’a aucune donnée associée. Sa présence est tout ce qui est nécessaire pour empêcher l’appel à SHAddToRecentDocs.
Par exemple, les extensions de menu contextuel et les verbes statiques inscrits sous HKEY_CLASSES_ROOT dans des classes telles que « * », « AllFileSystemObjects » ou « Dossier » ne doivent pas être suivis. Dans de tels cas, l’entrée NoRecentDocs est ajoutée à la racine de la clé de classe, comme illustré ici, pour supprimer le suivi des documents lancés via n’importe quel verbe ou extension inscrit à cette classe :
HKEY_CLASSES_ROOT AllFileSystemObjects NoRecentDocs
L’entrée NoRecentDocs est affectée par défaut aux *sous-clés de classe , AllFileSystemObjects, Folder, Directory et DesktopBackground .
Les implémentations IContextMenu individuelles peuvent refuser le suivi en ajoutant une sous-clé NoRecentDocs à l’inscription de son objet COM (Component Object Model), dans sa sous-clé shellex , comme illustré ici :
HKEY_CLASSES_ROOT CLSID {093C7AAB-5E72-454f-A91D-CA1BC991FCEC} shellex NoRecentDocs
Cette sous-clé n’est pas présente par défaut sur une implémentation IContextMenu .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | shlobj_core.h (inclure Shlobj.h) |
Bibliothèque | Shell32.lib |
DLL | Shell32.dll (version 4.0 ou ultérieure) |
Ensemble d’API | ext-ms-win-shell-shell32-l1-2-2 (introduit dans Windows 10, version 10.0.14393) |