Microsoft DirectX 8.0 (C++) |
指定されたオブジェクトをファイルまたはリソースから取得し、目的のインターフェイスを返す。
HRESULT GetObject( LPDMUS_OBJECTDESC pDesc, REFIID riid, LPVOID FAR * 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 の相当するメンバを必要とすることはない。このメソッドは次の順序で検索を行う。
言い換えると、最も優先順位が高いのは一意の GUID であり、以下は、リソース、フル パス名、内部名とカテゴリ、内部名、ローカル ファイル名の順である。
ヘッダー : dmusici.h で宣言。
IDirectMusicLoader8::ReleaseObject、IDirectMusicLoader8::ScanDirectory、IDirectMusicLoader8::LoadObjectFromFile