Compartilhar via


Método IMediaLocator::FindMediaFile

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Observação

[Preterido. Essa API pode ser removida de versões futuras do Windows.]

 

O FindMediaFile método pesquisa um arquivo e, se bem-sucedido, recupera o caminho para o arquivo.

Sintaxe

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

Parâmetros

Entrada

Nome do arquivo, incluindo caminho, em que o arquivo era conhecido por residir pela última vez. Para objetos de origem no linha do tempo, use o nome de mídia atual.

FilterString

Um BSTR que contém pares de cadeias de caracteres de filtro, formatada conforme exigido pelo membro lpstrFilter da estrutura OPENFILENAME . O localizador de mídia usará esse filtro se exibir uma caixa de diálogo Abrir Arquivo. O valor poderá ser NULL se o parâmetro Flags não incluir o sinalizador SFN_VALIDATEF_POPUP.

pOutput

Ponteiro para uma variável que recebe o caminho real para o arquivo, se ele for diferente do valor contido em Entrada e se o método localizar o arquivo com êxito.

Sinalizadores

Combinação bit a bit de zero ou mais sinalizadores. Para obter uma lista de sinalizadores possíveis, consulte Sinalizadores de validação de nome de arquivo.

Retornar valor

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

A cadeia de caracteres de filtro para a caixa de diálogo Abrir Arquivo, que é especificada pelo parâmetro FilterString , contém caracteres Nulos internos. Por exemplo, Video\0*.avi\0\0 é uma cadeia de caracteres de filtro válida. Você não pode usar a função SysAllocStr para alocar o BSTR, pois essa função espera uma cadeia de caracteres terminada em Null e truncará a cadeia de caracteres no primeiro caractere Null. Portanto, use uma função como SysAllocStringLen, que inclui um parâmetro explícito para o comprimento:

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

Se o usuário cancelar a caixa de diálogo Abrir Arquivo, o método retornará E_FAIL.

O método aloca memória para o BSTR em pOutput. O aplicativo deve chamar SysFreeString para liberar a memória.

Observação

O arquivo de cabeçalho Qedit.h não é compatível com cabeçalhos Direct3D posteriores à versão 7.

 

Observação

Para obter qedit.h, baixe o SDK do Microsoft Windows Update para Windows Vista e .NET Framework 3.0. O Qedit.h não está disponível no SDK do Microsoft Windows para Windows 7 e .NET Framework 3.5 Service Pack 1.

 

Requisitos

Requisito Valor
parâmetro
Qedit.h
Biblioteca
Strmiids.lib

Confira também

IMediaLocator Interface

Códigos de erro e êxito