共用方式為


IDirect3DResource9::SetPrivateData 方法 (d3d9helper.h)

將數據與應用程式所要使用的資源產生關聯,而不是 Direct3D。 數據會以值傳遞,而且多個數據集可以與單一資源相關聯。

語法

HRESULT SetPrivateData(
  [in] REFGUID    refguid,
  [in] const void *pData,
  [in] DWORD      SizeOfData,
  [in] DWORD      Flags
);

參數

[in] refguid

類型: REFGUID

識別要設定之私人數據的全域唯一標識符參考。

[in] pData

類型: const void*

緩衝區的指標,其中包含要與資源相關聯的數據。

[in] SizeOfData

類型: DWORD

pData 的緩衝區大小,以位元組為單位。

[in] Flags

類型: DWORD

值,描述所傳遞的數據類型,或指出當資源變更時,數據應該失效的應用程式。

項目 描述
(無) 如果未指定旗標,Direct3D 會配置記憶體來保存緩衝區中的數據,並將數據複製到新的緩衝區。 Direct3D 配置的緩衝區會視需要自動釋放。
D3DSPD_IUNKNOWN pData 上的數據是 IUnknown 介面的指標。 SizeOfData 必須設定為 IUnknown 指標的大小,也就是 sizeof (IUnknown*) 。 Direct3D 會在私人數據損毀時自動透過 pData 呼叫IUnknown。 私人數據將會由後續呼叫 IDirect3DResource9::SetPrivateData 與相同的 GUID、 IDirect3DResource9::FreePrivateData 的後續呼叫,或 釋放 IDirect3D9 物件時終結。 如需詳細資訊,請參閱<備註>。

傳回值

類型: HRESULT

如果方法成功,傳回值會D3D_OK。 如果方法失敗,傳回值可以是下列其中一項:D3DERR_INVALIDCALL,E_OUTOFMEMORY。

備註

Direct3D 不會管理 pData 上的記憶體。 如果動態配置此緩衝區,則呼叫端應用程式負責釋放記憶體。

規格需求

需求
目標平台 Windows
標頭 d3d9helper.h (包含 D3D9.h)
程式庫 D3D9.lib

另請參閱

IDirect3DResource9