IDirect3DRMObject2

アプリケーションは、IDirect3DRMObject2インターフェイスのメソッドを使用して、Microsoft® Direct3D®保持モードオブジェクトのオブジェクト2スーパークラスに働きかける。Microsoft DirectX version 6.0は、すべての保持モードオブジェクトがインプリメントするIDirect3DRMObject2インターフェイスを導入する。任意のDirect3D保持モードオブジェクト上のQueryInterfaceを使用して、このインターフェイスへのポインタを取得することができる。

IDirect3DRMObject2は、同名のIDirect3DRMObjectメソッドと等価な次のメソッドをインプリメントする。
AddDestroyCallback
Clone
DeleteDestroyCallback
GetName
SetName

IDirect3DRMObject2IDirect3DRMObjectと共有するメソッドに加えて、次のメソッドもインプリメントする。
GetDirect3DRM
GetClientData
GetAge
SetClientData

IDirect3DRMObject2::GetClientDataIDirect3DRMObject2::SetClientDataは、オブジェクトとのデータ結合を提供する。これは、旧のIDirect3DRMObject::GetAppDataIDirect3DRMObject::SetAppDataメソッドよりも柔軟性が高い。

旧のオブジェクトインターフェイスの概念の概要については、「IDirect3DRMObject」を参照すること。Direct3D保持モードインターフェイスの履歴については、「インターフェイスの変更点」を参照すること。

IDirect3DRMObject2インターフェイスのメソッドは、以下のグループにまとめることができる。
アプリケーション固有のデータ GetClientData
SetClientData
複製 Clone
名前 GetName
SetName
その他 GetAge
GetDirect3DRM
通知 AddDestroyCallback
DeleteDestroyCallback

すべてのCOMインターフェイスと同様、IDirect3DRMObject2インターフェイスはIUnknownインターフェイスメソッドを継承する。IUnknownインターフェイスは、以下の3つのメソッドをサポートする。
AddRef
QueryInterface
Release

Direct3DRMObject2オブジェクトは、適切なQueryInterfaceメソッドを呼び出すことにより、どの保持モードオブジェクトからでも取得することができる。すべての保持モードオブジェクトは、IDirect3DRMObject2インターフェイスメソッドを継承する。

IDirect3DRMObject2::AddDestroyCallback

IDirect3DRMObject2

オブジェクトが破棄されるときに呼び出される関数を登録する。

構文

HRESULT AddDestroyCallback(
  D3DRMOBJECTCALLBACK lpCallback,
  LPVOID lpArg
  );

パラメータ

lpCallback
オブジェクトが破棄されるときに使われる、ユーザ定義のコールバック関数。
lpArg
コールバック関数に渡されたアプリケーション定義データのアドレス。この関数はオブジェクトが破棄された後に使われるため、引数としてオブジェクトを渡してはならない。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドは、IDirect3DRMObjectの同名のメソッドと同等である。

IDirect3DRMObject2::Clone

IDirect3DRMObject2

オブジェクトの複製を作成する。

構文

HRESULT Clone(
  LPUNKNOWN pUnkOuter,
  REFIID riid,
  LPVOID *ppvObj
  );

パラメータ

pUnkOuter
COM集合化を可能にする外部IUnknownインターフェイスへのポインタ。
riid
複製するオブジェクトの識別子。
ppvObj
メソッドが制御を返すとき、オブジェクトの複製を格納するアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

IDirect3DRMObject2::DeleteDestroyCallback

IDirect3DRMObject2

IDirect3DRMObject2::AddDestroyCallbackメソッドによって登録された関数を削除する。

構文

HRESULT DeleteDestroyCallback(
  D3DRMOBJECTCALLBACK d3drmObjProc,
  LPVOID lpArg
  );

パラメータ

d3drmObjProc
オブジェクトが破棄されるときに使われる、ユーザ定義のD3DRMOBJECTCALLBACKコールバック関数。
lpArg
コールバック関数に渡されたアプリケーション定義データのアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドは、IDirect3DRMObjectの同名のメソッドと同等である。

IDirect3DRMObject2::GetAge

IDirect3DRMObject2

オブジェクトの現在の年齢を報告する。

構文

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

IDirect3DRMObject2::GetClientData

IDirect3DRMObject2

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で導入された。

IDirect3DRMObject2::GetDirect3DRM

IDirect3DRMObject2

このオブジェクトの作成にかかわる最後のDirect3DRMオブジェクトのインターフェイスへのポインタを取得する。

構文

HRESULT GetDirect3DRM(
  LPLPDIRECT3DRM lplpD3DRM);

パラメータ

lplpD3DRM
lpDirect3DRMObjectで指定したオブジェクトの作成にかかわる、最後のDirect3D保持モードオブジェクトのインターフェイスへのポインタを受け取るアドレス。

戻り値

次の値のうち1つを返す。
 
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

IDirect3DRMObject2::GetName

IDirect3DRMObject2

オブジェクト名を取得する。

構文

HRESULT GetName(
  LPDWORD lpdwSize,
  LPSTR lpName
  );

パラメータ

lpdwSize
lpNameパラメータが示すバッファのサイズがバイト単位で入る変数のアドレス。
lpName
メソッドが制御を返すとき、オブジェクトの名前を示すNULLで終わる文字列のアドレス。このパラメータがNULLの場合、lpdwSizeパラメータには文字列に必要なサイズが設定される。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

参照

IDirect3DRMObject2::SetName

注意

このメソッドは、IDirect3DRMObjectの同名のメソッドと同等である。

IDirect3DRMObject2::SetClientData

IDirect3DRMObject2

保持モードオブジェクトを持つデータ項目を関連付ける。

構文

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で導入された。

IDirect3DRMObject2::SetName

IDirect3DRMObject2

オブジェクトの名前を設定する。

構文

HRESULT SetName(
  const char *lpName
  );

パラメータ

lpName
オブジェクトの名前を示すユーザ定義のデータ。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドは、IDirect3DRMObjectの同名のメソッドと同等である。

参照

IDirect3DRMObject2::GetName


トップに戻る トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.