Zuordnungsarrays
Ein Zuordnungsarray ist eine sortierte Liste von Registrierungsspeicherorten, die zum Speichern von Informationen zu einem Elementtyp verwendet werden, einschließlich Handlern, Verben und anderen Attributen wie dem Symbol und anzeigenamen des Typs. Die Shell verwendet Zuordnungsarrays, um einen vordefinierten Satz von Registrierungsspeicherorten abzufragen, die Möglicherweise Informationen zu einem Shellelement enthalten.
Dieses Thema ist wie folgt organisiert:
- Informationen zu Zuordnungsarrays
- Abfragen von Zuordnungsarrays
- Arbeiten mit Zuordnungsarrays für eine bestimmte Shell-Datenquelle
- Weitere Ressourcen
- Zugehörige Themen
Informationen zu Zuordnungsarrays
Ein Zuordnungsarray ist eine sortierte Liste von Registrierungsspeicherorten, die Informationen zu einem Elementtyp enthalten, einschließlich Handlern, Verben und anderen Attributen wie dem Symbol und anzeigenamen des Typs. Diese Informationen zum Elementtyp können mit unterschiedlichen Spezifitätsgraden registriert werden. Sie können beispielsweise ein Verb registrieren, das nur für einen bestimmten Dateityp (z. B. .jpg) oder für alle Elemente mit demselben System.Kind (z. B. System.kind = bild) oder für alle Elemente angezeigt wird.
Die Shell verwendet Zuordnungsarrays, um einen vordefinierten Satz von Registrierungsspeicherorten abzufragen, die möglicherweise Informationen zu dem Element enthalten. Die Zuordnungsarray-APIs können verwendet werden, um aus dem Registrierungsunterschlüssel einen einzelnen Wert abzurufen, der die angeforderten Informationen enthält, wobei dieser Wert vom ersten Eintrag in dem Array stammt, das ihn bereitstellt. Der Standardsymbolwert wird beispielsweise auf diese Weise abgerufen. Das Zuordnungsarray kann auch verwendet werden, um einen Satz von Werten abzurufen, die in den Registrierungsunterschlüsseln gespeichert sind. Beispielsweise wird die Liste der Verben aus den Verben erstellt, die unter allen Unterschlüsseln registriert sind.
Nachdem die Shell einen vordefinierten Satz von Registrierungsspeicherorten nach Informationen zu einem Shellelement abgefragt hat, fügt sie die Registrierungsspeicherorte in ein Array ein, und zwar vom spezifischsten Speicherort bis zum allgemeinsten.
Da Zuordnungsarrays sortierte Listen sind, bieten sie Anwendungsentwicklern einen Mechanismus zum Hinzufügen von Informationen zur Registrierung, die für einen bestimmten Elementtyp zurückgegeben werden. Ebenso ermöglichen Zuordnungsarrays Anwendungsentwicklern das Hinzufügen von Informationen zur Registrierung für eine bestimmte Gruppe von Elementen, wenn diese Elemente an einem allgemeineren Speicherort registriert werden. Diese Logik informiert Sie über den am besten geeigneten Speicherort in der Registrierung, um Informationen zu Shellelementen zu speichern.
Auf einem Windows-Standardsystem weist eine .jpg-Datei das folgende Zuordnungsarray auf:
- HKEY_CLASSES_ROOT\jpgfile
- HKEY_CLASSES_ROOT\SystemFileAssociations\.jpg
- HKEY_CLASSES_ROOT\Bild
- HKEY_CLASSES_ROOT\*
- HKEY_CLASSES_ROOT\AllFilesystemObjects
Informationen zum Registrieren von Zuordnungsarrays finden Sie unter Anwendungsregistrierung.
Abfragen von Zuordnungsarrays
Es gibt Shell-APIs zum Abrufen von Informationen aus einer Reihe von Registrierungsunterschlüsseln, vom spezifischsten Registrierungsunterschlüssel bis zu einer Übermenge der Informationen über alle Registrierungsunterschlüssel hinweg.
Die häufigste Verwendung eines Zuordnungsarrays besteht darin, einen einzelnen Wert abzufragen, den die Shell vom spezifischsten Element im Array zurückgibt, das die angeforderten Informationen enthält. Das folgende Codebeispiel zeigt, wie dies geht.
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();
}
Die folgenden APIs können zum Abfragen eines Zuordnungsarrays oder zum Erstellen eines Zuordnungsarray-IQueryAssociations-Objekts verwendet werden, das abgefragt werden kann:
- AssocCreate (vor Windows Vista)
- AssocCreateForClasses
- AssocQueryString
Arbeiten mit Zuordnungsarrays für eine bestimmte Shell-Datenquelle
Jede Shell-Datenquelle definiert das Zuordnungsarray für ihre Elemente. Das Definieren eines Zuordnungsarrays ist in der Regel eine Funktion des Typs des Elements. Shell-Datenquellenimplementierer sollten die Zuordnungsarrays definieren und dokumentieren, damit Anwendungen das Verhalten dieser Typen erweitern können, z. B. zum Registrieren von Verben oder anderen Informationen. Anwendungen können das Verhalten von Elementen basierend auf dem Hinzufügen von Daten zu den Zuordnungsarray-Unterschlüsseln erweitern, z. B. dem Hinzufügen von Verben für Elemente.
Die Dateisystemdatenquelle erstellt ein Zuordnungsarray für Dateien, die auf den folgenden Registrierungsunterschlüsseln und speziellen ProgIDs basieren:
Wenn die Datei über eine registrierte ProgID verfügt, wird HKEY_CLASSES_ROOT\ProgID verwendet. Andernfalls wird HKEY_CLASSES_ROOT\Unbekannt verwendet.
Die Dateinamenerweiterung wird unter HKEY_CLASSES_ROOT\Unterschlüssel SystemFileAssociations.fileExtension\ registriert.
Spezielle ProgIDs sind in der folgenden Tabelle aufgeführt.
Spezielle ProgID BESCHREIBUNG HKEY_CLASSES_ROOT\* Alle Dateien (nicht Ordner) HKEY_CLASSES_ROOT\AllFilesystemObjects Dateien und Dateisystemordner HKEY_CLASSES_ROOT\Verzeichnis Dateisystemordner HKEY_CLASSES_ROOT\Ordner Shellcontainer
Shell-Datenquellenzuordnungsarrays
Die folgende Liste stellt einige der Shell-Datenspeicherzuordnungsarrays dar, die für die in diesem Thema beschriebenen Zwecke verwendet werden können:
- HKEY_CLASSES_ROOT\*
- HKEY_CLASSES_ROOT\AllFilesystemObjects
- HKEY_CLASSES_ROOT\Kind.Document
- HKEY_CLASSES_ROOT\Ergebnisse
- HKEY_CLASSES_ROOT\SystemFileAssociations\.docx
- HKEY_CLASSES_ROOT\Word. Document.12
Shell-Datenquellenzuordnungsarrays, die für DBFolder (ein Shell-Datenspeicher, der Elemente in Suchergebnissen und abfragebasierten Sichten darstellt) verwendet werden können, sind wie folgt:
- Laufwerke
- Netzwerk
- RegItems
- Beispiele:
- ContentView
- Verben
Andere gängige Zuordnungsarrays sind Ordner und Drucker.
Zusätzliche Ressourcen
- Informationen zum Erstellen eines Shell-Datenspeichers finden Sie unter Implementieren der Schnittstellen für grundlegende Ordnerobjekte.
Zugehörige Themen