Udostępnij za pośrednictwem


Tablice skojarzeń

Tablica skojarzeń jest uporządkowaną listą lokalizacji rejestru używanych do przechowywania informacji o typie elementu, w tym procedur obsługi, czasowników i innych atrybutów, takich jak ikona i nazwa wyświetlana typu. Powłoka używa tablic skojarzeń do wykonywania zapytań wstępnie zdefiniowanych zestawów lokalizacji rejestru, które mogą zawierać informacje o elemencie powłoki.

Ten temat jest zorganizowany w następujący sposób:

Informacje o tablicach skojarzeń

Tablica skojarzeń to uporządkowana lista lokalizacji rejestru, które zawierają informacje o typie elementu, w tym programy obsługi, czasowniki i inne atrybuty, takie jak ikona i nazwa wyświetlana typu. Te informacje o typie elementu można zarejestrować na różnych poziomach specyfiki. Można na przykład zarejestrować czasownik, który będzie wyświetlany tylko dla określonego typu pliku (na przykład .jpg) lub dla wszystkich elementów z tym samym elementem System.Kind (na przykład System.kind = obraz) lub dla wszystkich elementów.

Powłoka używa tablic skojarzeń do wykonywania zapytań wstępnie zdefiniowanych zestawów lokalizacji rejestru, które mogą potencjalnie zawierać informacje o elemencie. Interfejsy API tablicy skojarzeń mogą służyć do pobierania z podklucza rejestru pojedynczej wartości zawierającej żądane informacje, przy użyciu tej wartości pochodzącej z pierwszego wpisu w tablicy, która ją udostępnia. Na przykład domyślna wartość ikony jest pobierana w ten sposób. Tablica skojarzeń może również służyć do pobierania zestawu wartości przechowywanych w podkluczach rejestru. Na przykład lista czasowników jest tworzona na podstawie tych czasowników zarejestrowanych we wszystkich podkluczach.

Gdy powłoka wysyła zapytanie do wstępnie zdefiniowanego zestawu lokalizacji rejestru w celu uzyskania informacji o elemencie powłoki, umieszcza lokalizacje rejestru w tablicy w kolejności od najbardziej określonej lokalizacji do najbardziej ogólnej.

Ponieważ tablice skojarzeń są uporządkowanymi listami, zapewniają deweloperom aplikacji mechanizm dodawania informacji do rejestru, który zostanie zwrócony dla określonego typu elementu. Podobnie tablice skojarzeń umożliwiają deweloperom aplikacji dodawanie informacji do rejestru dla określonej grupy elementów, gdy te elementy są zarejestrowane w bardziej ogólnej lokalizacji. Ta logika informuje o decyzji o najbardziej odpowiedniej lokalizacji w rejestrze w celu przechowywania informacji o elementach powłoki.

W domyślnym systemie Windows plik .jpg ma następującą tablicę skojarzeń:

  • HKEY_CLASSES_ROOT\ jpgfile
  • HKEY_CLASSES_ROOT\systemFileAssociations\.jpg
  • obrazu HKEY_CLASSES_ROOT\
  • HKEY_CLASSES_ROOT\*
  • HKEY_CLASSES_ROOT\AllFilesystemObjects

Aby uzyskać informacje na temat rejestrowania tablic skojarzeń, zobacz application registration.

Wykonywanie zapytań względem tablic skojarzeń

Istnieją interfejsy API powłoki do pobierania informacji z zakresu podkluczów rejestru, z najbardziej określonego podklucza rejestru do nadzbioru informacji we wszystkich podkluczach rejestru.

Najczęstszym zastosowaniem tablicy skojarzeń jest zapytanie o pojedynczą wartość zwracaną przez powłokę z najbardziej określonego elementu w tablicy zawierającej żądane informacje. Poniższy przykład kodu pokazuje, jak to zrobić.

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();
}

Następujące interfejsy API mogą służyć do wykonywania zapytań względem tablicy skojarzeń lub konstruowania tablicy skojarzeń IQueryAssociations obiektu, do którego można wykonywać zapytania:

Praca z tablicami skojarzeń dla określonego źródła danych powłoki

Każde źródło danych powłoki definiuje tablicę skojarzeń dla swoich elementów. Definiowanie tablicy skojarzeń jest zwykle funkcją typu elementu. Implementatory źródła danych powłoki powinny definiować i dokumentować tablice skojarzeń, aby umożliwić aplikacjom rozszerzanie zachowania tych typów, takich jak rejestrowanie czasowników lub innych informacji. Aplikacje mogą rozszerzać zachowanie elementów na podstawie dodawania danych do podklucze tablicy skojarzeń, takich jak dodawanie czasowników dla elementów.

Źródło danych systemu plików tworzy tablicę skojarzeń dla plików w oparciu o następujące podklucze rejestru i specjalne identyfikatory ProgID:

  • Jeśli plik ma zarejestrowany identyfikator ProgID, jest używany HKEY_CLASSES_ROOT\ProgID. W przeciwnym razie jest używana HKEY_CLASSES_ROOT\Nieznany.

  • Rozszerzenie nazwy pliku jest zarejestrowane w obszarze HKEY_CLASSES_ROOT\SystemFileAssociations\.fileExtension podklucza.

  • Specjalne identyfikatory ProgID są wyświetlane w poniższej tabeli.

    Identyfikator progu specjalnego Opis
    HKEY_CLASSES_ROOT\* Wszystkie pliki (inne niż foldery)
    HKEY_CLASSES_ROOT\AllFilesystemObjects Pliki i foldery systemu plików
    HKEY_CLASSES_ROOT\Directory Foldery systemu plików
    folderu HKEY_CLASSES_ROOT\ Kontenery powłoki

     

Tablice skojarzeń źródła danych powłoki

Poniższa lista reprezentuje niektóre tablice skojarzeń magazynu danych powłoki, które mogą być używane do celów opisanych w tym temacie:

  • HKEY_CLASSES_ROOT\*
  • HKEY_CLASSES_ROOT\AllFilesystemObjects
  • HKEY_CLASSES_ROOT\Kind.Document
  • HKEY_CLASSES_ROOT\wyniki
  • HKEY_CLASSES_ROOT\systemFileAssociations\.docx
  • HKEY_CLASSES_ROOT\Word.Document.12

Macierze skojarzeń źródła danych powłoki, które mogą być używane dla folderu DBFolder (magazyn danych powłoki reprezentujący elementy w wynikach wyszukiwania i widokach opartych na zapytaniach) są następujące:

  • Dyski
  • Sieć
  • RegItems
  • Przykłady:
    • Widok zawartości
    • Czasowniki

Inne typowe tablice skojarzeń obejmują foldery i drukarki.

Dodatkowe zasoby

rejestracja aplikacji

typy plików

jak działają skojarzenia plików

widoku zawartości według typu pliku lub rodzaju

weryfikatora typu pliku

Programy obsługi typów plików

identyfikatory programowe

postrzegane typy