Partager via


IDirect3DResource8::SetPrivateData

This method associates data with the resource that is intended for use by the application, not by Microsoft® Direct3D®. Data is passed by value, and multiple sets of data can be associated with a single resource.

HRESULT SetPrivateData(
  REFGUID refguid,
  CONST void* pData,
  DWORD SizeOfData,
  DWORD Flags
);

Parameters

  • refguid
    [in] Reference to (C++) or address of (C) the globally unique identifier that identifies the private data to set.
  • pData
    [in] Pointer to a buffer that contains the data to be associated with the resource.
  • SizeOfData
    [in] Size of the buffer at pData, in bytes.
  • Flags
    [in] Value that describes the type of data being passed, or indicates to the application that the data should be invalidated when the resource changes. The following table shows the available flags.
    Flag Description
    None If no flags are specified, Direct3D® allocates memory to hold the data within the buffer and copies the data into the new buffer. The buffer allocated by Direct3D is automatically freed, as appropriate.
    D3DSPD_IUNKNOWN The data at pData is a pointer to an IUnknown interface. SizeOfData must be set to the size of a pointer to an IUnknown interface, sizeof(IUnknown*). Direct3D automatically calls IUnknown::AddRef through pData and IUnknown::Release when the private data is destroyed. Private data will be destroyed by a subsequent call to SetPrivateData with the same GUID, a subsequent call to IDirect3DResource8::FreePrivateData, or when the Direct3D8 object is released. For more information, see Remarks.

Return Values

If the method succeeds, the return value is D3D_OK.

If the method fails, the return value can be one of the following values:

Remarks

Direct3D does not manage the memory at pData. If this buffer was dynamically allocated, it is the caller's responsibility to free the memory.

This method applies to the following interfaces, which inherit from IDirect3DResource8.

Requirements

OS Versions: Windows CE .NET 4.0 and later.
Header: D3d8.h.
Link Library: D3d8.lib.

See Also

IDirect3DResource8::FreePrivateData | IDirect3DResource8::GetPrivateData | IUnknown::Release | IDirect3DResource8

 Last updated on Thursday, April 08, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.