Freigeben über


IDirectDrawSurface7::SetPrivateData-Methode (ddraw.h)

Ordnet Daten der Oberfläche zu, die für die Verwendung durch die Anwendung und nicht für DirectDraw vorgesehen ist. Daten werden nach Wert übergeben, und einer einzelnen Oberfläche können mehrere Datasets zugeordnet werden.

Syntax

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

Parameter

[in] unnamedParam1

Verweisen Sie auf (C++) oder die Adresse (C) des global eindeutigen Bezeichners, der die festzulegenden privaten Daten identifiziert.

[in] unnamedParam2

Ein Zeiger auf einen Puffer, der die Daten enthält, die der Oberfläche zugeordnet werden sollen.

[in] unnamedParam3

Der Größenwert des Puffers bei lpData in Bytes.

[in] unnamedParam4

Ein Wert, der auf eines der folgenden Flags festgelegt werden kann. Diese Flags beschreiben den Typ der übergebenen Daten oder fordern an, dass die Daten ungültig werden, wenn sich die Oberfläche ändert.

(none)

Wenn keine Flags angegeben sind, weist DirectDraw Arbeitsspeicher zu, um die Daten im Puffer zu speichern, und kopiert die Daten in den neuen Puffer. Der von DirectDraw zugeordnete Puffer wird nach Bedarf automatisch freigegeben.

DDSPD_IUNKNOWNPOINTER

Die Daten in lpData sind ein Zeiger auf eine IUnknown-Schnittstelle . DirectDraw ruft automatisch die IUnknown::AddRef-Methode dieser Schnittstelle auf. Wenn diese Daten nicht mehr benötigt werden, ruft DirectDraw automatisch die IUnknown::Release-Methode dieser Schnittstelle auf.

DDSPD_VOLATILE

Der Puffer bei lpData ist nur gültig, während die Oberfläche unverändert bleibt. Wenn sich der Inhalt der Oberfläche ändert, geben nachfolgende Aufrufe der IDirectDrawSurface7::GetPrivateData-Methode DDERR_EXPIRED zurück.

Rückgabewert

Wenn die Methode erfolgreich ist, wird der Rückgabewert DD_OK.

Wenn ein Fehler auftritt, kann die -Methode einen der folgenden Fehlerwerte zurückgeben:

  • DDERR_INVALIDOBJECT
  • DDERR_INVALIDPARAMS
  • DDERR_OUTOFMEMORY

Hinweise

DirectDraw verwaltet den Arbeitsspeicher bei lpData nicht. Wenn dieser Puffer dynamisch zugeordnet wurde, muss der Aufrufer den Arbeitsspeicher freigeben.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile ddraw.h
Bibliothek Ddraw.lib
DLL Ddraw.dll

Weitere Informationen

IDirectDrawSurface7