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


Метод IDirectDrawSurface7::SetPrivateData (ddraw.h)

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

Синтаксис

HRESULT SetPrivateData(
  [in] REFGUID unnamedParam1,
  [in] LPVOID  unnamedParam2,
  [in] DWORD   unnamedParam3,
  [in] DWORD   unnamedParam4
);

Параметры

[in] unnamedParam1

Ссылка на (C++) или адрес (C) глобально уникальный идентификатор, определяющий устанавливаемые частные данные.

[in] unnamedParam2

Указатель на буфер, содержащий данные, связанные с поверхностью.

[in] unnamedParam3

Значение размера буфера в lpData в байтах.

[in] unnamedParam4

Значение, которое можно задать для одного из следующих флагов. Эти флаги описывают тип передаваемых данных или запрос на аннулирование данных при изменении поверхности.

(нет)

Если флаги не указаны, DirectDraw выделяет память для хранения данных в буфере и копирует данные в новый буфер. Буфер, выделенный DirectDraw, автоматически освобождается при необходимости.

DDSPD_IUNKNOWNPOINTER

Данные в lpData являются указателем на интерфейс IUnknown . DirectDraw автоматически вызывает метод IUnknown::AddRef этого интерфейса. Если эти данные больше не нужны, DirectDraw автоматически вызывает метод IUnknown::Release этого интерфейса.

DDSPD_VOLATILE

Буфер в lpData действителен только в том случае, если поверхность остается неизменной. Если содержимое поверхности изменяется, последующие вызовы метода IDirectDrawSurface7::GetPrivateData возвращают DDERR_EXPIRED.

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

Если метод выполнен успешно, возвращаемое значение будет DD_OK.

В случае сбоя метод может вернуть одно из следующих значений ошибки:

  • DDERR_INVALIDOBJECT
  • DDERR_INVALIDPARAMS
  • DDERR_OUTOFMEMORY

Комментарии

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

Требования

Требование Значение
Целевая платформа Windows
Header ddraw.h
Библиотека Ddraw.lib
DLL Ddraw.dll

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

IDirectDrawSurface7