アプリケーションは、IDirect3DRMObject2インターフェイスのメソッドを使用して、Microsoft® Direct3D®保持モードオブジェクトのオブジェクト2スーパークラスに働きかける。Microsoft DirectX version 6.0は、すべての保持モードオブジェクトがインプリメントするIDirect3DRMObject2インターフェイスを導入する。任意のDirect3D保持モードオブジェクト上のQueryInterfaceを使用して、このインターフェイスへのポインタを取得することができる。
IDirect3DRMObject2は、同名のIDirect3DRMObjectメソッドと等価な次のメソッドをインプリメントする。
AddDestroyCallback |
Clone |
DeleteDestroyCallback |
GetName |
SetName |
IDirect3DRMObject2がIDirect3DRMObjectと共有するメソッドに加えて、次のメソッドもインプリメントする。
GetDirect3DRM |
GetClientData |
GetAge |
SetClientData |
IDirect3DRMObject2::GetClientDataとIDirect3DRMObject2::SetClientDataは、オブジェクトとのデータ結合を提供する。これは、旧のIDirect3DRMObject::GetAppDataとIDirect3DRMObject::SetAppDataメソッドよりも柔軟性が高い。
旧のオブジェクトインターフェイスの概念の概要については、「IDirect3DRMObject」を参照すること。Direct3D保持モードインターフェイスの履歴については、「インターフェイスの変更点」を参照すること。
IDirect3DRMObject2インターフェイスのメソッドは、以下のグループにまとめることができる。
アプリケーション固有のデータ | GetClientData |
SetClientData | |
複製 | Clone |
名前 | GetName |
SetName | |
その他 | GetAge |
GetDirect3DRM | |
通知 | AddDestroyCallback |
DeleteDestroyCallback |
すべてのCOMインターフェイスと同様、IDirect3DRMObject2インターフェイスはIUnknownインターフェイスメソッドを継承する。IUnknownインターフェイスは、以下の3つのメソッドをサポートする。
AddRef |
QueryInterface |
Release |
Direct3DRMObject2オブジェクトは、適切なQueryInterfaceメソッドを呼び出すことにより、どの保持モードオブジェクトからでも取得することができる。すべての保持モードオブジェクトは、IDirect3DRMObject2インターフェイスメソッドを継承する。
オブジェクトが破棄されるときに呼び出される関数を登録する。
構文
HRESULT AddDestroyCallback(
D3DRMOBJECTCALLBACK lpCallback,
LPVOID lpArg
);
パラメータ
- lpCallback
- オブジェクトが破棄されるときに使われる、ユーザ定義のコールバック関数。
- lpArg
- コールバック関数に渡されたアプリケーション定義データのアドレス。この関数はオブジェクトが破棄された後に使われるため、引数としてオブジェクトを渡してはならない。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、IDirect3DRMObjectの同名のメソッドと同等である。
オブジェクトの複製を作成する。
構文
HRESULT Clone(
LPUNKNOWN pUnkOuter,
REFIID riid,
LPVOID *ppvObj
);
パラメータ
- pUnkOuter
- COM集合化を可能にする外部IUnknownインターフェイスへのポインタ。
- riid
- 複製するオブジェクトの識別子。
- ppvObj
- メソッドが制御を返すとき、オブジェクトの複製を格納するアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
IDirect3DRMObject2::AddDestroyCallbackメソッドによって登録された関数を削除する。
構文
HRESULT DeleteDestroyCallback(
D3DRMOBJECTCALLBACK d3drmObjProc,
LPVOID lpArg
);
パラメータ
- d3drmObjProc
- オブジェクトが破棄されるときに使われる、ユーザ定義のD3DRMOBJECTCALLBACKコールバック関数。
- lpArg
- コールバック関数に渡されたアプリケーション定義データのアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、IDirect3DRMObjectの同名のメソッドと同等である。
オブジェクトの現在の年齢を報告する。
構文
HRESULT GetAge( DWORD dwFlags, LPDWORD lpdwAge);
パラメータ
- dwFlags
- フラグ値。オブジェクトがメッシュビルダでない場合、0でなければならない。オブジェクトがメッシュビルダである場合、次の値のどれか1つをセットできる。
- デフォルト(0)
- メッシュビルダは通常通りに年をとる(エージングはメッシュビルダに対する何らかの変更によって引き起こされる)。
- D3DRMMESHBUILDERAGE_GEOMETRY
- メッシュビルダは、メッシュジオメトリが変更されるたびに年をとる(たとえば、頂点、面または別のメッシュビルダの追加)。
- D3DRMMESHBUILDERAGE_MATERIALS
- メッシュビルダは、メッシュのマテリアル関連プロパティが変更されるたびに、あるいは、面または別のメッシュが追加された場合に年をとる。
- D3DRMMESHBUILDERAGE_TEXTURES
- メッシュビルダは、メッシュのテクスチャ関連プロパティが変更されるたびに、あるいは、面または別のメッシュが追加された場合に年をとる。
- lpdwAge
- 年齢を受け取るポインタ。
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
オブジェクトが修正されると、年齢が増える。
このメソッドはDirectX version 6.0で導入された。DirectX 6.0以降では、次のオブジェクトのみエージングをサポートする。
Direct3DRMDevice3 Direct3DRMTexture3 Direct3DRMMeshBuilder3 Direct3DRMUserVisual Direct3DRMShadow2 Direct3DRMWrap
SetClientDataの呼び出しを介して、オブジェクトに以前に関連付けられたデータを取得する。
構文
HRESULT GetClientData( DWORD dwID, LPVOID *lplpvData);
パラメータ
- dwID
- RegisterClientの呼び出しにより取得されるアプリケーションID。
- lplpvData
- 関連データを受け取る変数のアドレス。
NULL値は、 データがセットされていないことを示す。
戻り値
次の値のうち1つを返す。
D3DRMERR_CLIENTNOTREGISTERED DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DDERR_NOTFOUND DDERR_NOTINITIALIZED DD_OK
注意
データのタイプがIUnknownであるならば、このメソッドは、データを呼び出し元に返す前に参照カウントをインクリメントする。このメソッドは、DirectX version 6.0で導入された。
このオブジェクトの作成にかかわる最後のDirect3DRMオブジェクトのインターフェイスへのポインタを取得する。
構文
HRESULT GetDirect3DRM( LPLPDIRECT3DRM lplpD3DRM);
パラメータ
- lplpD3DRM
- lpDirect3DRMObjectで指定したオブジェクトの作成にかかわる、最後のDirect3D保持モードオブジェクトのインターフェイスへのポインタを受け取るアドレス。
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
オブジェクト名を取得する。
構文
HRESULT GetName(
LPDWORD lpdwSize,
LPSTR lpName
);
パラメータ
- lpdwSize
- lpNameパラメータが示すバッファのサイズがバイト単位で入る変数のアドレス。
- lpName
- メソッドが制御を返すとき、オブジェクトの名前を示すNULLで終わる文字列のアドレス。このパラメータがNULLの場合、lpdwSizeパラメータには文字列に必要なサイズが設定される。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
参照
注意
このメソッドは、IDirect3DRMObjectの同名のメソッドと同等である。
保持モードオブジェクトを持つデータ項目を関連付ける。
構文
HRESULT SetClientData( DWORD dwID, LPVOID lpvData, DWORD dwFlags);
パラメータ
- dwID
- IDirect3DRM3::RegisterClientの呼び出しにより取得されるアプリケーションID。
- lpvData
- オブジェクトに関連付けられるアプリケーション固有のデータ。
- dwFlags
- 保持モードによるデータの解釈方法を決めるフラグ。
フラグ D3DRMCLIENTDATA_NONE D3DRMCLIENTDATA_LOCALFREE D3DRMCLIENTDATA_IUNKNOWN データの解釈 解釈なし データはクライアントにより割り当てられる。Direct3DRMは、結合解除の際にそれを開放する必要がある。 データはIUnknownインターフェイスをポイントすることを前提とする。 SetClientData上の動作 動作なし 動作なし Direct3D保持モードは、インターフェイス上の参照カウントをインクリメントする。 GetClientData上の動作 動作なし 動作なし Direct3D保持モードは、呼び出し元にそれを渡す前にインターフェイス上の参照カウントをインクリメントする。 データがオブジェクトから結合解除された場合に動作 動作なし データ上ではLocalFreeが使用される。 Direct3D保持モードは、インターフェイス上の参照カウントをデクリメントする。
戻り値
次の値のうち1つを返す。
D3DRMERR_CLIENTNOTREGISTERED DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
データの削除は、NULLをlpvDataパラメータとしてこのメソッドを呼び出すか、 オブジェクトの破棄によるか、またはIDirect3DRM3::UnregisterClientを使用して行うことができる。 dwIDで指定されるIDを使用して以前にデータをオブジェクトに関連付けた場合、 以前のデータはリリースされる。破棄メソッドは、dwFlagsパラメータ中でこのメソッドに渡されるフラグに依存する。 GetClientDataの呼び出しによって、データを取得することができる。このメソッドは、DirectX version 6.0で導入された。
オブジェクトの名前を設定する。
構文
HRESULT SetName(
const char *lpName
);
パラメータ
- lpName
- オブジェクトの名前を示すユーザ定義のデータ。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、IDirect3DRMObjectの同名のメソッドと同等である。
参照
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.