DMUS_OBJECTDESC
DMUS_OBJECTDESC 構造体を使って、DirectMusic オブジェクトを記述する。この構造体を IDirectMusicLoader::GetObject メソッドに渡して、ローダーが記憶装置から取り出すべきオブジェクトを識別する。この構造体からオブジェクトに関する情報を取り出すには、IDirectMusicLoader::EnumObject と IDirectMusicObject::GetDescriptor の各メソッドを使う。
typedef struct _DMUS_OBJECTDESC {
DWORD dwSize;
DWORD dwValidData;
GUID guidObject;
GUID guidClass;
FILETIME ftDate;
DMUS_VERSION vVersion;
WCHAR wszName[DMUS_MAX_NAME];
WCHAR wszCategory[DMUS_MAX_CATEGORY];
WCHAR wszFileName[DMUS_MAX_FILENAME];
LONGLONG llMemLength;
PBYTE pbMemData;
} DMUS_OBJECTDESC, *LPDMUS_OBJECTDESC;
メンバ
- dwSize
- 構造体のサイズ。バイト単位で指定する。この構造体を任意のメソッドに渡す前に、このメンバを sizeof(DMUS_OBJECTDESC) に初期化しなければならない。
- dwValidData
- どのメンバが有効なのか記述し、いくつかのメンバに関する詳細な情報を提供するフラグ。次の値が定義されている。
- DMUS_OBJ_OBJECT
- guidObject メンバは有効である。
- DMUS_OBJ_CLASS
- guidClass メンバは有効である。
- DMUS_OBJ_NAME
- wszName メンバは有効である。
- DMUS_OBJ_CATEGORY
- wszCategory メンバは有効である。
- DMUS_OBJ_FILENAME
- wszFileName メンバは有効である。
- DMUS_OBJ_FULLPATH
- wszFileName メンバはフルパスを保持している。このフラグをセットした場合、ローダーは、DMUS_OBJ_FILENAME がセットされていなくても wszFileName が有効であると想定する。
- DMUS_OBJ_MEMORY
- オブジェクトはメモリ内にあり、llMemLength と pbMemData は有効である。
- DMUS_OBJ_URL
- wszFileName メンバは URL を保持している (DirectMusic ローダーは現在 URL をサポートしていない)。
- DMUS_OBJ_VERSION
- vVersion メンバは有効である。
- DMUS_OBJ_DATE
- ftDate メンバは有効である。
- DMUS_OBJ_LOADED
- オブジェクトは現在メモリ内にロードされている。
- guidObject
- このオブジェクトの一意の識別子。
- guidClass
- オブジェクト クラスの一意の識別子。すべての標準的なオブジェクトは、"CLSID_" とオブジェクト名で構成される定義済みの識別子を持っている。たとえば、セグメント オブジェクトは CLSID_DirectMusicSegment として識別される。Dmusici.h ヘッダー ファイル内の定義を参照すること。
- ftDate
- オブジェクトが最後に編集された日付。
- vVersion
- バージョン情報を保持する DMUS_VERSION 構造体。
- wszName
- オブジェクトの名前。
- wszCategory
- オブジェクトのカテゴリ。
- wszFileName
- ファイルのパス。DMUS_OBJ_FULLPATH が設定されている場合、この値はフル パスである。それ以外の場合、ファイル名だけである。
- llMemLength
- メモリ内のデータのサイズ。
- pbMemData
- メモリ内のデータ。
注意
IDirectMusicLoader::GetObject メソッドを使ってオブジェクトを取り出せるように、wszName、idGuid、および wszFileName の少なくとも 1 つに有効なデータを書き込まなければならない。
名前とカテゴリの文字列は、8 ビットの ANSI 文字ではなく、WCHAR フォーマットの 16 ビット文字を使う。必要に応じて変換を行うよう注意すること。C ライブラリの mbstowcs 関数を使って、マルチバイトから Unicode、wcstombs 関数を使って Unicode からマルチバイトへの変換も行える。
Windows NT/2000 : Windows 2000 が必要。
Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
ヘッダー : dmusici.h で宣言。
参照
DirectMusic ローダー