Sdílet prostřednictvím


Pole přidružení

Pole přidružení je uspořádaný seznam umístění registru sloužících k ukládání informací o typu položky, včetně obslužných rutin, sloves a dalších atributů, jako je ikona a zobrazovaný název typu. Pomocí Shell polí přidružení se dotazuje předdefinované sady umístění registru, která mohou obsahovat informace o Shell položce.

Toto téma je uspořádané takto:

O polích přidružení

Pole přidružení je uspořádaný seznam umístění registru, která obsahují informace o typu položky, včetně obslužných rutin, sloves a dalších atributů, jako je ikona a zobrazovaný název typu. Tyto informace o typu položky lze zaregistrovat na různých úrovních specificity. Můžete například zaregistrovat verb , která se zobrazí jenom pro určitý typ souboru (například .jpg), nebo pro všechny položky se stejným typem System.Kind (například System.kind = obrázek) nebo pro všechny položky.

Pole Shell přidružení se používají k dotazování předdefinované sady umístění registru, která mohou potenciálně obsahovat informace o položce. Rozhraní API pole přidružení lze použít k načtení z podklíče registru a jedné hodnoty, která obsahuje požadované informace, s danou hodnotou pocházející z první položky v matici, která ji poskytuje. Tímto způsobem se například načte výchozí hodnota ikony. Pole přidružení lze použít také k načtení sady hodnot uložených v podklíčích registru. Například seznam sloves je sestaven z těchto sloves, které jsou registrovány ve všech podklíčích.

Shell Po dotazování předdefinované sady umístění registru pro informace o Shell položce umístí umístění registru do pole v pořadí od nejvíce konkrétního umístění po nejobecnější.

Vzhledem k tomu, že pole přidružení jsou seřazená seznamy, poskytují vývojářům aplikací mechanismus pro přidání informací do registru, který se vrátí pro určitý typ položky. Podobně asociační pole umožňují vývojářům aplikací přidávat informace do registru pro konkrétní skupinu položek, když jsou tyto položky registrovány v obecnějším umístění. Tato logika informuje vaše rozhodnutí o nejvhodnějším umístění v registru pro ukládání informací o Shell položkách.

Ve výchozím systému Windows má soubor .jpg následující pole přidružení:

  • \ HKEY_CLASSES_ROOTjpgfile
  • \ HKEY_CLASSES_ROOT\SystemFileAssociations
  • obrázku HKEY_CLASSES_ROOT\
  • HKEY_CLASSES_ROOT\*
  • \ HKEY_CLASSES_ROOTAllFilesystemObjects

Informace o registraci polí přidružení naleznete v tématu Registrace aplikace.

Dotazování polí přidružení

Shell Existují rozhraní API pro načtení informací z rozsahu podklíčů registru, od nejvýraznějšího podklíče registru až po nadmnožinu informací napříč všemi podklíči registru.

Nejběžnějším použitím pole přidružení je dotazování na jednu hodnotu, kterou Shell vrátí z nejvýraznějšího prvku v poli, který obsahuje požadované informace. Následující příklad kódu ukazuje, jak to udělat.

IQueryAssociations *pqa;

// pShellItem is assumed to be an existing IShellItem object.
hr = pShellItem->BindToHandler(NULL, BHID_AssociationArray, IID_PPV_ARGS(&pqa));
if (SUCCEEDED(hr))
{
    wchar_t szValue[256];
    DWORD cbValue = sizeof(szValue);      // Count of bytes in the array

    hr = pqa->GetData(0, ASSOCDATA_VALUE, L"InfoTip", szValue, &cbValue);
    if (SUCCEEDED(hr))
    {
        // The "InfoTip" value is used to compute the infotip string from
        // properties of an item.
    }
    pqa->Release();
}

Následující rozhraní API lze použít k dotazování na pole přidružení nebo k vytvoření pole přidružení IQueryAssociations objektu, který lze dotazovat:

  • AssocCreate (před windows Vista)
  • AssocCreateForClasses
  • AssocQueryString

Práce s poli přidružení pro konkrétní Shell zdroj dat

Každý Shell zdroj dat definuje pole přidružení pro své položky. Definování pole přidružení je obvykle funkcí typu položky. Shell Implementátoři zdrojů dat by měli definovat a zdokumentovat pole přidružení, aby aplikace mohly rozšířit chování těchto typů, například pro registraci sloves nebo jiných informací. Aplikace můžou rozšířit chování položek na základě přidání dat do podklíčů pole přidružení, například přidání sloves pro položky.

Zdroj dat systému souborů vytvoří pole přidružení pro soubory na základě následujících podklíčů registru a speciálních identifikátorů ProgID:

  • Pokud je v souboru zaregistrované ID progID, použije seHKEY_CLASSES_ROOT\ ProgID. V opačném případě se použije neznámýHKEY_CLASSES_ROOT\.

  • Přípona názvu souboru je zaregistrovaná v podklíči HKEY_CLASSES_ROOT\SystemFileAssociations\.fileExtension.

  • Speciální identifikátory PROGID jsou uvedeny v následující tabulce.

    Speciální progID Popis
    HKEY_CLASSES_ROOT\* Všechny soubory (jiné než složky)
    \ HKEY_CLASSES_ROOTAllFilesystemObjects Soubory a složky systému souborů
    adresáře HKEY_CLASSES_ROOT\ Složky systému souborů
    složky HKEY_CLASSES_ROOT\ Shell kontejnery

     

Shell Pole přidružení zdroje dat

Následující seznam představuje některá Shell pole přidružení úložiště dat, která lze použít pro účely popsané v tomto tématu:

  • HKEY_CLASSES_ROOT\*
  • \ HKEY_CLASSES_ROOTAllFilesystemObjects
  • \ HKEY_CLASSES_ROOTKind.Document
  • HKEY_CLASSES_ROOT\výsledky
  • \ HKEY_CLASSES_ROOT\SystemFileAssociations
  • \ HKEY_CLASSES_ROOTWord.Document.12

Shell Pole přidružení zdrojů dat, která lze použít pro DBFolder ( Shell úložiště dat představující položky ve výsledcích hledání a zobrazení založená na dotazech), jsou následující:

  • Žene
  • Síť
  • RegItems
  • Příklady:
    • ContentView
    • Slovesa

Další běžná pole přidružení zahrnují složky a tiskárny.

Další zdroje informací

registrace aplikace

typy souborů

fungování přidružení souborů

zobrazení obsahu podle typu souboru nebo typu

typ souboru

obslužné rutiny typu souboru

programových identifikátorů

vnímané typy