Partager via


Méthode IMediaLocator::FindMediaFile

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Notes

[Déconseillé. Cette API peut être supprimée des versions ultérieures de Windows.]

 

La FindMediaFile méthode recherche un fichier et, si elle réussit, récupère le chemin d’accès au fichier.

Syntaxe

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

Paramètres

Input

Nom du fichier, y compris le chemin d’accès, où le dernier fichier a été connu pour résider. Pour les objets sources dans le chronologie, utilisez le nom du média actuel.

FilterString

BSTR contenant des paires de chaînes de filtre, mises en forme selon les besoins du membre lpstrFilter de la structure OPENFILENAME. Le localisateur multimédia utilise ce filtre s’il affiche une boîte de dialogue Ouvrir le fichier. La valeur peut être NULL si le paramètre Flags n’inclut pas l’indicateur SFN_VALIDATEF_POPUP.

pOutput

Pointeur vers une variable qui reçoit le chemin d’accès réel au fichier, s’il diffère de la valeur contenue dans Input et si la méthode localise correctement le fichier.

Indicateurs

Combinaison au niveau du bit de zéro ou plus d’indicateurs. Pour obtenir la liste des indicateurs possibles, consultez Indicateurs de validation de nom de fichier.

Valeur retournée

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Notes

La chaîne de filtre de la boîte de dialogue Ouvrir le fichier, qui est spécifiée par le paramètre FilterString , contient des caractères Null internes. Par exemple, Video\0*.avi\0\0 est une chaîne de filtre valide. Vous ne pouvez pas utiliser la fonction SysAllocStr pour allouer le BSTR, car cette fonction attend une chaîne terminée par Null et tronquera la chaîne au premier caractère Null. Par conséquent, utilisez une fonction telle que SysAllocStringLen, qui inclut un paramètre explicite pour la longueur :

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

Si l’utilisateur annule la boîte de dialogue Ouvrir le fichier, la méthode retourne E_FAIL.

La méthode alloue de la mémoire pour le BSTR dans pOutput. L’application doit appeler SysFreeString pour libérer la mémoire.

Notes

Le fichier d’en-tête Qedit.h n’est pas compatible avec les en-têtes Direct3D ultérieurs à la version 7.

 

Notes

Pour obtenir Qedit.h, téléchargez la mise à jour Microsoft Windows SDK pour Windows Vista et .NET Framework 3.0. Qedit.h n’est pas disponible dans le Microsoft Windows SDK pour Windows 7 et .NET Framework 3.5 Service Pack 1.

 

Configuration requise

Condition requise Valeur
En-tête
Qedit.h
Bibliothèque
Strmiids.lib

Voir aussi

IMediaLocator Interface

Codes d’erreur et de réussite