Platform SDK: DirectX

DMUS_OBJECTDESC

DMUS_OBJECTDESC 構造体を使って、DirectMusic オブジェクトを記述する。この構造体を IDirectMusicLoader::GetObject メソッドに渡して、ローダーが記憶装置から取り出すべきオブジェクトを識別する。この構造体からオブジェクトに関する情報を取り出すには、IDirectMusicLoader::EnumObjectIDirectMusicObject::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
オブジェクトはメモリ内にあり、llMemLengthpbMemData は有効である。
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 メソッドを使ってオブジェクトを取り出せるように、wszNameidGuid、および 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 ローダー