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. Prostředí používá pole přidružení k dotazování předdefinované sady umístění registru, která mohou obsahovat informace o položce prostředí.

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 příkaz, který se zobrazí jenom pro konkrétní 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.

Prostředí používá pole přidružení 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.

Po dotazování předdefinované sady umístění registru pro informace o položce prostředí umístí umístění registru do pole v pořadí od nejvíce specifické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 položkách prostředí.

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

  • HKEY_CLASSES_ROOT\jpgfile
  • \ .jpgHKEY_CLASSES_ROOT\SystemFileAssociations
  • obrázku HKEY_CLASSES_ROOT\
  • HKEY_CLASSES_ROOT\*
  • HKEY_CLASSES_ROOT\AllFilesystemObjects

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

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

Existují rozhraní API prostředí 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í zdroj dat prostředí

Každý zdroj dat prostředí definuje pole přidružení pro své položky. Definování pole přidružení je obvykle funkcí typu položky. Implementátory zdroje dat prostředí by měly 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_ROOT\AllFilesystemObjects Soubory a složky systému souborů
    adresáře HKEY_CLASSES_ROOT\ Složky systému souborů
    složky HKEY_CLASSES_ROOT\ Kontejnery prostředí

     

Pole přidružení zdroje dat prostředí

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

  • HKEY_CLASSES_ROOT\*
  • HKEY_CLASSES_ROOT\AllFilesystemObjects
  • HKEY_CLASSES_ROOT\Kind.Document
  • HKEY_CLASSES_ROOT\výsledky
  • \ .docxHKEY_CLASSES_ROOT\SystemFileAssociations
  • HKEY_CLASSES_ROOT\Word.Document.12

Pole přidružení zdroje dat prostředí, která lze použít pro DBFolder (úložiště dat prostředí, které představuje položky ve výsledcích hledání a zobrazeních založených 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