Partager via


Méthode IDirectDrawSurface7 ::SetPrivateData (ddraw.h)

Associe des données à la surface destinée à être utilisées par l’application, et non par DirectDraw. Les données sont transmises par valeur et plusieurs jeux de données peuvent être associés à une surface unique.

Syntaxe

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

Paramètres

[in] unnamedParam1

Référence à (C++) ou à l’adresse de (C) l’identificateur global unique qui identifie les données privées à définir.

[in] unnamedParam2

Pointeur vers une mémoire tampon qui contient les données à associer à la surface.

[in] unnamedParam3

Valeur de taille de la mémoire tampon au niveau de lpData, en octets.

[in] unnamedParam4

Valeur qui peut être définie sur l’un des indicateurs suivants. Ces indicateurs décrivent le type de données transmises ou demandent que les données soient invalidées lorsque la surface change.

(aucun)

Si aucun indicateur n’est spécifié, DirectDraw alloue de la mémoire pour contenir les données dans la mémoire tampon et copie les données dans la nouvelle mémoire tampon. La mémoire tampon allouée par DirectDraw est automatiquement libérée, le cas échéant.

DDSPD_IUNKNOWNPOINTER

Les données de lpData sont un pointeur vers une interface IUnknown . DirectDraw appelle automatiquement la méthode IUnknown ::AddRef de cette interface. Lorsque ces données ne sont plus nécessaires, DirectDraw appelle automatiquement la méthode IUnknown ::Release de cette interface.

DDSPD_VOLATILE

La mémoire tampon au niveau de lpData n’est valide que si la surface reste inchangée. Si le contenu de la surface change, les appels suivants à la méthode IDirectDrawSurface7 ::GetPrivateData retournent DDERR_EXPIRED.

Valeur retournée

Si la méthode réussit, la valeur de retour est DD_OK.

En cas d’échec, la méthode peut retourner l’une des valeurs d’erreur suivantes :

  • DDERR_INVALIDOBJECT
  • DDERR_INVALIDPARAMS
  • DDERR_OUTOFMEMORY

Remarques

DirectDraw ne gère pas la mémoire au niveau de lpData. Si cette mémoire tampon a été allouée dynamiquement, l’appelant doit libérer la mémoire.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête ddraw.h
Bibliothèque Ddraw.lib
DLL Ddraw.dll

Voir aussi

IDirectDrawSurface7