Freigeben über


IMediaLocator::FindMediaFile-Methode

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Hinweis

[Veraltet. Diese API kann aus zukünftigen Versionen von Windows entfernt werden.]

 

Die FindMediaFile Methode sucht nach einer Datei und ruft bei erfolgreicher Ausführung den Pfad zur Datei ab.

Syntax

HRESULT FindMediaFile(
   BSTR Input,
   BSTR FilterString,
   BSTR *pOutput,
   long Flags
);

Parameter

Eingabe

Dateiname, einschließlich Pfad, in dem sich die Datei zuletzt befand. Verwenden Sie für Quellobjekte im Zeitleiste den aktuellen Mediennamen.

FilterString

Ein BSTR , der Paare von Filterzeichenfolgen enthält, formatiert nach Bedarf durch das lpstrFilter-Element der OPENFILENAME-Struktur . Der Medienlocator verwendet diesen Filter, wenn das Dialogfeld Datei öffnen angezeigt wird. Der Wert kann NULL sein, wenn der Flags-Parameter das flag SFN_VALIDATEF_POPUP nicht enthält.

pOutput

Zeiger auf eine Variable, die den tatsächlichen Pfad zur Datei empfängt, wenn er sich von dem in Input enthaltenen Wert unterscheidet und die Methode die Datei erfolgreich findet.

Flags

Bitweise Kombination von null oder mehr Flags. Eine Liste der möglichen Flags finden Sie unter Dateinamenvalidierungsflags.

Rückgabewert

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Bemerkungen

Die Filterzeichenfolge für das Dialogfeld Datei öffnen, das durch den FilterString-Parameter angegeben wird, enthält interne NULL-Zeichen. Video\0*.avi\0\0\0 ist beispielsweise eine gültige Filterzeichenfolge. Sie können die SysAllocStr-Funktion nicht verwenden, um den BSTR zuzuordnen, da diese Funktion eine Null-beendete Zeichenfolge erwartet und die Zeichenfolge beim ersten NULL-Zeichen abschneidet. Verwenden Sie daher eine Funktion wie SysAllocStringLen, die einen expliziten Parameter für die Länge enthält:

BSTR filter = SysAllocStringLen(L"Video\0*.avi\0", 12);
// Note: SysAllocStringLen appends an additional '\0' to the string.

Wenn der Benutzer das Dialogfeld Datei öffnen abbricht, gibt die Methode E_FAIL zurück.

Die -Methode weist Arbeitsspeicher für den BSTR in pOutput zu. Die Anwendung muss SysFreeString aufrufen, um den Arbeitsspeicher freizugeben.

Hinweis

Die Headerdatei Qedit.h ist nicht mit Direct3D-Headern ab Version 7 kompatibel.

 

Hinweis

Um Qedit.h zu erhalten, laden Sie das Microsoft Windows SDK Update für Windows Vista und .NET Framework 3.0 herunter. Qedit.h ist im Microsoft Windows SDK für Windows 7 und .NET Framework 3.5 Service Pack 1 nicht verfügbar.

 

Anforderungen

Anforderung Wert
Header
Qedit.h
Bibliothek
Strmiids.lib

Siehe auch

IMediaLocator-Schnittstelle

Fehler- und Erfolgscodes