アプリケーションは、Microsoft® Direct3D® 保持モードオブジェクトのスーパークラスとやりとりするために、Direct3DRMObjectインターフェイスのメソッドを使用する。
Direct3DRMObjectは、システム中のすべてのオブジェクトの共通スーパークラスである。Direct3DRMObjectオブジェクトには、すべてのオブジェクトに共通する特性がある。
オブジェクトを作成するには、アプリケーションは、最初に、Direct3D保持モードオブジェクトをインスタンス化しなければならない。次に、アプリケーションは、オブジェクトを作成するオブジェクトのインターフェイスメソッドを呼び出し、オブジェクトに固有のパラメータを指定する。たとえば、Direct3DRMAnimationオブジェクトを作成するには、アプリケーションはDirect3DRM3.CreateAnimationメソッドを呼び出すことになる。次に、作成メソッドは新しいオブジェクトを作成し、パラメータ中で (その他すべてはデフォルト値のまま) 渡されるデータのオブジェクト属性のいくつかを初期化し、オブジェクトを返す。次に、アプリケーションは、このオブジェクトのインターフェイスを指定し、オブジェクトを修正および使用することができる。
任意のオブジェクトは、アプリケーション固有データの32ビットを格納することができる。このデータを保持モードで解釈または変更できない。アプリケーションは、Direct3DRMObject.GetAppDataメソッドを使用してこのデータを読み込み、Direct3DRMObject.SetAppDataメソッドを使用してこのデータに書き込みすることができる。アプリケーションがDirect3DRMFrameの各オブジェクトの構造体を保持していれば、このデータの検索は簡単になる。たとえば、Direct3DRMFrame3.GetParentメソッドの呼び出しでDirect3DRMFrameオブジェクトを取得する場合、アプリケーションはそのプライベート構造体にアクセスして、データを簡単に取り出し、時間のかかる検索を避けることができる。
アプリケーションを編成する支援のために、またはアプリケーションのユーザインターフェイスの一部として、名前をオブジェクトに割り当てたい場合もあると思われる。Direct3DRMObject.SetNameとDirect3DRMObject.GetNameメソッドを使用して、オブジェクト名をセットし、取得することができる。
アプリケーション固有データの可能な用途のもう1つの例は、アプリケーションでメッシュ内の面をサブセット (たとえば、前面と後面) にグループ化する必要がある場合である。面の中のアプリケーションデータを使用して、面をこれらのグループのどこに入れるかを注記することができる。
アプリケーションでは、オブジェクトが破棄された場合に呼び出す関数を指定することができる。たとえば、アプリケーションでオブジェクトに関連付けられたメモリの割り当て解除を行う必要がある場合などである。このためには、Direct3DRMObject.AddDestroyCallbackメソッドを使用する。このメソッドで以前に登録した関数を削除するには、Direct3DRMObject.DeleteDestroyCallbackメソッドを使用する。
コールバックは、オブジェクトが破棄され、システムがオブジェクトのメモリ割り当てを解除しようとした場合にのみ呼び出される。アプリケーションがオブジェクトに関する追加データを保持している場合 (たとえば、ダイナミックスを実装するために)、アプリケーションはデータの処理が可能であることを自分自身に通知する手段として、このコールバックを使用することができる。
Direct3DRMObjectインターフェイスのメソッドは、以下のグループにまとめることができる。
アプリケーション固有のデータ GetAppData SetAppData 複製 CloneObject 名前 GetClassName GetName SetName 通知 AddDestroyCallback DeleteDestroyCallback
すべての保持モードオブジェクトは、Direct3DRMObjectインターフェイスメソッドを継承する。
オブジェクトが破棄されるときに呼び出される関数を登録する。
このメソッドは実装されていない。
構文
object.AddDestroyCallback(fn As Direct3DRMCallback, arg As Variant)
要素
- object
- Direct3DRMObjectオブジェクトを表すオブジェクト式。
- fn
- オブジェクトが破棄されるときに使われる、ユーザ定義のDirect3DRMCallbackコールバックインターフェイス。
- arg
- コールバックに渡されるアプリケーション定義データ。この関数はオブジェクトが破棄された後に使われるため、引数としてオブジェクトと共に使用してはならない。
エラー値
このメソッドはE_NOTIMPLを返す。
オブジェクトの複製を作成する。
構文
object.CloneObject( ) As Direct3DRMObject
要素
- object
- Direct3DRMObjectオブジェクトを表すオブジェクト式。
戻り値
オブジェクトの複製を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMObject.AddDestroyCallbackメソッドによって登録された関数を削除する。
このメソッドは実装されていない。
構文
object.DeleteDestroyCallback(fn As Direct3DRMCallback, args As Variant)
要素
- object
- Direct3DRMObjectオブジェクトを表すオブジェクト式。
- fn
- オブジェクトが破棄されるときに使われる、ユーザ定義のDirect3DRMCallbackインターフェイス。
- args
- コールバックに渡されるアプリケーション定義データ。
エラー値
このメソッドはE_NOTIMPLを返す。
オブジェクトから、アプリケーション固有の32ビットデータを取得する。データのデフォルト値は0である。
構文
object.GetAppData( ) As Long
要素
- object
- Direct3DRMObjectオブジェクトを表すオブジェクト式。
戻り値
アプリケーションによって定義されたデータ値を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
オブジェクトのクラス名を取得する。
構文
object.GetClassName( ) As String
要素
- object
- Direct3DRMObjectオブジェクトを表すオブジェクト式。
戻り値
クラス名を識別する文字列を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
オブジェクト名を取得する。
構文
object.GetName( ) As String
要素
- object
- Direct3DRMObjectオブジェクトを表すオブジェクト式。
戻り値
オブジェクトを識別する文字列を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
オブジェクトにアプリケーション固有の32ビットデータを設定する。
構文
object.SetAppData(data As Long)
要素
- object
- Direct3DRMObjectオブジェクトを表すオブジェクト式。
- data
- オブジェクトに格納されるユーザ定義のデータ。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
オブジェクトの名前を設定する。
構文
object.SetName(name As String)
要素
- object
- Direct3DRMObjectオブジェクトを表すオブジェクト式。
- name
- オブジェクトの名前を示すユーザ定義のデータ。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.