IDirect3DVolume9::SetPrivateData 方法 (d3d9helper.h)

将数据与供应用程序(而不是 Direct3D)使用的卷相关联。

语法

HRESULT SetPrivateData(
  [in] REFGUID    refguid,
  [in] const void *pData,
  [in] DWORD      SizeOfData,
  [in] DWORD      Flags
);

参数

[in] refguid

类型: REFGUID

对标识要设置的私有数据的全局唯一标识符的引用。

[in] pData

类型: const void*

指向缓冲区的指针,该缓冲区包含要与卷关联的数据。

[in] SizeOfData

类型: DWORD

pData 处缓冲区的大小(以字节为单位)。

[in] Flags

类型: DWORD

描述要传递的数据类型或向应用程序指示在资源更改时数据应失效的值。

说明
(无) 如果未指定任何标志,Direct3D 会分配内存来保存缓冲区中的数据,并将数据复制到新缓冲区。 Direct3D 分配的缓冲区会根据需要自动释放。
D3DSPD_IUNKNOWN pData 中的数据是指向 IUnknown 接口的 指针。 SizeOfData 必须设置为指向 IUnknown 接口的指针的大小,sizeof (IUnknown*) 。 当私有数据被销毁时,Direct3D 通过 pData 和 IUnknown 自动调用 IUnknown。 私有数据将通过对 具有相同 GUID 的 IDirect3DVolume9::SetPrivateData 的后续调用、对 IDirect3DVolume9::FreePrivateData 的后续调用或释放 IDirect3D9 对象时销毁。 有关详细信息,请参阅“备注”。

返回值

类型: HRESULT

如果方法成功,则返回值D3D_OK。 如果方法失败,则返回值可以是以下值之一:D3DERR_INVALIDCALL、E_OUTOFMEMORY。

注解

Direct3D 不管理 pData 上的内存。 如果此缓冲区是动态分配的,则调用应用程序负责释放内存。

数据按值传递,多个数据集可以与单个卷相关联。

要求

要求
目标平台 Windows
标头 d3d9helper.h (包括 D3D9.h)
Library D3D9.lib

另请参阅

IDirect3DVolume9

IDirect3DVolume9::FreePrivateData

IDirect3DVolume9::GetPrivateData