Поделиться через


Метод 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 автоматически вызывает IUnknown через pData и IUnknown при уничтожении частных данных. Частные данные будут уничтожены последующим вызовом IDirect3DVolume9::SetPrivateData с тем же ИДЕНТИФИКАТОРом GUID, последующим вызовом IDirect3DVolume9::FreePrivateData или при освобождении объекта IDirect3D9 . Дополнительные сведения см. в подразделе "Примечания".

Возвращаемое значение

Тип: HRESULT

Если метод выполнен успешно, возвращаемое значение будет D3D_OK. В случае сбоя метода возвращается одно из следующих значений: D3DERR_INVALIDCALL E_OUTOFMEMORY.

Комментарии

Direct3D не управляет памятью в pData. Если этот буфер был динамически выделен, это ответственность за освобождение памяти лежит на вызывающем приложении.

Данные передаются по значению, и с одним томом можно связать несколько наборов данных.

Требования

Требование Значение
Целевая платформа Windows
Header d3d9helper.h (включая D3D9.h)
Библиотека D3D9.lib

См. также раздел

IDirect3DVolume9

IDirect3DVolume9::FreePrivateData

IDirect3DVolume9::GetPrivateData