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


Метод IDirect3DVolume9::SetPrivateData (d3d9.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 d3d9.h (включая D3D9.h)
Библиотека D3D9.lib

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

IDirect3DVolume9

IDirect3DVolume9::FreePrivateData

IDirect3DVolume9::GetPrivateData