Similaire à cette question Je voudrais désactiver sélectivement certaines des superpositions d'icônes Shell de OneDrive. Le registre (HKLM \SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers ), cependant, ne sont que des listes : OneDrive1, OneDrive2, OneDrive3, OneDrive4, OneDrive5. Quelle est la signification de chacun de ces éléments ?
Réponses
Trop de publicités?Après quelques manipulations, voici les résultats :
- Pas de synchronisation (x rouge)
- Synchronisé - Partagé
- Synchronisation - Partagé
- Synchronisé
- Synchronisation
Pour les curieux, le registre contient le CLSID de chacune des clés ci-dessus. Vous pouvez ensuite charger cet objet COM et demander où se trouve l'icône (fichier plus numéro d'image). Vous pouvez ensuite chercher dans le fichier pour déterminer l'icône (en utilisant par exemple IconsExtract de Nirsoft). Voici un exemple de code provenant d'un projet VS2013 :
#include "stdafx.h"
#include <Shlobj.h>
#include <iostream>
#include <tchar.h>
int _tmain(int argc, _TCHAR* argv[]){
LPCOLESTR str_clsid = L"{FB314EE0-A251-47B7-93E1-CDD82E34AF8B}";
HRESULT hr;
CLSID clsid;
IShellIconOverlayIdentifier* pISIOI;
DWORD dwFlags;
int Index;
wchar_t* wszIconFile = new wchar_t[128];
hr = CLSIDFromString(str_clsid, (LPCLSID)&clsid);
CoInitialize(NULL);
hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, IID_IShellIconOverlayIdentifier, (void**)&pISIOI);
hr = pISIOI->GetOverlayInfo(wszIconFile, 128, &Index, &dwFlags);
std::wcout << L"Icon Path:\n " << wszIconFile << L" " << Index << std::endl;
pISIOI->Release();
CoUninitialize();
return 0;
}
Voici une mise à jour (les descriptions sont tirées des CLSID de l'éditeur de registre) :
- OneDrive1 - Classe ErrorOverlayHandler
- OneDrive2 - Classe SharedOverlayHandler
- OneDrive3 - Classe UpToDateCloudOverlayHandler
- OneDrive4 - Classe UpToDatePinnedOverlayHandler
- OneDrive5 - Classe SyncingOverlayHandler
- OneDrive6 - Classe ReadOnlyOverlayHandler
- OneDrive7 - Classe UpToDateUnpinnedOverlayHandler
De plus, il y a 3 CLSIDs qui semblent être un héritage :
- {1BF42E4C-4AF4-4CFD-A1A0-CF2960B8F63E} - UpToDateOverlayHandler2 Classe
- {7AFDFDDB-F914-11E4-8377-6C3BE50D980C} - Classe ErrorOverlayHandler2
- {82CA8DE3-01AD-4CEA-9D75-BE4C51810A9E} - Classe SyncingOverlayHandler2
Quelqu'un ayant plus d'expérience/connaissance peut-il confirmer ou corriger cela ?