Microsoft DirectX 8.0 |
Microsoft® DirectShow 編集サービス (DES) でファイル名の妥当性を検証するためのメソッドを提供する。MediaLocator オブジェクトを使うと、特定のファイル名とパスが既存のファイルに対応することを確認できる。このオブジェクトは、他の場所にあるファイルを検索する手段、および [開く] ダイアログ ボックスを表示してユーザーがファイルを探せるようにする手段も提供する。
タイムラインおよびレンダリング エンジンも、次のメソッドを通してファイル名の妥当性検査をサポートする。
普通、DES アプリケーションは、MediaLocator オブジェクトのインスタンスを直接作成するのではなく、次のメソッドを呼び出す。
メソッド
FindMediaFile ファイルを検索し、成功した場合は、そのファイルへのパスを取得する。 AddFoundLocation ディレクトリ キャッシュにディレクトリを追加する。
ディレクトリ キャッシュにディレクトリを追加する。
構文
object.AddFoundLocation( DirectoryName As String )
パラメータ
- object
- 結果が MediaLocator オブジェクトになるオブジェクト式。
- DirectoryName
- キャッシュに追加するディレクトリ パス。
エラー コード
メソッドでの処理が失敗すると、エラーが発生する。
注意
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_POINTER NULL ポインタ引数。
注意
SFN_VALIDATEF_POPUP フラグが指定されていて、メディア ロケータがファイルを見つけられない場合、このメソッドは、ユーザーがファイルを見つけられるように [開く] ダイアログ ボックスを表示する。ユーザーがダイアログ ボックスをキャンセルすると、メソッドでは E_FAIL エラーが発生する。アプリケーションでは、On Error ステートメントを使ってこのエラーを獲得する必要がある。
If Err.Number = &H80004005 Then ' Did not locate the file. End IfSFN_VALIDATEF_POPUP フラグが指定されていなくて、 メディア ロケータがファイルを見つけられない場合は、メソッドはダイアログ ボックスを表示しないで E_FAIL エラーを生成する。
FilterString パラメータによって指定される、[開く] ダイアログ ボックスのフィルタ文字列には、内部的な NULL 文字列が含まれる (例 : Video\0*.avi\0\0)。Chr(0) を使って Null 文字を指定できる。
sNullStr = Chr(0) sFilterStr = "Video" + sNullStr + "*.avi" + sNullStr + sNullStr