IDirect3DVolume9::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 自動呼叫 IUnknown 。 後續呼叫 IDirect3DVolume9::SetPrivateData 與相同的 GUID、後續對 IDirect3DVolume9::FreePrivateData 的呼叫,或釋放 IDirect3D9 物件時,將會終結私人數據。 如需詳細資訊,請參閱<備註>。

傳回值

類型: HRESULT

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

備註

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

數據會以傳值方式傳遞,而且多個數據集可以與單一磁碟區相關聯。

規格需求

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

另請參閱

IDirect3DVolume9

IDirect3DVolume9::FreePrivateData

IDirect3DVolume9::GetPrivateData