Microsoft DirectX 8.0 (C++) |
ディスク内のあるディレクトリで、指定のクラス タイプとファイル名の拡張子を持つすべてのファイルを検索する。ファイルが見つかるたびに、IDirectMusicObject8::ParseDescriptor メソッドを呼び出して、オブジェクトの GUID と名前を抽出する。この情報は内部データベースに保存される。あるディレクトリを検索した後、指定されたタイプに属するすべてのファイルは IDirectMusicLoader8::EnumObject メソッドの列挙型として利用可能になる。加えて、IDirectMusicLoader8::GetObject を使うときに、ファイル名なしでもオブジェクトが取得可能になる。
HRESULT ScanDirectory( REFGUID rguidClass, WCHAR* pwzFileExtension, WCHAR* pwzScanFileName );
成功した場合は S_OK を返す。ファイルが見つからなかった場合は S_FALSE を返す。
失敗した場合は、次のいずれかのエラー値を返す。
DMUS_E_NOT_FOUND |
E_FAIL |
E_OUTOFMEMORY |
E_POINTER |
REGDB_E_CLASSNOTREG |
検索の場所を設定するために、最初に IDirectMusicLoader8::SetSearchDirectory メソッドを呼び出さなければならない。
pwzScanFileName で定義されるファイルに、検索された情報を保存できる。保存を行うと、変更を加えられたファイルだけが検索されるため、それ以降の ScanDirectory の呼び出しが大幅に高速化される (キャッシュ ファイルには各オブジェクトのファイル サイズと日付が保存されるので、ファイルが変更された場合はそのことを検出できる)。
GUID_DirectMusicAllTypes は rguidClass の有効な値ではない。
ファイル タイプが複数の拡張子を持つ可能性がある場合、ファイル名の拡張子ごとに ScanDirectory を 1 回呼び出す。
ヘッダー : dmusici.h で宣言。