Microsoft DirectX 8.0 (C++)

IDirectMusicLoader8::ScanDirectory

ディスク内のあるディレクトリで、指定のクラス タイプとファイル名の拡張子を持つすべてのファイルを検索する。ファイルが見つかるたびに、IDirectMusicObject8::ParseDescriptor メソッドを呼び出して、オブジェクトの GUID と名前を抽出する。この情報は内部データベースに保存される。あるディレクトリを検索した後、指定されたタイプに属するすべてのファイルは IDirectMusicLoader8::EnumObject メソッドの列挙型として利用可能になる。加えて、IDirectMusicLoader8::GetObject を使うときに、ファイル名なしでもオブジェクトが取得可能になる。

HRESULT ScanDirectory(
  REFGUID rguidClass,
  WCHAR* pwzFileExtension,
  WCHAR* pwzScanFileName
);

パラメータ

rguidClass
オブジェクトのクラス識別子への参照 (C++) またはアドレス (C)。標準的なローダブル クラスのリストについては、「IDirectMusicLoader8」を参照すること。
pwzFileExtension
検索するファイルのタイプを表すファイル名の拡張子。"*" を使って、任意の拡張子の付いたファイルまたは拡張子のないファイルを検索する。「注意」を参照すること。
pwzScanFileName
キャッシングされたファイル情報の保存と取得を行うための保存ファイル。省略可能。最初に ScanDirectory を呼び出したときにこのファイルが作成され、それ以降の呼び出しで使われる。キャッシュ ファイルが不要な場合は NULL を指定する。

戻り値

成功した場合は 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 で宣言。

参照

ディレクトリでのオブジェクト検索