Microsoft DirectX 8.0 (C++)

IDirect3DSurface8::SetPrivateData

Microsoft® Direct3D® ではなく、アプリケーションでの使用が意図されているサーフェスとデータを関連付ける。

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

パラメータ

refguid
[in] 設定するプライベート データを識別するグローバル ユニーク識別子への参照 (C++) またはアドレス (C)。
pData
[in] サーフェスと関連付けるデータが格納されているバッファへのポインタ。
SizeOfData
[in] pData のバッファ サイズ (バイト単位)。
Flags
[in] 渡されるデータ型を記述する値、またはリソースが変更された場合にデータを無効にする必要があることをアプリケーションに示す値。
(none)
フラグを指定しない場合、Direct3D はバッファ内のデータを保持するメモリを割り当て、新しいバッファにデータをコピーする。Direct3D によって割り当てられるバッファは、適宜自動的に解放される。
D3DSPD_IUNKNOWN
pData のデータは IUnknown インターフェイスへのポインタである。SizeOfData は、IUnknown インターフェイス (sizeof(IUnknown*)) へのポインタのサイズに設定する必要がある。Direct3D は pData を介して IUnknown::AddRef を、プライベート データが破棄される場合は IUnknown::Release を自動的に呼び出す。次に同じ GUID で SetPrivateData を呼び出すと、または次に IDirect3DSurface8::FreePrivateData を呼び出すと、または Direct3D8 オブジェクトが解放されると、プライベート データは破棄される。詳細については、「注意」を参照すること。

戻り値

成功した場合は、D3D_OK を返す。

失敗した場合は、次のいずれかの値を返す。

D3DERR_INVALIDCALL
E_OUTOFMEMORY

注意

Direct3D は pData でメモリを管理しない。このバッファが動的に割り当てられた場合は、呼び出し側の責任でメモリを解放する。

データは値で渡され、複数のデータ セットを単一のサーフェスと関連付けることができる。

動作環境

  ヘッダー : d3d8.h で宣言。
  インポート ライブラリ : D3d8.lib を使用。

参照

IDirect3DSurface8::FreePrivateDataIDirect3DSurface8::GetPrivateData