Platform SDK: DirectX |
IDirectMusicLoader::ScanDirectory メソッドは、ディスク内のあるディレクトリで、指定されたクラス タイプとファイル拡張子を持つすべてのファイルを検索する。ファイルが見つかるたびに、IDirectMusicObject::ParseDescriptor メソッドを呼び出して、オブジェクトの GUID と名前を抽出する。この情報は内部データベースに保存される。あるディレクトリを検索した後、指定されたすべてのファイルは IDirectMusicLoader::EnumObject メソッドの列挙型として利用可能になる。加えて、IDirectMusicLoader::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 |
検索の場所を設定するために、最初に IDirectMusicLoader::SetSearchDirectory メソッドを呼び出さなければならない。
pwzScanFileName で定義されたファイルに、検索された情報を保存できる。保存を行うと、変更を加えられたファイルだけが検索されるため、それ以降の ScanDirectory の呼び出しが大幅に高速化される (キャッシュ ファイルは各オブジェクトのファイル サイズと日付を保存するので、ファイルが変更された場合はそのことを検出できる)。
ファイル タイプが複数の拡張子を持っている場合、拡張子ごとに ScanDirectory を 1 回呼び出す。
GUID_DirectMusicAllTypes は rguidClass の有効な値ではない。
Windows NT/2000 : Windows 2000 が必要。
Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
ヘッダー : dmusici.h で宣言。