次の方法で共有


IMediaLocator::FindMediaFile メソッド

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

注意

[非推奨。 この API は、Windows の今後のリリースから削除される可能性があります。

 

メソッドは FindMediaFile ファイルを検索し、成功した場合はファイルへのパスを取得します。

構文

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

パラメーター

入力

パスを含むファイル名。ファイルが最後に存在することが判明した場所。 タイムラインのソース オブジェクトの場合は、現在のメディア名を使用します。

FilterString

OPENFILENAME 構造体の lpstrFilter メンバーによって必要に応じて書式設定されたフィルター文字列のペアを含む BSTR。 [ファイルを開く] ダイアログ ボックスが表示される場合、メディア ロケーターはこのフィルターを使用します。 Flags パラメーターに SFN_VALIDATEF_POPUP フラグが含まれていない場合、値は NULL にすることができます

pOutput

ファイルへの実際のパスを受け取る変数へのポインター 。 Input に含まれる値と異なる場合、およびメソッドがファイルを正常に見つけた場合。

Flags

0 個以上のフラグのビットごとの組み合わせ。 使用可能なフラグの一覧については、「 ファイル名の検証フラグ」を参照してください。

戻り値

このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。

解説

FilterString パラメーターで指定された [ファイルを開く] ダイアログのフィルター文字列には、内部 Null 文字が含まれています。 たとえば、Video\0*.avi\0\0 は有効なフィルター文字列です。 SysAllocStr 関数を使用して BSTR を割り当てることはできません。この関数は Null で終わる文字列を受け取り、最初の Null 文字で文字列を切り捨てます。 したがって、 SysAllocStringLen などの関数を使用します。これには、長さの明示的なパラメーターが含まれます。

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

ユーザーが [ファイルを開く] ダイアログを取り消すと、メソッドは E_FAILを返します。

メソッドは、pOutputBSTR にメモリを割り当てます。 メモリを解放するには、アプリケーションで SysFreeString を呼び出す必要があります。

Note

ヘッダー ファイル Qedit.h は、バージョン 7 より後の Direct3D ヘッダーと互換性がありません。

 

注意

Qedit.h を入手するには、Windows Vista および .NET Framework 3.0 のMicrosoft Windows SDK Update をダウンロードします。 Qedit.h は、Windows 7 および .NET Framework 3.5 Service Pack 1 のMicrosoft Windows SDKでは使用できません。

 

要件

要件
ヘッダー
Qedit.h
ライブラリ
Strmiids.lib

関連項目

IMediaLocator インターフェイス

エラーコードと成功コード