Platform SDK: DirectX

IDirectMusicLoader::GetObject

IDirectMusicLoader::GetObject メソッドは、指定されたオブジェクトをファイルまたはリソースから取り出し、希望のインターフェイスを返す。

HRESULT GetObject(
  LPDMUS_OBJECTDESC pDESC,
  REFIID riid,
  LPVOID FAR * ppv
);

パラメータ

pDESC
オブジェクトについて記述する DMUS_OBJECTDESC 構造体のアドレス。
riid
インターフェイスの一意の識別子。Dmusici.h で定義されている IID を参照すること。標準的なインターフェイスはすべて、"IID_" とインターフェイスの名前で構成される定義済みの識別子を持つ。たとえば、IDirectMusicTrack の識別子は IID_IDirectMusicTrack である。
ppv
オブジェクトの希望のインターフェイスへのポインタを受け取る変数のアドレス。

戻り値

成功すれば S_OK または DMUS_S_PARTIALLOAD を返す。

失敗すれば次のエラー値のいずれかを返す。

E_FAIL
E_INVALIDARG
E_OUTOFMEMORY
E_POINTER
DMUS_E_LOADER_NOCLASSID
DMUS_E_LOADER_FAILEDOPEN
DMUS_E_LOADER_FAILEDCREATE
DMUS_E_LOADER_FORMATNOTSUPPORTED
REGDB_E_CLASSNOTREG

注意

DMUS_S_PARTIALLOAD の戻り値によっては、デフォルトの音色コレクション ファイル、Gm.dls が利用できないことを意味する場合がある。

現在のバージョンの DirectMusic は、URL からのロードをサポートしていない。DMUS_OBJECTDESC 構造体の dwValidData メンバが DMUS_OBJ_URL を含んでいる場合、このメソッドは DMUS_E_LOADER_FORMATNOTSUPPORTED を返す。

このメソッドは、オブジェクトを取り出す前に DMUS_OBJECTDESC の相当するメンバを必要とすることはない。このメソッドは次の順序で検索を行う。

  1. DMUS_OBJ_OBJECT
  2. DMUS_OBJ_MEMORY
  3. DMUS_OBJ_FILENAME と DMUS_OBJ_FULLPATH
  4. DMUS_OBJ_NAME と DMUS_OBJ_CATEGORY
  5. DMUS_OBJ_NAME
  6. DMUS_OBJ_FILENAME

言い換えると、最も優先順位が高いのは一意の GUID、以下、リソース、フル パス名、内部名とカテゴリ、内部名、ローカル ファイル名の順である。

動作環境

  Windows NT/2000 : Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : dmusici.h で宣言。

参照

IDirectMusicLoader::ReleaseObject, IDirectMusicLoader::ScanDirectory