次の方法で共有


IDirect3DVolume9::SetPrivateData

Direct3D ではなくアプリケーションによって使用されるボリュームとデータを関連付けます。

HRESULT 
SetPrivateData(
  REFGUID refguid,
  CONST void * pData,
  DWORD SizeOfData,
  DWORD Flags
);

パラメータ

  • refguid
    設定対象のプライベート データを指すグローバル一意識別子への参照。
  • pData
    ボリュームと関連付けるデータが含まれるバッファーへのポインター。
  • SizeOfData
    pData によって示されるバッファーのサイズ (バイト単位)。
  • Flags
    渡されるデータの型を示す値、またはリソースの変更時にデータを無効化する必要があることをアプリケーションに示す値。
    • (なし)
      フラグを 1 つも指定しないと、バッファー内のデータを格納するためのメモリーが割り当てられ、そのデータが新しいバッファーにコピーされます。Direct3D によって割り当てられたバッファーは、必要に応じて自動的に解放されます。
    • D3DSPD_IUNKNOWN
      pData が示すデータは、IUnknown インターフェイスへのポインターです。SizeOfData は、IUnknown インターフェイスへのポインターのサイズである sizeof(IUnknown*) に設定する必要があります。プライベート データが破棄されると、pData および IUnknown を通じて Direct3D で自動的に IUnknown が呼び出されます。プライベート データは、IDirect3DVolume9::SetPrivateData(同じ GUID を指定) を次に呼び出したとき、IDirect3DVolume9::FreePrivateData を次に呼び出したとき、または IDirect3D9 オブジェクトが解放されたときに破棄されます。詳細については、「解説」を参照してください。

戻り値

メソッドが成功した場合は、D3D_OK を返します。失敗した場合は、次の戻り値のいずれかを返します。D3DERR_INVALIDCALL、E_OUTOFMEMORY

解説 

Direct3D は、pData のメモリーを管理しません。このバッファーが動的に割り当てられた場合、そのメモリーを解放するのは呼び出し側アプリケーションの責任です。

データは値によって渡され、単一のボリュームに複数セットのデータを関連付けることができます。

要件

ヘッダー: D3D9.h 宣言

ライブラリ: D3D9.lib 内容

関連項目

IDirect3DVolume9::FreePrivateData, IDirect3DVolume9::GetPrivateData