Metodo IDirectDrawSurface7::SetPrivateData (ddraw.h)

Associa i dati alla superficie destinata all'uso dell'applicazione, non da DirectDraw. I dati vengono passati per valore e a una singola superficie possono essere associati più set di dati.

Sintassi

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

Parametri

[in] unnamedParam1

Riferimento a (C++) o indirizzo di (C) l'identificatore univoco globale che identifica i dati privati da impostare.

[in] unnamedParam2

Puntatore a un buffer che contiene i dati da associare alla superficie.

[in] unnamedParam3

Valore di dimensione del buffer in byte lpData.

[in] unnamedParam4

Valore che può essere impostato su uno dei flag seguenti. Questi flag descrivono il tipo di dati che vengono passati o richiedono che i dati vengano invalidati quando la superficie cambia.

(nessuna)

Se non vengono specificati flag, DirectDraw alloca la memoria per contenere i dati all'interno del buffer e copia i dati nel nuovo buffer. Il buffer allocato da DirectDraw viene liberato automaticamente, a seconda delle esigenze.

DDSPD_IUNKNOWNPOINTER

I dati in lpData sono un puntatore a un'interfaccia IUnknown . DirectDraw chiama automaticamente il metodo IUnknown::AddRef di questa interfaccia. Quando questi dati non sono più necessari, DirectDraw chiama automaticamente il metodo IUnknown::Release di questa interfaccia.

DDSPD_VOLATILE

Il buffer in lpData è valido solo mentre la superficie rimane invariata. Se il contenuto della superficie cambia, le chiamate successive al metodo IDirectDrawSurface7::GetPrivateData restituiscono DDERR_EXPIRED.

Valore restituito

Se il metodo ha esito positivo, il valore restituito viene DD_OK.

Se ha esito negativo, il metodo può restituire uno dei valori di errore seguenti:

  • DDERR_INVALIDOBJECT
  • DDERR_INVALIDPARAMS
  • DDERR_OUTOFMEMORY

Commenti

DirectDraw non gestisce la memoria in lpData. Se questo buffer è stato allocato dinamicamente, il chiamante deve liberare la memoria.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione ddraw.h
Libreria Ddraw.lib
DLL Ddraw.dll

Vedi anche

IDirectDrawSurface7