この節では、DirectX version 6.0で導入された、Microsoft® DirectX® (.x)ファイルの読み書きに使用する関数、インターフェイス、オブジェクト、データ型について解説する。また、インターフェイス間の関係を簡単に紹介し、インターフェイスの継承を示す階層図も示す。DirectXファイルのメソッドは、テキストファイルとバイナリファイルのどちらの読み書きにも使用できる。
これらのインターフェイスを使用するときは、「DirectXファイルフォーマットアーキテクチャ」で解説しているDirectXファイルのフォーマットに精通しておく必要がある。ファイルフォーマットを理解していると、インターフェイスとそのメソッドの目的をより理解しやすくなる。
この節には、次の項目が含まれている。
DirectX (.x)ファイルからのデータのロード方法と、DirectX (.x)ファイルへのデータの保存方法について、概要を説明する。DirectXファイルメソッドは、テキストとバイナリの両方のDirectXファイルを扱い、ファイル、メモリ、リソース、URLなど、各種ソースからのロードをサポートしている。
DirectXファイルのインターフェイスを使用するには、まずDirectXFileCreate関数を使用して IDirectXFileオブジェクトを作成する。
次の手順でDirectXファイルをロードする。
次の手順で、DirectXファイルのテンプレートとデータをDirectXファイルに保存する。
オブジェクトタイプ | 追加方法 |
データ | IDirectXFileSaveObject::CreateDataObjectメソッドを呼び出してIDirectXFileDataオブジェクトを作成し、次にIDirectXFileData::AddDataObjectメソッドを呼び出してオブジェクトの子として追加する。 |
データ参照 | IDirectXFileData::AddDataReferenceメソッドを呼び出し、データ参照オブジェクトをオブジェクトの子として作成し追加する。 |
バイナリ | IDirectXFileData::AddBinaryObjectメソッドを呼び出し、バイナリオブジェクトをオブジェクトの子として作成し追加する。 |
DirectXファイルインターフェイス間の関係を以下に示す。
IUnknown | +--IDirectXFile | +--IDirectXFileEnumObject | +--IDirectXFileObject | | | +--IDirectXFileBinary | | | +--IDirectXFileData | | | +--IDirectXFileDataReference | +--IDirectXFileSaveObject
DirectXでは、次のDirectXファイル関数とインターフェイスが用意されている。
次の表で、DirectXファイルの各インターフェイスに対応するグローバルユニーク識別子(GUID)を示す。QueryInterfaceメソッドでGUIDを使用し、子オブジェクトのタイプを判別する方法については、IDirectXFileDataインターフェイスの「はじめに」を参照すること。
インターフェイス | GUID |
IDirectXFile | IID_IDirectXFile |
IDirectXFileBinary | IID_IDirectXFileBinary |
IDirectXFileData | IID_IDirectXFileData |
IDirectXFileDataReference | IID_IDirectXFileDataReference |
IDirectXFileEnumObject | IID_IDirectXFileEnumObject |
IDirectXFileObject | IID_IDirectXFileObject |
IDirectXFileSaveObject | IID_IDirectXFileSaveObject |
DirectXFileCreate関数は、IDirectXFileインターフェイスを作成する。
構文
STDAPI DirectXFileCreate(LPDIRECTXFILE *ppDirectXFile);
パラメータ
- ppDirectXFile
- 作成されたIDirectXFileインターフェイスを受け取るポインタのアドレス。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADALLOC DXFILEERR_BADVALUE
注意
この関数を使用した後、IDirectXFileメソッドを使用して、テンプレートの登録 (RegisterTemplates)、列挙オブジェクトの作成 (CreateEnumObject)、または保存オブジェクトの作成 (CreateSaveObject) を行う。
IDirectXFileインターフェイスにより、IDirectXFileEnumObjectオブジェクトとIDirectXFileSaveObjectオブジェクトを作成し、テンプレートを登録することができる。
DirectXFileCreate関数を使用して、このオブジェクトのインスタンスを作成する。
IDirectXFileインターフェイスでは、次のメソッドが用意されている。
列挙オブジェクトを作成する。
構文
HRESULT CreateEnumObject( LPVOID pvSource, DXFILELOADOPTIONS dwLoadOptions, LPDIRECTXFILEENUMOBJECT * ppEnumObj);
パラメータ
- pvSource
- このポインタが指すデータの内容は、dwLoadOptionsの値によって次の表のように異なる。
dwLoadOptions値 pvSourceの内容 DXFILELOAD_FROMFILE ファイル名 DXFILELOAD_FROMRESOURCE DXFILELOADRESOURCE構造体 DXFILELOAD_FROMMEMORY DXFILELOADMEMORY構造体 DXFILELOAD_FROMURL URL(Uniform Resource Locator)の名前 - dwLoadOptions
- データのソースを指定する値。DXFILELOADOPTIONS値の1つ。
- ppEnumObj
- 作成されたIDirectXFileEnumObjectインターフェイスを受け取るポインタのアドレス。
戻り値
次の値のうち1つを返す。
注意
このメソッドを使用した後、IDirectXFileEnumObjectメソッドの1つを使用し、データオブジェクトを取得する。
IDirectXFileSaveObjectオブジェクトのインスタンスを作成する。
構文
HRESULT CreateSaveObject( LPCSTR szFileName, DXFILEFORMAT dwFileFormat, LPDIRECTXFILESAVEOBJECT * ppSaveObj);
パラメータ
- szFileName
- データを保存するファイルの名前へのポインタ。
- dwFileFormat
- ファイルフォーマット。DXFILEFORMAT定数の1つ。
- ppSaveObj
- 作成されたIDirectXFileSaveObjectオブジェクトを受け取るポインタのアドレス。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADALLOC DXFILEERR_BADFILE DXFILEERR_BADVALUE
注意
このメソッドを使用した後、IDirectXFileSaveObjectインターフェイスのメソッドを使用して、データオブジェクトを作成し、テンプレートやデータを保存する。
カスタムテンプレートを登録する。
構文
HRESULT RegisterTemplates( LPVOID pvData, DWORD cbSize);
パラメータ
- pvData
- DirectXファイルを構成するバッファへのポインタ。DirectXファイルは、テンプレートを含むテキストまたはバイナリフォーマットである。
- cbSize
- pvDataが指すバッファのサイズ。単位はバイト。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADFILEFLOATSIZE DXFILEERR_BADFILETYPE DXFILEERR_BADFILEVERSION DXFILEERR_BADVALUE DXFILEERR_PARSEERROR
注意
次のコードは、RegisterTemplatesの呼び出し例と、pvDataが指すバッファ内容の例である。
IDirectXFile * pDXFile; char *szTemplates = "xof 0303txt 0032\ template SimpleData { \ <2b934580-9e9a-11cf-ab39-0020af71e433> \ DWORD item1;DWORD item2;DWORD item3;} \ template ArrayData { \ <2b934581-9e9a-11cf-ab39-0020af71e433> \ DWORD cItems; array DWORD aItem[2][cItems]; [...] } \ template RestrictedData { \ <2b934582-9e9a-11cf-ab39-0020af71e433> \ DWORD item; [SimpleData]}"; hr = pDXFile->RegisterTemplates(szTemplates, strlen(szTemplates));テンプレートはすべて、名前とUUID (ユニバーサルユニーク識別子) を指定しなければならない。
IDirectXFileBinaryインターフェイスにより、バイナリデータの読み込みとデータに関する情報の取得ができる。
IDirectXFileBinaryインターフェイスでは、次のメソッドが用意されている。
また、IDirectXFileBinaryは、IDirectXFileObject::GetIdメソッドとIDirectXFileObject::GetNameメソッドを継承する。
バイナリデータのmimeタイプを取得する。
構文
HRESULT GetMimeType(LPCSTR * pszMimeType);
パラメータ
- pszMimeType
- mimeタイプの文字列を受け取るポインタのアドレス。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADVALUE
指定された.XファイルのバイナリオブジェクトにMimeタイプが指定されていない場合、この関数は*pszMimeTypeにNULLを設定する。
バイナリデータのサイズを取得する。
構文
HRESULT GetSize(DWORD * pcbSize);
パラメータ
- pcbSize
- バイナリデータのサイズを受け取るポインタ。単位はバイト。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADVALUE
バイナリデータを読み出す。
構文
HRESULT Read( LPVOID pvData, DWORD cbSize, LPDWORD pcbRead);
パラメータ
- pvData
- 読み出されたデータを受け取るバッファへのポインタ。
- cbSize
- pvDataが指すバッファのサイズ。単位はバイト。
- pcbRead
- 読み出されたバイト数へのポインタ。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADVALUE DXFILEERR_NOMOREDATA
IDirectXFileDataインターフェイスでは、データオブジェクトの直接階層の構築またはアクセスができるメソッドが用意されている。テンプレートの制約が階層を決定する。テンプレートにより許可されたデータ型は、オプションメンバと呼ばれる。オプションメンバは必須ではないが、これがないと、オブジェクトから重要な情報が欠落することがある。オプションメンバは、データオブジェクトの子として保存される。子オブジェクトは、別のデータオブジェクト、以前のデータオブジェクトへの参照、またはバイナリオブジェクトである。
オブジェクトをDirectXファイルに保存するときは、AddBinaryObject、AddDataObject、またはAddDataReferenceを使用して、それぞれバイナリオブジェクト、データオブジェクト、またはデータ参照オブジェクトをファイルに追加する。詳細については、「ファイルの保存」を参照すること。
既存のDirectXファイルのオブジェクトを列挙するときは、次のように、GetData、GetNextObject、およびGetTypeメソッドを使用する。
IDirectXFileObject *DXFileObj; IDirectXFileBinary *DXFileBinary; if (FAILED(DXFileObj->QueryInterface(IID_IDirectXFileBinary, (LPVOID *)&DXFileBinary)) { // オブジェクトはIDirectXFileBinaryをサポートしないため、 // バイナリオブジェクトではない。 } else { // オブジェクトはバイナリである。 }
IDirectXFileDataインターフェイスでは、次のメソッドが用意されている。
また、IDirectXFileDataはIDirectXFileObject::GetIdメソッドとIDirectXFileObject::GetNameメソッドを継承する。
子オブジェクトとしてバイナリオブジェクトを作成して追加する。
構文
HRESULT AddBinaryObject( LPCSTR szName, const GUID * pguid, LPCSTR szMimeType, LPVOID pvData, DWORD cbSize);
パラメータ
- szName
- オブジェクトの名前へのポインタ。オプションで、オブジェクトが名前を必要としないときは、NULLを指定する。
- pguid
- オブジェクトを表すGUIDへのポインタ。オプションで、オブジェクトがGUIDを必要としないときは、NULLを指定する。
- szMimeType
- オブジェクトのmimeタイプへのポインタ。
- pvData
- オブジェクトのデータへのポインタ。
- cbSize
- pvDataが指すバッファのサイズ。単位はバイト。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADALLOC DXFILEERR_BADVALUE
注意
子オブジェクトの保存の詳細については、このインターフェイス、IDirectXFileDataの「はじめに」を参照すること。
子オブジェクトとしてデータオブジェクトを追加する。
構文
HRESULT AddDataObject(LPDIRECTXFILEDATA pDataObj);
パラメータ
- pDataObj
- 子オブジェクトとして追加するIDirectXFileDataオブジェクトへのポインタ。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADALLOC DXFILEERR_BADVALUE
注意
このメソッドを呼び出す前に、IDirectXFileSaveObject::CreateDataObjectメソッドを使用して、IDirectXFileDataオブジェクトを作成する。
オブジェクトの保存の詳細については、このインターフェイス、IDirectXFileDataの「はじめに」を参照すること。
子オブジェクトとしてデータ参照オブジェクトを作成して追加する。
構文
HRESULT AddDataReference( LPCSTR szRef, const GUID * pguidRef);
パラメータ
- szRef
- 参照されるデータオブジェクトの名前へのポインタ。pguidRefでGUIDが参照できる場合は、NULLでよい。
- pguidRef
- データを表すGUIDへのポインタ。szRefで名前が参照できる場合は、NULLでよい。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADALLOC DXFILEERR_BADVALUE
注意
パラメータszRefまたはpguidRefの少なくともどちらか1つは、非NULLでなければならない。
オブジェクトの保存の詳細については、このインターフェイス、IDirectXFileDataの「はじめに」を参照すること。
1つのオブジェクトメンバのデータ、またはすべてのメンバのデータを取得する。
構文
HRESULT GetData( LPCSTR szMember, DWORD * pcbSize, void ** ppvData);
パラメータ
- szMember
- データを取得するメンバの名前。要求された全メンバのデータを取得するときは、NULLを指定する。
- pcbSize
- ppvDataのバッファサイズを受け取るポインタ。単位はバイト。
- ppvData
- szMemberに関連するデータを受け取るポインタのアドレス。szMemberがNULLのとき、*ppvDataは、連続するメモリブロックに要求された全メンバのデータが入っているバッファを指すように設定される。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADARRAYSIZE DXFILEERR_BADDATAREFERENCE DXFILEERR_BADVALUE
注意
このメソッドは、要求されたデータオブジェクトのメンバのデータを取得するが、オプション (子) メンバのデータは取得しない。子オブジェクトを取得するには、GetNextObjectを使用する。
オブジェクトの列挙の詳細については、このインターフェイス、IDirectXFileDataの「はじめに」を参照すること。
DirectXファイルの、次の子データオブジェクト、データ参照オブジェクト、またはバイナリオブジェクトを取得する。
構文
HRESULT GetNextObject(LPDIRECTXFILEOBJECT * ppChildObj);
パラメータ
- ppChildObj
- 子オブジェクトのIDirectXFileObjectインターフェイスへのポインタを受け取るアドレス。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADVALUE DXFILEERR_NOMOREOBJECTS
注意
取得するオブジェクトのタイプを判別するには、QueryInterfaceを使用して、取得するオブジェクトにIDirectXFileData、IDirectXFileDataReference、またはIDirectXFileBinaryインターフェイスをサポートするかどうかを問い合わせる。サポートされるインターフェイスが、オブジェクトタイプ (データ、データ参照、またはバイナリ) を示している。
子オブジェクト、オブジェクトの列挙、およびオブジェクトタイプの判別に関する詳細については、このインターフェイス、IDirectXFileDataの「はじめに」を参照すること。
オブジェクトのテンプレートのGUIDを取得する。
構文
HRESULT GetType(const GUID ** ppguid);
パラメータ
- ppguid
- オブジェクトのテンプレートのGUIDを受け取るポインタのアドレス。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADVALUE
IDirectXFileDataReferenceインターフェイスは、データ参照オブジェクトをサポートする。データ参照オブジェクトは、ファイル内で既に定義されているデータオブジェクトを参照する。これにより、ファイル内で定義を繰り返さなくても、同じオブジェクトを何度も使用することができる。
オブジェクトがデータ参照オブジェクトであると判別された後、このインターフェイスのResolveメソッドを使用して、ファイル内で既に定義されている実際のオブジェクトを取得する。データ参照オブジェクトの判別方法の詳細については、IDirectXFileDataインターフェイスを参照すること。
また、IDirectXFileDataReferenceは、IDirectXFileObject::GetIdとIDirectXFileObject::GetNameメソッドを継承する。
データ参照を解決する。
構文
HRESULT Resolve(LPDIRECTXFILEDATA * ppDataObj);
パラメータ
- ppDataObj
- IDirectXFileDataオブジェクトを受け取るポインタのアドレス。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADVALUE DXFILEERR_NOTFOUND
IDirectXFileEnumObjectインターフェイスでは、処理を繰り返して、ファイルの全データオブジェクトを取得したり、GUIDまたは名前でデータオブジェクトを取得することができる。
IDirectXFileEnumObjectインターフェイスでは、次のメソッドが用意されている。
指定したGUIDを持つデータオブジェクトを取得する。
構文
HRESULT GetDataObjectById( REFGUID rguid, LPDIRECTXFILEDATA * ppDataObj);
パラメータ
- rguid
- 指定したGUIDへの参照。
- ppDataObj
- 取得したIDirectXFileDataオブジェクトを受け取るポインタ。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADVALUE DXFILEERR_NOTFOUND
指定した名前を持つデータオブジェクトを取得する。
構文
HRESULT GetDataObjectByName( LPCSTR szName, LPDIRECTXFILEDATA * ppDataObj);
パラメータ
- szName
- 指定された名前へのポインタ。
- ppDataObj
- 取得したIDirectXFileDataオブジェクトを受け取るポインタ。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADVALUE DXFILEERR_NOTFOUND
DirectXファイルのトップレベルの次のオブジェクトを取得する。トップレベルのオブジェクトは常にデータオブジェクトである。データ参照オブジェクトとバイナリオブジェクトは、データオブジェクトの子にしかなれない。
構文
HRESULT GetNextDataObject( LPDIRECTXFILEDATA * ppDataObj);
パラメータ
- ppDataObj
- 取得したIDirectXFileDataオブジェクトを受け取るポインタ。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADVALUE DXFILEERR_NOMOREOBJECTS
IDirectXFileObjectインターフェイスは、DirectXファイルオブジェクトの基本インターフェイスである。IDirectXFileData、IDirectXFileDataReference、およびIDirectXFileBinaryインターフェイスは、すべてこのインターフェイスから継承される。
IDirectXFileObjectインターフェイスでは、次のメソッドが用意されている。
DirectXファイルオブジェクトを識別するGUIDへのポインタを取得する。
構文
HRESULT GetId (LPGUID pGuid)
パラメータ
- pGuid
- オブジェクトのIDを受け取るGUIDへのポインタ。オブジェクトがIDを持っていない場合、この関数はGUIDにNULL GUIDを設定する。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADVALUE
DirectXファイルオブジェクトの名前へのポインタを取得する。
構文
HRESULT GetName (LPSTR pstrNameBuf, LPDWORD pdwBufLen)
パラメータ
- pstrNameBuf
- DirectXファイルオブジェクトの名前をコピーするバッファへのポインタ。バッファ長のみが必要な場合は、NULLに設定する。
- pdwBufLen
- pstrNameBufが指すバッファの長さを指定するDWORDへのポインタ。pstrNameBufがNULLであっても、pdwBufLenはオブジェクト名を保持するために必要なバッファ長に変更される。どちらの場合でも、pdwBufLenの元の値がオブジェクト名を保持するために必要な長さに足りないときには、関数はDXFILEERR_BADVALUEを返す。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADALLOC
IDirectXFileSaveObjectインターフェイスにより、データオブジェクトを作成し、テンプレートとデータオブジェクトを保存することができる。IDirectXFile::CreateSaveObjectを使用して、このオブジェクトのインスタンスを作成する。次に、SaveTemplatesを使用して、テンプレートを保存する。データオブジェクトの作成には、CreateDataObjectを使用し、データの保存にはSaveDataを使用する。
必ずしもすべてのファイルにテンプレートが必要なわけではない。たとえば、すべてのDirectXファイルにそれぞれテンプレートを複製するのではなく、1つのDirectXファイルにテンプレートすべてを置くこともできる。
IDirectXFileSaveObjectインターフェイスでは、次のメソッドが用意されている。
データオブジェクトを作成する。
構文
HRESULT CreateDataObject( REFGUID rguidTemplate, LPCSTR szName, const GUID * pguid, DWORD cbSize, LPVOID pvData, LPDIRECTXFILEDATA * ppDataObj);
パラメータ
- rguidTemplate
- データオブジェクトのテンプレートを表すGUID。
- szName
- データオブジェクトの名前へのポインタ。オプションで、オブジェクトが名前を持っていない場合は、NULLを指定する。このオブジェクトをデータ参照オブジェクトにより参照するには、szNameまたはpguidパラメータの、少なくともどちらか1つは非NULLでなければならない。
- pguid
- データオブジェクトを表すGUIDへのポインタ。オプションで、オブジェクトがGUIDを持っていない場合は、NULLを指定する。このオブジェクトをデータ参照オブジェクトにより参照するには、szNameまたはpguidパラメータの、少なくともどちらか1つは非NULLでなければならない。
- cbSize
- データオブジェクトのサイズ。単位はバイト。
- pvData
- 要求されたメンバのデータすべてを格納するバッファへのポインタ。
- ppDataObj
- 作成されたIDirectXFileDataオブジェクトを受け取るポインタのアドレス。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADALLOC DXFILEERR_BADVALUE
注意
SaveTemplatesメソッドを使用してテンプレートを保存してから、このメソッドで作成したデータを保存する。作成したデータは、SaveDataメソッドを使って保存する。オプションデータを保存する必要があるときは、このメソッドの後、SaveDataの前に、IDirectXFileData::AddDataObjectメソッドを使用する。オブジェクトに子オブジェクトがあるときは、SaveDataを呼び出す前に子オブジェクトを追加する。
データオブジェクトとその子オブジェクトを、DirectXファイルに保存する。
構文
HRESULT SaveData( LPDIRECTXFILEDATA pDataObj);
パラメータ
- pDataObj
- 保存するIDirectXFileDataオブジェクトへのポインタ。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADARRAYSIZE DXFILEERR_BADVALUE
テンプレートをDirectXファイルに保存する。
構文
HRESULT SaveTemplates( DWORD cTemplates, const GUID ** ppguidTemplates);
パラメータ
- cTemplates
- 保存するテンプレートの総数。
- ppguidTemplates
- 保存するすべてのテンプレートに対するGUIDの配列へのポインタのアドレス。
戻り値
次の値のうち1つを返す。
DXFILE_OK DXFILEERR_BADVALUE
注意
次のコードは、SaveTemplatesの呼び出し例と、ppuuidが指す配列の内容の例である。
IDirectXFileSaveObject * pDXFileSaveObject; const GUID *aIds[] = { &DXFILEOBJ_SimpleData, &DXFILEOBJ_ArrayData, &DXFILEOBJ_RestrictedData}; hr = pDXFileSaveObject->SaveTemplates(3, aIds);このメソッドでテンプレートを保存した後、IDirectXFileSaveObject::CreateDataObjectメソッドを使用してデータオブジェクトを作成する。
DirectXファイルのインターフェイスでは、次の定数と構造体を使用する。
IDirectXFile::CreateSaveObjectメソッドで使用される値を指定し、DirectXファイルを保存するときに使用するフォーマットを示す。
構文
typedef DWORD DXFILEFORMAT; #define DXFILEFORMAT_BINARY 0 #define DXFILEFORMAT_TEXT 1 #define DXFILEFORMAT_COMPRESSED 2
値
ファイルフォーマットのデフォルト値は、DXFILEFORMAT_BINARYである。ファイルフォーマットの値を論理ORで結合して、圧縮テキストファイルや圧縮バイナリファイルを作成することもできる。ファイルがバイナリ (0) とテキスト (1) の両方として指定されている場合、その値はテキストファイルフォーマットの値 (0 + 1 = 1) と区別がつかないので、テキストファイルとして保存される。ファイルフォーマットとしてテキストと圧縮を指定すると、ファイルはまずテキストとして書き込まれてから圧縮される。ただし、圧縮テキストファイルはバイナリテキストファイルほど効率が良くないので、多くの場合、バイナリで圧縮を指定する。フォーマットを指定せずにファイルを圧縮するよう設定すると、バイナリで圧縮されたファイルになる。
- DXFILEFORMAT_BINARY
- バイナリファイルを示す。
- DXFILEFORMAT_TEXT
- テキストファイルを示す。
- DXFILEFORMAT_COMPRESSED
- 圧縮ファイルを示す。
アプリケーションがIDirectXFile::CreateEnumObjectメソッドを使用してDXFILELOAD_FROMMEMORYを指定するとき、ロードするリソースを識別する。
構文
typedef struct _DXFILELOADMEMORY { LPVOID lpMemory; DWORD dSize; }DXFILELOADMEMORY, *LPDXFILELOADMEMORY;
メンバ
- lpMemory
- ロードするメモリブロックへのポインタ。
- dSize
- ロードするメモリブロックのサイズ。単位はバイト。
IDirectXFile::CreateEnumObjectメソッドで使用する値を指定し、ファイルデータのソースを示す。
構文
typedef DWORD DXFILELOADOPTIONS; #define DXFILELOAD_FROMFILE 0x00L #define DXFILELOAD_FROMRESOURCE 0x01L #define DXFILELOAD_FROMMEMORY 0x02L #define DXFILELOAD_FROMSTREAM 0x04L #define DXFILELOAD_FROMURL 0x08L
値
- DXFILELOAD_FROMFILE
- ファイルから読み出されたデータを示す。
- DXFILELOAD_FROMRESOURCE
- リソースから読み出されたデータを示す。
- DXFILELOAD_FROMMEMORY
- メモリから読み出されたデータを示す。
- DXFILELOAD_FROMSTREAM
- ストリームから読み出されたデータを示す。現在はサポートされていない。
- DXFILELOAD_FROMURL
- URL (Uniform Resource Locator) から読み出されたデータを示す。
アプリケーションがIDirectXFile::CreateEnumObjectメソッドを使用してDXFILELOAD_FROMRESOURCEを指定するとき、ロードするリソースを識別する。
構文
typedef struct _DXFILELOADRESOURCE { HMODULE hModule; LPCTSTR lpName; LPCTSTR lpType; }DXFILELOADRESOURCE, *LPDXFILELOADRESOURCE;
メンバ
- hModule
- ロードするリソースを含むモジュールのハンドル。このメンバがNULLのときは、使用する実行ファイルにリソースをアタッチしなければならない。
- lpName
- ロードするリソースの名前。たとえば、リソースがメッシュのときは、このメンバはメッシュファイルの名前を指定する。
- lpType
- リソースを識別するユーザ定義のタイプ。
DirectXファイルのCOM (Component Object Model) インターフェイスのメソッドは、標準のCOM戻り値のほかに次の値を返すことがある。
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.