Win32 API 日本語リファレンス
ホームGraphics.Direct3D12 › ID3D12Object

ID3D12Object

COM
IIDc4fec28f-7966-4e95-9f94-f431cb56c3b8継承元IUnknown自前メソッド開始 vtbl3

メソッド 4

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetPrivateData(GUID* guid, DWORD* pDataSize, void* pData)
guidGUID*in取得するプライベートデータを識別するGUIDを指す。
pDataSizeDWORD*inout入力時はバッファサイズ、出力時は実データサイズを示すバイト数の入出力ポインタ。
pDatavoid*outoptional取得データを格納するバッファを指す。NULLならサイズのみ取得する。
vtbl 4 HRESULT SetPrivateData(GUID* guid, DWORD DataSize, void* pData)
guidGUID*in設定するプライベートデータを識別するGUIDを指す。
DataSizeDWORDinpDataが指すデータのサイズをバイト単位で指定する。
pDatavoid*inoptional格納するデータを指す。NULLなら該当データを削除する。
vtbl 5 HRESULT SetPrivateDataInterface(GUID* guid, IUnknown* pData)
guidGUID*in関連付けるインターフェイスを識別するGUIDを指す。
pDataIUnknown*inoptional格納するCOMインターフェイスを指す。参照カウントが保持される。
vtbl 6 HRESULT SetName(LPWSTR Name)
NameLPWSTRinデバッグ用にオブジェクトへ付与する名前(ワイド文字列)を指定する。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ID3D12Object "{C4FEC28F-7966-4E95-9F94-F431CB56C3B8}"
#usecom global ID3D12Object IID_ID3D12Object "{}"
#comfunc global ID3D12Object_GetPrivateData           3 var,var,sptr
#comfunc global ID3D12Object_SetPrivateData           4 var,int,sptr
#comfunc global ID3D12Object_SetPrivateDataInterface  5 var,sptr
#comfunc global ID3D12Object_SetName                  6 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。