Zuordnungs Arrays
Ein Zuordnungs Array ist eine geordnete Liste von Registrierungsstellen, die zum Speichern von Informationen zu einem Elementtyp verwendet werden, einschließlich Handlern, Verben und anderen Attributen, wie z. b. Symbol und Anzeige Name des Typs. Die Shell verwendet Zuordnungs Arrays, um einen vordefinierten Satz von Registrierungs Speicherorten abzufragen, die möglicherweise Informationen über ein shellelement enthalten.
Dieses Thema ist wie folgt organisiert:
- Informationen zu Zuordnungs Arrays
- Abfragen von Zuordnungs Arrays
- Arbeiten mit Zuordnungs Arrays für eine bestimmte shelldatenquelle
- Weitere Ressourcen
- Zugehörige Themen
Informationen zu Zuordnungs Arrays
Ein Zuordnungs Array ist eine geordnete Liste von Registrierungsstellen, die Informationen zu einem Elementtyp enthalten, einschließlich Handlern, Verben und anderen Attributen, wie z. b. Symbol und Anzeige Name des Typs. Diese Informationen zum Elementtyp können auf unterschiedlichen Genauigkeits Graden registriert werden. Beispielsweise können Sie ein Verb registrieren, das nur für einen bestimmten Dateityp (z. b.. jpg) oder für alle Elemente mit dem gleichen System. Kind (z. b. System. Kind = Bild) oder für alle Elemente angezeigt wird.
Die Shell verwendet Zuordnungs Arrays, um einen vordefinierten Satz von Registrierungs Speicherorten abzufragen, die möglicherweise Informationen über das Element enthalten. Die Association Array-APIs können verwendet werden, um aus dem Registrierungs Unterschlüssel einen einzelnen Wert abzurufen, der die angeforderten Informationen enthält. dieser Wert stammt aus dem ersten Eintrag im Array, der ihn bereitstellt. Beispielsweise wird der Standard Symbolwert auf diese Weise abgerufen. Das Association-Array kann auch verwendet werden, um einen Satz von Werten abzurufen, die in den Registrierungs unter Schlüsseln gespeichert werden. Beispielsweise wird die Liste der Verben aus den Verben erstellt, die unter allen unter Schlüsseln registriert sind.
Nachdem die Shell einen vordefinierten Satz von Registrierungs Speicherorten für Informationen über ein shellelement abgefragt hat, werden die Registrierungs Orte von der spezifischsten Position bis zum allgemeinsten in ein Array eingefügt.
Da Zuordnungs Arrays geordnete Listen sind, stellen Sie Anwendungsentwicklern einen Mechanismus zum Hinzufügen von Informationen zur Registrierung zur Verfügung, die für einen bestimmten Elementtyp zurückgegeben werden. Ebenso ermöglichen Zuordnungs Arrays 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.
In einem standardmäßigen Windows-System weist eine JPG-Datei das folgende Zuordnungs Array auf:
- HKEY _ Klassen _ Stamm- \ jpgfile
- HKEY _ Klassen _ Stamm \ systemfilezuordnungen \ . jpg
- HKEY _ Klassen _ Stamm \ Bild
- HKEY _ Klassen _ Stamm \ * * _
- _ HKEY- _ Klassen _ root \ AllFilesystemObjects*
Informationen zum Registrieren von Zuordnungs Arrays finden Sie unter Anwendungs Registrierung.
Abfragen von Zuordnungs Arrays
Es gibt Shell-APIs zum Abrufen von Informationen aus einem Bereich von Registrierungs unter Schlüsseln, vom spezifischsten Registrierungs Unterschlüssel zu einer übergeordneten Menge der Informationen für alle Registrierungs Unterschlüssel.
Die häufigste Verwendung eines Zuordnungs Arrays besteht darin, einen einzelnen Wert abzufragen, den die Shell aus dem spezifischsten Element im Array zurückgibt, das über die angeforderten Informationen verfügt. Das folgende Codebeispiel zeigt, wie Sie dies tun.
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 Zuordnungs Arrays oder zum Erstellen eines Zuordnungs Array- iqueryassociation -Objekts verwendet werden, das abgefragt werden kann:
- Assoccreate (vor Windows Vista)
- Assockreateforclasses
- Assocquerystring
Arbeiten mit Zuordnungs Arrays für eine bestimmte shelldatenquelle
Jede shelldatenquelle definiert das Zuordnungs Array für ihre Elemente. Die Definition eines Zuordnungs Arrays ist in der Regel eine Funktion des Elementtyps. Die Implementierer von shelldatenquellen müssen die Zuordnungs Arrays definieren und dokumentieren, damit Anwendungen das Verhalten dieser Typen, z. b. das Registrieren von Verben oder anderen Informationen, erweitern können. Anwendungen können das Verhalten von Elementen erweitern, basierend auf dem Hinzufügen von Daten zu den unter Schlüsseln des Assoziations Arrays, z. b. Hinzufügen von Verben für Elemente
Die Dateisystem-Datenquelle erstellt ein Zuordnungs Array für Dateien, die auf den folgenden Registrierungs unter Schlüsseln und speziellen ProgIDs basieren:
Wenn die Datei eine registrierte ProgID hat, wird die Stamm-ProgID der HKEY- _ Klassen _ \ verwendet. Andernfalls wird der Stamm der HKEY- _ Klassen _" \ Unknown " verwendet.
Die Dateinamenerweiterung wird unter HKEY _ Classes _ root \ systemfileassociations \ . FileExtension unter Key registriert.
In der folgenden Tabelle sind spezielle ProgIDs aufgeführt.
Besondere ProgID BESCHREIBUNG HKEY _ Klassen _ Stamm \ * * _ Alle Dateien (nicht-Ordner) _ HKEY- _ Klassen _ root \ AllFilesystemObjects* Dateien und Dateisystem Ordner HKEY _ Klassen _ Stamm \ Verzeichnis Dateisystem Ordner HKEY _ Klassen _ Stamm \ Ordner Shellcontainer
Arrays der Shell-Datenquellen Zuordnung
In der folgenden Liste sind einige der Arrays für die Shell-Datenspeicher Zuordnung dargestellt, die für die in diesem Thema beschriebenen Zwecke verwendet werden können:
- HKEY _ Klassen _ Stamm \ * * _
- _ HKEY- _ Klassen _ root \ AllFilesystemObjects*
- HKEY _ Klassen _ StammKind.Doc-Enumerationselement \ ****
- HKEY _ Klassen _ Stamm \ Ergebnisse
- HKEY _ Klassen _ Stamm \ systemfilezuordnungen \ . docx
- HKEY _ Klassen _ StammWord.Doc-Enumerationselement \ . 12
Arrays der Shell-Datenquellen Zuordnung, die für dbfolder (ein shelldatenspeicher, der Elemente in Suchergebnissen und Abfrage basierten Sichten darstellt) verwendet werden können, lauten wie folgt:
- Laufwerke
- Netzwerk
- Regitems
- Beispiele:
- ContentView
- Verben
Andere allgemeine Zuordnungs Arrays enthalten Ordner und Drucker.
Weitere Ressourcen
- Informationen zum Erstellen eines Shell-Datenspeicher finden Sie unter Implementieren der grundlegenden Ordner Objekt Schnittstellen.