IDirectDrawSurface7::SetPrivateData
IDirectDrawSurface7::SetPrivateData メソッドは、DirectDraw ではなくアプリケーションでよく使用されるサーフェスとデータを関連付ける。データは値で渡され、データとデータの複数設定は単一のサーフェスと関連付けられる。
HRESULT SetPrivateData(
REFGUID guidTag,
LPVOID lpData,
DWORD cbSize,
DWORD dwFlags
);
パラメータ
- guidTag
- 設定するプライベート データを識別するグローバル識別子の (C++) または (C) のアドレスへの参照。
- lpData
- サーフェスに関連付けられるデータを含むバッファのアドレス。
- cbSize
- バイト単位の lpData におけるバッファ サイズ。
- dwFlags
- 渡されるデータの型を記述したり、サーフェスの変更時に無効となるデータを要求するフラグ。以下のフラグが定義されている。
- (none)
- フラグが指定されない場合、DirectDraw はバッファ内のデータを保持するメモリを割り当て、新しいバッファにデータをコピーする。DirectDraw によって割り当てられるバッファは、適宜自動的に解放される。
- DDSPD_IUNKNOWNPOINTER
- IpData のデータは、IUnknown インターフェイスへのポインタである。DirectDraw は、このインターフェイスの IUnknown::AddRef メソッドを自動的に呼び出す。このデータが不要になると、DirectDraw はこのインターフェイスの IUnknown::Release メソッドを自動的に呼び出す。
- DDSPD_VOLATILE
- lpData のバッファは、サーフェスに変更が加えられていない間のみ有効である。サーフェスの内容が変更されると、その後の IDirectDrawSurface7::GetPrivateData メソッドの呼び出しでは DDERR_EXPIRED が返される。
戻り値
成功すれば、DD_OK を返す。
失敗すれば、以下のエラー値のいずれかを返す。
注意
DirectDraw は、lpData でメモリを管理しない。このバッファが動的に割り当てられた場合、呼び出し側の責任でメモリを解放する。
Windows NT/2000 :Windows 2000 が必要。
Windows 95/98 : Windows 98 が必要。
ヘッダー : ddraw.h で宣言。
参照
IDirectDrawSurface7::GetPrivateData、IDirectDrawSurface7::FreePrivateData