Qual ícone / status do OneDrive é para qual nome do Identificador de sobreposição de ícone?

3

Semelhante a esta questão , Gostaria de desativar seletivamente algumas das sobreposições de ícone do OneDrive. O registro (HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ ShellIconOverlayIdentifiers), no entanto, apenas lista: OneDrive1, OneDrive2, OneDrive3, OneDrive4, OneDrive5. Qual é o significado de cada um deles?

    
por BeingQuisitive 09.02.2016 / 17:24

1 resposta

3

Depois de algumas cutucadas, aqui estão os resultados:

  1. Não está sincronizando (vermelho x)
  2. Sincronizado - Compartilhado
  3. Sincronização - Compartilhada
  4. sincronizado
  5. Sincronizando

Para os curiosos, o registro tem o CLSID de cada uma das chaves acima. Você pode então carregar esse objeto COM e perguntar onde o ícone está localizado (arquivo mais número de imagem). Então você pode procurar no arquivo para determinar o ícone (usando, por exemplo, o IconsExtract de Nirsoft). Aqui está um exemplo de código de um projeto 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;
    }
    
por 10.02.2016 / 02:48