Microsoft DirectX 8.0 (C++)

IDirectMusicLoader8::GetObject

指定されたオブジェクトをファイルまたはリソースから取得し、目的のインターフェイスを返す。

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

パラメータ

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

戻り値

成功した場合は S_OK または DMUS_S_PARTIALLOAD を返す。

セグメントで参照されるスタイルなど、参照されるオブジェクトが見つからない場合は、DMUS_S_PARTIALLOAD が返される。スタイルが名前で参照され、そのスタイルに対して IDirectMusicLoader8::ScanDirectory が呼び出されていない場合、ローダーはスタイルを見つけることができない場合がある。デフォルトの音色コレクション ファイルである Gm.dls が利用できない場合にも、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

注意

ファイル オブジェクトの場合は、IDirectMusicLoader8::LoadObjectFromFile メソッドを使用する方が簡単である。

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 であり、以下は、リソース、フル パス名、内部名とカテゴリ、内部名、ローカル ファイル名の順である。

動作環境

  ヘッダー : dmusici.h で宣言。

参照

IDirectMusicLoader8::ReleaseObjectIDirectMusicLoader8::ScanDirectoryIDirectMusicLoader8::LoadObjectFromFile