Sinalizadores de resolvedor de origem

Define o comportamento do resolvedor de origem. Esses sinalizadores também são usados por manipuladores de esquema e manipuladores de fluxo de bytes.

Constante/valor Descrição
MF_RESOLUTION_MEDIASOURCE
0x00000001
Tente criar uma fonte de mídia.
MF_RESOLUTION_BYTESTREAM
0x00000002
Tente criar um fluxo de bytes.
MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE
0x00000010
Se a resolução de origem falhar usando o manipulador de fluxo de bytes registrado para o tipo MIME ou a extensão de nome de arquivo, o resolvedor de origem enumera por meio de todos os manipuladores de fluxo de bytes registrados.
Manipuladores de fluxo de bytes são registrados por extensão de nome de arquivo ou tipo MIME. Inicialmente, o resolvedor de origem tenta usar um manipulador que corresponda à extensão de nome de arquivo ou ao tipo MIME. Se isso falhar, por padrão, toda a resolução do código-fonte falhará e o resolvedor de origem retornará um código de erro para o aplicativo. No entanto, se esse sinalizador for especificado, o resolvedor de origem continuará a enumerar por meio de todos os manipuladores de fluxo de bytes registrados. Possivelmente, um manipulador com correspondência incorreta pode criar com êxito a fonte de mídia.
Esse sinalizador não pode ser combinado com o sinalizador MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL. Confira Comentários para obter mais informações.
MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL
0x00000020
Se a resolução de origem falhar, o resolvedor de origem não fechará o fluxo de bytes. Por padrão, o resolvedor de origem fecha o fluxo de bytes em caso de falha.
Se esse sinalizador for usado e a resolução de origem falhar, o chamador deverá chamar o método novamente e definir o sinalizador MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE.
Esse sinalizador não pode ser combinado com o sinalizador MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE. Confira Comentários para obter mais informações.
MF_RESOLUTION_READ
0x00010000
Solicita acesso de leitura à origem.
MF_RESOLUTION_WRITE
0x00020000
Solicita acesso de gravação à origem.
MF_RESOLUTION_DISABLE_LOCAL_PLUGINS
0x00000040
O resolvedor de origem não usará plug-ins de manipulador de bytestream ou esquema registrado localmente.
Requer Windows 8.

Comentários

O aplicativo define esses sinalizadores quando usa a interface IMFSourceResolver . O resolvedor de origem passa as mesmas bandeiras para os métodos IMFByteStreamHandler::BeginCreateObject e IMFSchemeHandler::BeginCreateObject .

Você deve especificar um dos sinalizadores de MF_RESOLUTION_MEDIASOURCE ou MF_RESOLUTION_BYTESTREAM. Os sinalizadores restantes são todos opcionais.

O sinalizador MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL é definido para o seguinte cenário:

  1. O aplicativo tenta abrir uma fonte pela rede. O aplicativo define o sinalizador MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL.

  2. A URL da origem contém a extensão de nome de arquivo incorreta. Como a extensão de nome de arquivo está errada, o manipulador de fluxo de bytes padrão não pode criar a fonte de mídia. Como o aplicativo definiu o sinalizador MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL, o resolvedor de origem armazena em cache o fluxo de bytes.

  3. O resolvedor de origem retorna um código de erro para o aplicativo.

  4. O cliente abre a origem novamente, desta vez definindo o sinalizador MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE. Esse sinalizador faz com que o resolvedor de origem experimente todos os manipuladores registrados em vez de apenas o manipulador padrão. Como o fluxo de bytes foi armazenado em cache, o resolvedor de origem não precisa abrir o fluxo de bytes novamente.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho
Mfidl.h

Confira também

Constantes do Media Foundation

IMFByteStreamHandler

IMFSchemeHandler

IMFSourceResolver

Resolvedor de Origem