Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die IFilter-Testsuite überprüft Ihre Filterhandler. Die Testsuite führt dies durch: Aufrufen von IFilter-Methoden und Überprüfen der zurückgegebenen Werte für die Einhaltung der IFilter-Schnittstellenspezifikation ; und überprüfen, ob Blockbezeichner eindeutig und erhöht werden, dass sich die IFilter-Schnittstelle nach der erneuten Initialisierung konsistent verhält und dass alle IFilter-Methoden mit ungültigen Parametern erwartete Fehlercodes zurückgeben. Die Testsuiteprogramme speichern auch die Ausgabe einer Datei, die von einem Filterhandler gefiltert wird, und überprüfen die IFilter-Registrierungsinformationen in der Registrierung.
Dieses Thema ist wie folgt organisiert:
- Befehlszeilenaufruf
- IFilter-Testverfahren
- Sicherstellen, dass registrierte Elemente indiziert werden
- Zusätzliche Ressourcen
- Verwandte Themen
Hinweis
Wenn ein neuer Filterhandler für einen Dateityp als Ersatz für eine vorhandene Filterregistrierung installiert wird, sollte das Installationsprogramm die aktuelle Registrierung speichern und wiederherstellen, wenn der neue Filterhandler deinstalliert wird. Es gibt keinen Mechanismus zum Verketten von Filtern. Daher ist der neue Filterhandler dafür verantwortlich, alle erforderlichen Funktionen des alten Filters zu replizieren.
Befehlszeilenaufruf
Die IFilter-Testsuite besteht aus drei Befehlszeilenanwendungen : ifilttst.exe, filtdump.exeund filtreg.exe und einer Initialisierungsdatei, ifilttst.ini.
Von Bedeutung
In Windows 7 und höher werden filter, die in verwaltetem Code geschrieben wurden, explizit blockiert. Filter müssen aufgrund potenzieller Versionsverwaltungsprobleme der Common Language Runtime (CLR) im nativen Code geschrieben werden, da mehrere Add-Ins darin ausgeführt werden.
Ifilttst.exe
Das ifilttst.exe Programm führt mehrere Tests aus, um einen Filterhandler zu überprüfen. Im folgenden Beispiel wird veranschaulicht, wie das ifilttst.exe Programm über die Befehlszeile aufgerufen wird:
ifilttst /i test.htm /l /d /v 1
Im Beispiel werden die folgenden Aufgaben ausgeführt:
- Leitet das Programm zum Filtern der Datei test.htm
- Leitet die Logdateien in test.htm.log.
- Leitet die Dumpnachrichten an test.htm.dmp
- Legt die Ausführlichkeit auf 1 fest.
Damit der vorherige Befehl funktioniert, müssen sich drei Dateien im aktuellen Arbeitsverzeichnis befinden: test.htm, ifilttst.exeund ifilttst.ini. Befehlszeilenoptionen sind in der folgenden Tabelle aufgeführt.
| Wechseln und mögliche Variablen | Description |
|---|---|
| /i Dateiname | Die zu filternde Eingabedatei oder das zu filternde Verzeichnis. Der Dateiname kann die Wildcardzeichen * und ? enthalten. |
| /l | Protokollmeldungen werden anstelle des Bildschirms an eine Datei weitergeleitet. Protokollmeldungen beschreiben die einzelnen durchgeführten Tests und die Bestanden-/Fehlerergebnisse der Tests. Der Name der Protokolldatei ist identisch mit dem Eingabedateinamen, aber mit einer .log Erweiterung. |
| /d | Dumpnachrichten werden anstelle des Bildschirms an eine Datei weitergeleitet. Dumpnachrichten beschreiben den Inhalt der Datenblöcke. Die Blockstruktur wird abgeschnitten, wenn die Ausführlichkeitsebene 3 ist. Der Dumpdateiname ist identisch mit dem Eingabedateinamen, aber mit einer .dmp Erweiterung. |
| /-l | Protokollierung deaktivieren. Mit diesem Flag wird der /l Schalter außer Kraft gesetzt. |
| /-d | Dumping deaktivieren. Mit diesem Flag wird der /d Schalter außer Kraft gesetzt. |
| /v ganze Zahl | Die Ausführlichkeitsebene. Der Standard ist „3“.
|
| /t ganze Zahl | Die Anzahl der Threads, die gestartet werden sollen. Der Standardwert ist 1. |
| /r ganze Zahl] | Filtert Unterverzeichnisse rekursiv. Der optionale ganzzahlige Parameter gibt die Tiefe an, für die rekursion ausgeführt werden soll. Wenn keine ganze Zahl angegeben wird oder die ganze Zahl 0 ist, wird die vollständige Rekursion angenommen. Standardmäßig ist die Rekursionstiefe 1. |
| /c ganze Zahl | Die Anzahl der Wiederholungen. Wenn die ganze Zahl 0 ist, wird die Testschleife unendlich durchlaufen. Standardmäßig werden die Testschleifen nur einmal durchlaufen. |
Hinweis
Sie müssen ein Leerzeichen zwischen dem Befehlszeilenschalter und dem Wert einschließen.
Filtdump.exe
Das filtdump.exe Programm lädt einen Filterhandler für ein angegebenes Dokument und druckt die von der IFilter-DLL erzeugte Ausgabe. Im folgenden Beispiel wird veranschaulicht, wie das filtdump.exe-Programm aufgerufen wird.
filtdump filename.ext
Filtdump.exe verwendet die ILoadFilter::LoadIFilter-Methode , um die für die angegebene Dateinamenerweiterung geeignete IFilter-DLL zu laden und die Ergebnisse zu drucken. Beispielsweise weist der folgende Befehl filtdump.exe an, den smpfilt.dll Filterhandler für die Erweiterung SMP zu laden, alle Text und Eigenschaften aus der Datei myfile.smp zu extrahieren und die Ergebnisse zu drucken.
filtdump myfile.smp
Filtreg.exe
Das filtreg.exe-Programm prüft die IFilter-Installationsinformationen in der Registrierung. Sie rufen das filtreg.exe Programm über die Befehlszeile auf, indem Sie seinen Namen eingeben, wie im folgenden Beispiel gezeigt.
filtreg
Filtreg.exe listet alle Dateinamenerweiterungen auf, denen Filterhandler zugeordnet sind, indem die Dateinamenerweiterung und der Name der IFilter-DLL für die Erweiterung gedruckt werden. Dies ist eine einfache Möglichkeit, die richtige Installation eines IFilters zu überprüfen.
Ifilttst.ini
Eine IFilter-Schnittstelle wird durch Aufrufen der IFilter::Init-Methode initialisiert. Die IFilter::Init-Methode verwendet die folgenden vier Parameter:
- grfFlags
- cAttributes
- aAttributes
- pdwFlags
Der Benutzer des ifilttst.exe Programms der IFilter-Testsuite kann die Werte für diese Parameter in einer Datei mit dem Namen ifilttst.iniangeben. In der folgenden Tabelle werden die Einträge in der datei ifilttst.ini beschrieben, die die ersten drei Parameter (die Eingabeparameter) angeben. Eine Beispieldatei finden Sie unter "Sample ifilttst.ini File".
Hinweis
Es gibt keinen Tabelleneintrag für den pdwFlags-Parameter , da es sich um einen Ausgabeparameter handelt. sie muss vor dem Aufruf der IFilter::Init-Methode keinen speziellen Wert aufweisen.
| Entry | Description | |
|---|---|---|
| Flags | Die Namen der IFILTER_INIT Flags, die vom OR-Operator verknüpft werden sollen, um den grfFlags-Parameter der IFilter::Init-Methode zu bilden. Die Flagnamen müssen alle Großbuchstaben und in derselben Zeile sein. | |
| cAttributes | Eine ganzzahlige Dezimalzahl, die den Wert des cAttributes-Parameters darstellt. | |
| aAttributes | Dieser Eintrag muss mit aAttributes beginnen und muss sich von den anderen aAttributes-Einträgen innerhalb des Abschnitts unterscheiden. Rechtliche Namen für den aAttributes-Eintrag sind: aAttributes, aAttributes1, aAttributes2 usw. Das erste Token muss eine GUID sein. Die GUID muss genau wie im [Test3] Abschnitt des Beispiels ifilttst.ini Datei dargestellt formatiert werden. Das zweite Token kann entweder ein Eigenschaftsbezeichner (PID) sein, der aus einer Zahl in hexadezimaler Schreibweise besteht, oder ein Zeiger auf eine breite Zeichenfolge (lpwstr). Ein lpwstr kann durch das Einschließen der Zeichenfolge in doppelte Anführungszeichen angegeben werden, wie im [Test6] Abschnitt der Beispieldatei ifilttst.ini dargestellt. |
Wenn die Flags- und cAttributes-Einträge nicht angegeben sind, werden sie standardmäßig auf 0 festgelegt. Wenn Sie cAttributes auf 2 festlegen, sollten Sie zwei aAttributes-Namen angeben.
[Test5] Im Abschnitt des Beispiels ist cAttributes 1, aber keine aAttribute wurden angegeben. Der Test ruft dann die IFilter::Init-Methode mit cAttributes gleich 1 und aAttributes gleich NULL auf. Dies ist ein nützlicher Testfall, da es wahrscheinlich zu einer Zugriffsverletzung in der IFilter::Init-Methode führt.
Wenn ifilttst.exe eine Datei mit dem Namen ifilttst.ini im Arbeitsverzeichnis nicht finden kann, wird eine Standardkonfiguration verwendet, um das Objekt "IFilter::Init " zu initialisieren. Das folgende Beispiel veranschaulicht die Standardkonfiguration.
[default]
grfFlags = IFILTER_INIT_APPLY_INDEX_ATTRIBUTES
cAttributes = 0
Beispieldatei für ifilttst.ini
Die ifilttst.ini Datei ist in Abschnitten organisiert, wobei der Abschnittsname in eckige Klammern eingeschlossen ist. Im Beispiel werden die Abschnitte benannt [Test1], [Test2]usw. Alle Abschnittsnamen müssen eindeutig sein. Der Test liest die Werte aus dem ersten Abschnitt und initialisiert den IFilter mit diesen Werten. Anschließend werden alle Tests mit dieser IFilter-Konfiguration ausgeführt. Anschließend wird der IFilter freigegeben und neu initialisiert, wobei Parameter verwendet werden, die oben aufgeführt sind. Der Prozess wird wiederholt, bis alle Konfigurationen getestet werden.
; Only extract text from the object
[Test1]
Flags =
cAttributes = 0
// Get all attributes (text-type and internal value-type properties.
[Test2]
Flags = IFILTER_INIT_APPLY_INDEX_ATTRIBUTES
cAttributes = 0
// This also extracts just text from the object (the GUID is PSGUID_STORAGE, and the propid is
// PID_STG_CONTENTS).
[Test3]
Flags = IFILTER_INIT_CANON_PARAGRAPHS IFILTER_INIT_HARD_LINE_BREAKS
cAttributes = 1
aAttributes1 = b725f130-47ef-101a-a5f1-02608c9eebac 13
// Only extract requested attribute from the html object (the GUID corresponds to the HTML IFilter.
[Test4]
Flags = IFILTER_INIT_CANON_HYPHENS IFILTER_INIT_CANON_SPACES
cAttributes = 1
aAttributes1 = 70eb7a10-55d9-11cf-b75b-00aa0051fe20 2
// Question: what happens if cAttributes is nonzero, but aAttributes is empty?
[Test5]
Flags = IFILTER_INIT_CANON_SPACES IFILTER_INIT_APPLY_INDEX_ATTRIBUTES IFILTER_INIT_APPLY_OTHER_ATTRIBUTES
cAttributes = 1
// Here is an attribute with a lpwstr instead of a propid (the lpwstr is enclosed in quotes).
// The GUID corresponds to the meta tag clsid for the HTML IFilter.
[Test6]
Flags =
cAttributes = 1
aAttributes1 = D1B5D3F0-C0B3-11CF-9A92-00A0C908DBF1 "GENERATOR"
IFilter-Testverfahren
Nachdem der IFilter initialisiert wurde, führt das ifilttst.exe Programm eine Reihe von Tests auf dem IFilter durch. Stellen Sie zusätzlich zur Einhaltung der IFilter-Testprozeduren sicher, dass Ihre IFilter-Implementierung sichere Programmierpraktiken verwendet. Weitere Informationen finden Sie unter "Sichere Codepraktiken für die Windows-Suche" in der Implementierung von Filterhandlern in der Windows-Suche.
Überprüfungstest
Der Überprüfungstest führt jeweils einen Teil des Objekts durch, wobei jeder einzelne Block und alle Rückgabecodes überprüft werden. Der Überprüfungstest speichert alle zurückgegebenen STAT_CHUNK Strukturen in einer Liste.
Der Überprüfungstest überprüft die folgenden Bedingungen:
- Die STAT_CHUNK. IDChunk-Block-IDs müssen eindeutig und steigend sein.
- Die STAT_CHUNK.Flags-Parameter ist als Zustand eines Blocks anerkannt, wie beispielsweise die CHUNKSTATE-, CHUNK_TEXT- oder CenabledHUNK_VALUE-Konstanten.
- Die STAT_CHUNK.Break-Typ-Parameter ist ein erkannter Break-Typ (0, 1, 2, 3, 4).
- Wenn die IFilter-Initialisierungsattribute angeben, dass der IFilter nur Blöcke zurückgeben soll, die interne Werttypeigenschaften enthalten, muss idChunkSource gleich 0 sein.
- Wenn der Chunk nicht abgeleitet ist, das heißt, wenn es sich nicht um eine interne Werttypeigenschaft handelt, dann muss STAT_CHUNK.idChunkSource gleich STAT_CHUNK.idChunk sein.
- IFilter::GetChunk gibt S_OK oder einen anderen zulässigen Rückgabewert zurück, z. B. FILTER_E_END_OF_CHUNKS, FILTER_E_LINK_UNAVAILABLE usw.
- Wenn der Block Text enthält, gibt IFilter::GetText S_OK, FILTER_S_LAST_TEXT oder FILTER_E_NO_MORE_TEXT zurück.
- Wenn "IFilter::GetText " FILTER_S_LAST_TEXT zurückgibt, gibt der nächste Aufruf von "IFilter::GetText " FILTER_E_NO_MORE_TEXT zurück.
- Wenn der Block einen Wert enthält, gibt IFilter::GetValue S_OK oder FILTER_E_NO_MORE_VALUES zurück.
Konsistenztest
Das ifilttxt.exe Programm initialisiert die IFilter-Schnittstelle mit den gleichen Parametern wie im Validierungstest und führt einen Konsistenztest durch. Wenn die IFilter-Implementierung mit dem IFILTER_INIT IFILTER_INIT_INDEXING_ONLY-Flag initialisiert wurde, gibt der Test die IFilter-Schnittstelle frei und bindet sie erneut, bevor er einen weiteren Aufruf der IFilter::Init-Methode ausführt.
Der Konsistenztest überprüft die folgenden Bedingungen:
- Jede STAT_CHUNK Struktur, die von der IFilter::GetChunk-Methode zurückgegeben wird, ist identisch mit den entsprechenden STAT_CHUNK , die im Überprüfungstest zurückgegeben werden.
- IFilter::GetChunk gibt S_OK oder einen anderen zulässigen Rückgabewert zurück, z. B. FILTER_E_END_OF_CHUNKS, FILTER_E_LINK_UNAVAILABLE usw.
Ungültiger Eingabetest
Das ifilttst.exe Programm initialisiert die IFilter-Schnittstelle mit denselben Parametern neu und führt einen ungültigen Eingabetest aus. Dieser Test arbeitet sich in Abschnitten durch das Dokument, wobei Funktionsaufrufe falsch ausgeführt werden, z. B. das Aufrufen der IFilter::GetValue-Methode, wenn der aktuelle Block Text enthält. Der Test überprüft alle Rückgabecodes für die Einhaltung der IFilter-Spezifikation .
Der ungültige Eingabetest überprüft die folgenden Bedingungen:
- Wenn der aktuelle Block Text enthält, gibt IFilter::GetValue FILTER_E_NO_VALUES zurück, und ein Aufruf von IFilter::GetText ist erfolgreich.
- Wenn der aktuelle Block einen Wert enthält, gibt IFilter::GetText FILTER_E_NO_TEXT zurück, und ein Aufruf von IFilter::GetValue ist erfolgreich.
- Wenn der vorherige Aufruf von "IFilter::GetText " FILTER_E_NO_MORE_TEXT zurückgegeben hat, geben nachfolgende Aufrufe an "IFilter::GetText " FILTER_E_NO_MORE_TEXT zurück.
- Wenn der vorherige Aufruf von IFilter::GetValue FILTER_E_NO_MORE_VALUES zurückgegeben hat, geben nachfolgende Aufrufe an "IFilter::GetValue " FILTER_E_NO_MORE_VALUES zurück.
- Wenn der vorherige Aufruf von IFilter::GetChunk FILTER_E_END_OF_CHUNKS zurückgegeben hat, geben nachfolgende Aufrufe an IFilter::GetChunk FILTER_E_END_OF_CHUNKS zurück.
Hinweis
Der ungültige Eingabetest vergleicht die aktuellen Blockstrukturen mit denen, die im Überprüfungstest zurückgegeben werden, um sicherzustellen, dass sie identisch sind.
Testen verschiedener IFilter-Konfigurationen
Das Programm ifilttst.exe gibt die IFilter-Schnittstelle frei und bindet sie erneut, dieses Mal wird es mit dem nächsten Satz von Parametern initialisiert. Der Test wiederholt den Zyklus: Überprüfungstest, Konsistenztest und ungültiger Eingabetest, bis alle in ifilttst.ini Datei angegebenen IFilter-Konfigurationen getestet wurden.
Sicherstellen, dass registrierte Elemente indiziert werden
Der letzte Test Ihres IFilters stellt sicher, dass Ihr IFilter ordnungsgemäß registriert ist und aufgerufen wird, um die Elemente zu indizieren, die Sie für die Verwendung registriert haben. Sie können den Katalog-Manager verwenden, um eine erneute Indizierung zu initiieren, oder den Crawl Scope Manager (CSM) verwenden, um Standardregeln einzurichten, die die URLs angeben, die der Indexer durchforsten soll. Nachdem die Indizierung abgeschlossen ist, verwenden Sie die Windows Search-Benutzeroberfläche, um nach einer Zeichenfolge im Inhalt oder den Eigenschaften von Elementen zu suchen. Wenn die Elemente indiziert wurden, werden sie in den Suchergebnissen angezeigt.
Weitere Informationen zur erneuten Indizierung finden Sie unter Verwenden des Katalog-Managers und Verwenden des Durchforstungsbereichs-Managers. Im Codebeispiel ReindexMatchingUrls wird veranschaulicht, wie Sie angeben können, welche Dateien neu indiziert werden sollen und wie. Das Codebeispiel CrawlScopeCommandLine veranschaulicht, wie Befehlszeilenoptionen für CsM-Indizierungsvorgänge (Crawl Scope Manager) definiert werden. Beide Codebeispiele sind auf GitHub verfügbar.
Beispielprotokolldatei
Auf Anfrage kann das Ifilttst.exe Programm ein Protokoll erstellen, das eine Beschreibung der während der Ausführung ausgeführten Schritte enthält. Die folgenden Beispiele sind Auszüge aus einer Protokolldatei, wobei die Ausführlichkeit auf den höchsten möglichen Wert 3 festgelegt ist.
1. INFO----**** New configuration ****
2.
3. Section name : Test2
4. grfFlags : 63
5. cAttributes : 0
6. aAttributes : NONE
7. pdwFlags : 0
8.
9. INFO----Successfully bound filter.
10.
11. PASS----Init() returned a valid value for pdwFlags.
12.
13. INFO----Successfully initialized filter.
14.
15. INFO----Performing validation test. In this part of the test, the chunks structures
16. returned by the IFilter are checked for correctness, and the return values
17. of the IFilter calls are checked.
18.
19. PASS----GetChunk() succeeded.
20.
21. PASS----The current chunk has a legal value for the flags field.
Die erste Zeile ist eine Informationsmeldung, die angibt, dass eine neue Konfiguration aus der ifilttst.ini-Datei geladen wurde. Zeile (3) gibt den Abschnittsnamen in der datei ifilttst.ini an, aus der die aktuelle Konfiguration gelesen wurde. Zeilen (4) bis (7) listen die Parameter von IFilter::Init auf. Die Zeilen, die mit INFO beginnen, sind Informationsmeldungen über die Bindung des IFilter sowie den Beginn des Validierungstests. Zeilen, die mit PASS beginnen, sind Nachrichten bezüglich bestimmter Tests, die bestanden wurden.
Die Zeile im folgenden Protokollbeispiel ist eine Warnung. Warnungen weisen auf das IFilter-Verhalten hin, das problematisch ist, obwohl es legal ist. Diese Warnung gibt an, dass die IFilter::GetChunk-Methode einen Textabschnitt zurückgegeben hat, der keinen Text enthält.
WARNING-First call to GetText() returned FILTER_E_NO_MORE_TEXT.
Die folgende Beispielfehlermeldung gibt an, dass der IFilter einen Block ausgegeben hat, der nicht angefordert wurde.
ERROR---The IFilter has emitted a chunk which it was not requested to emit.
Check the initialization parameters in section Test1 of the initialization file.
INFO----Current chunk propid : 0x5
Im Fall dieser Beispielfehlermeldung hat der IFilter einen Block mit einer PID von 0x5ausgegeben. Die Überprüfung des Abschnitts [Test1] in ifilttst.ini würde zeigen, dass der IFilter so konfiguriert wurde, dass keine Blöcke mit dieser PID ausgegeben wurden. Wenn z. B. weder IFILTER_INIT_APPLY_INDEX_ATTRIBUTES noch IFILTER_INIT_APPLY_OTHER_ATTRIBUTES im Flags-Eintrag angegeben wurden und cAttributes 0 wären, würde IFilter nur Blöcke mit einer PID von 0x13 und entsprechend PID_STG_CONTENTS ausgeben.
Speicherabbilddatei
Auf Anfrage kann das Ifilttst.exe Programm ein Dump mit den gefundenen Blöcken und deren Inhalt erzeugen. Das folgende Beispiel ist ein Auszug aus einer solchen Dumpdatei.
1. Chunk ID: ........... 2
2. Chunk Break Type: ... END OF SENTENCE
3. Chunk State: ........ TEXT
4. Chunk Locale: ....... 0x411
5. Chunk Source ID: .... 2
6. Chunk Start Source .. 0x0
7. Chunk Length Source . 0x0
8. GUID ................ b725f130-47ef-101a-a5f1-02608c9eebac
9. Property ID ......... 0x13
10. This is a HTML IFilter test page
11. Chunk ID: ........... 3
12. Chunk Break Type: ... END OF SENTENCE
13. Chunk State: ........ TEXT
14. Chunk Locale: ....... 0x411
15. Chunk Source ID: .... 2
16. Chunk Start Source .. 0x0
17. Chunk Length Source . 0x0
18. GUID ................ f29f85e0-4ff9-1068-ab91-08002b27b3d9
19. Property ID ......... 0x2
20. This is a HTML IFilter test page
21. Chunk ID: ........... 4
22. Chunk Break Type: ... END OF SENTENCE
23. Chunk State: ........ VALUE
24. Chunk Locale: ....... 0x411
25. Chunk Source ID: .... 2
26. Chunk Start Source .. 0x0
27. Chunk Length Source . 0x0
28. GUID ................ f29f85e0-4ff9-1068-ab91-08002b27b3d9
29. Property ID ......... 0x2
30. This is an HTML IFilter test page
Die ersten neun Zeilen beschreiben die aktuelle Blockstruktur. Die GUID und die PID entsprechen PSGUID_STORAGE / PID_STG_CONTENTS. Dies ist ein Abschnitt, der reinen Text enthält. Der Text befindet sich in der folgenden Blockstruktur:
10. This is an HTML IFilter test page
Der nächste Abschnitt, beginnend mit Zeile 11, weist eine andere GUID auf, die dem HTML IFilter, und einer anderen PID entspricht, die einem HTML-HREF entspricht. Dies ist eine interne Werttypproperty, die von der HTML IFilter exportiert wird.
Der nächste Block, beginnend mit Zeile 21, hat die gleiche GUID und PID, aber sein Blockzustand ist VALUE nicht TEXT. Beachten Sie, dass der Text in diesen beiden letzten Blöcken mit dem ersten Block identisch ist. Da der IFilter jedoch für drei Attribute (reiner Text, HTML-HREF als Zeichenfolge und HTML-HREF als Wert) entwickelt wurde, um auf diese Phrase angewendet zu werden, werden die Ergebnisse in drei separaten Blöcken ausgegeben.
Weitere Ressourcen
- Das IFilterSample-Codebeispiel , das auf GitHub verfügbar ist, veranschaulicht, wie eine IFilter-Basisklasse für die Implementierung der IFilter-Schnittstelle erstellt wird.
- Eine Übersicht über den Indizierungsprozess finden Sie unter "Indizierungsprozess".
- Eine Übersicht über Dateitypen finden Sie unter "Dateitypen".
- Informationen zum Abfragen von Dateizuordnungsattributen für einen Dateityp finden Sie unter "PerceivedTypes", "SystemFileAssociations" und "Application Registration".
Zugehörige Themen
Informationen zu Filterhandlern in der Windows-Suche
Bewährte Methoden zum Erstellen von Filterhandlern in der Windows-Suche
Zurückgeben von Eigenschaften aus einem Filterhandler
Filterhandler, die mit Windows ausgeliefert werden