Compartir a través de


IMediaLocator::FindMediaFile (método)

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Nota:

[Desusado. Esta API se puede quitar de futuras versiones de Windows.]

 

El FindMediaFile método busca un archivo y, si se ejecuta correctamente, recupera la ruta de acceso al archivo.

Sintaxis

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

Parámetros

Entrada

Nombre de archivo, incluida la ruta de acceso, donde el archivo se conocía por última vez para residir. Para los objetos de origen en la escala de tiempo, use el nombre de medio actual.

FilterString

Un BSTR que contiene pares de cadenas de filtro, con el formato requerido por el miembro lpstrFilter de la estructura OPENFILENAME . El localizador multimedia usa este filtro si muestra un cuadro de diálogo Abrir archivo. El valor puede ser NULL si el parámetro Flags no incluye la marca SFN_VALIDATEF_POPUP.

pOutput

Puntero a una variable que recibe la ruta de acceso real al archivo, si difiere del valor contenido en Input y si el método localiza correctamente el archivo.

Marcas

Combinación bit a bit de cero o más marcas. Para obtener una lista de posibles marcas, consulte Marcas de validación de nombres de archivo.

Valor devuelto

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Observaciones

La cadena de filtro para el cuadro de diálogo Abrir archivo, especificado por el parámetro FilterString , contiene caracteres Null internos. Por ejemplo, Video\0*.avi\0\0 es una cadena de filtro válida. No puede usar la función SysAllocStr para asignar el BSTR, ya que esa función espera una cadena terminada en Null y truncará la cadena en el primer carácter Null. Por lo tanto, use una función como SysAllocStringLen, que incluye un parámetro explícito para la longitud:

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

Si el usuario cancela el cuadro de diálogo Abrir archivo, el método devuelve E_FAIL.

El método asigna memoria para el BSTR en pOutput. La aplicación debe llamar a SysFreeString para liberar la memoria.

Nota:

El archivo de encabezado Qedit.h no es compatible con los encabezados de Direct3D posteriores a la versión 7.

 

Nota:

Para obtener Qedit.h, descargue la actualización de Microsoft Windows SDK para Windows Vista y .NET Framework 3.0. Qedit.h no está disponible en el Microsoft Windows SDK para Windows 7 y .NET Framework 3.5 Service Pack 1.

 

Requisitos

Requisito Value
Encabezado
Qedit.h
Biblioteca
Strmiids.lib

Consulte también

IMediaLocator (Interfaz)

Códigos de error y éxito