Microsoft DirectX 8.0

MediaLocator オブジェクト

Microsoft® DirectShow 編集サービス (DES) でファイル名の妥当性を検証するためのメソッドを提供する。MediaLocator オブジェクトを使うと、特定のファイル名とパスが既存のファイルに対応することを確認できる。このオブジェクトは、他の場所にあるファイルを検索する手段、および [開く] ダイアログ ボックスを表示してユーザーがファイルを探せるようにする手段も提供する。

タイムラインおよびレンダリング エンジンも、次のメソッドを通してファイル名の妥当性検査をサポートする。

普通、DES アプリケーションは、MediaLocator オブジェクトのインスタンスを直接作成するのではなく、次のメソッドを呼び出す。

メソッド

FindMediaFileファイルを検索し、成功した場合は、そのファイルへのパスを取得する。
AddFoundLocationディレクトリ キャッシュにディレクトリを追加する。

AddFoundLocation メソッド (MediaLocator オブジェクト)

MediaLocator オブジェクト

ディレクトリ キャッシュにディレクトリを追加する。

構文

object.AddFoundLocation( 
DirectoryName As String
)

パラメータ

object
結果が MediaLocator オブジェクトになるオブジェクト式。
DirectoryName
キャッシュに追加するディレクトリ パス。

エラー コード

メソッドでの処理が失敗すると、エラーが発生する。

注意

MediaLocator オブジェクトは、過去の検索でファイルが見つかったディレクトリ パスのキャッシュを維持する。ファイルが見つかった場合は、そのディレクトリをキャッシュに追加する。

FindMediaFile (MediaLocator オブジェクト)

MediaLocator オブジェクト

ファイルを検索し、成功した場合は、そのファイルへのパスを取得する。

構文

object.FindMediaFile(
Input As String,
FilterString As String,
pOutput As String,
Flags As Long
)

パラメータ

object
結果が MediaLocator オブジェクトになるオブジェクト式。
Input
ファイル名。 そのファイルが最後に存在していたことがわかっているパスも含む。タイムライン内のソース オブジェクトの場合は、現在のメディア名を使用する。
FilterString
Microsoft® Win32® の OPENFILENAME 構造体の lpstrFilter メンバで必要な書式に設定されたフィルタ文字列のペアを含む文字列。メディア ロケータは、[開く] ダイアログ ボックスを表示する場合に、このフィルタを使用する。
pOutput
ファイルへの実際のパスが Input 内の値と異なる場合、およびメソッドがファイルを見つけられた場合、ファイルの実際のパスを受け取る変数。
Flags
次のフラグの 0 個以上をビットごとに組み合わせたもの。

エラー コード

メソッドでの処理が失敗するとエラーが発生し、Err.Number には次のいずれかの値が設定される場合がある。

E_FAIL失敗。
E_INVALIDARG引数が無効。
E_POINTERNULL ポインタ引数。

注意

SFN_VALIDATEF_POPUP フラグが指定されていて、メディア ロケータがファイルを見つけられない場合、このメソッドは、ユーザーがファイルを見つけられるように [開く] ダイアログ ボックスを表示する。ユーザーがダイアログ ボックスをキャンセルすると、メソッドでは E_FAIL エラーが発生する。アプリケーションでは、On Error ステートメントを使ってこのエラーを獲得する必要がある。

If Err.Number = &H80004005 Then
' Did not locate the file.
End If

SFN_VALIDATEF_POPUP フラグが指定されていなくて、 メディア ロケータがファイルを見つけられない場合は、メソッドはダイアログ ボックスを表示しないで E_FAIL エラーを生成する。

FilterString パラメータによって指定される、[開く] ダイアログ ボックスのフィルタ文字列には、内部的な NULL 文字列が含まれる (例 : Video\0*.avi\0\0)。Chr(0) を使って Null 文字を指定できる。

sNullStr = Chr(0)
sFilterStr = "Video" + sNullStr + "*.avi" + sNullStr + sNullStr