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

ID3D11DeviceChild

COM
IID1841e5c8-16b0-489b-bcc8-44cfb0d5deae継承元IUnknown自前メソッド開始 vtbl3

メソッド 4

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

vtbl 3 void GetDevice(ID3D11Device** ppDevice)
ppDeviceID3D11Device**outこのオブジェクトを作成したデバイスを受け取る ID3D11Device ポインタのアドレス。参照カウントが増える。
vtbl 4 HRESULT GetPrivateData(GUID* guid, DWORD* pDataSize, void* pData)
guidGUID*in取得するプライベートデータを識別する GUID へのポインタ。
pDataSizeDWORD*inout入力でバッファサイズ、出力で実データサイズ(バイト)を受け渡す DWORD へのポインタ。
pDatavoid*outoptionalデータを受け取るバッファへのポインタ。NULL でサイズのみ問い合わせる。
vtbl 5 HRESULT SetPrivateData(GUID* guid, DWORD DataSize, void* pData)
guidGUID*in設定するプライベートデータを識別する GUID へのポインタ。
DataSizeDWORDin設定するデータのバイト数。0 で当該データを削除する。
pDatavoid*inoptional格納するデータの先頭を指すポインタ。NULL でデータを削除する。
vtbl 6 HRESULT SetPrivateDataInterface(GUID* guid, IUnknown* pData)
guidGUID*in関連付ける COM インターフェイスを識別する GUID へのポインタ。
pDataIUnknown*inoptional格納する IUnknown 派生インターフェイスへのポインタ。参照カウントが保持される。

HSP用 COM定義

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

出力引数:
#define global IID_ID3D11DeviceChild "{1841E5C8-16B0-489B-BCC8-44CFB0D5DEAE}"
#usecom global ID3D11DeviceChild IID_ID3D11DeviceChild "{}"
#comfunc global ID3D11DeviceChild_GetDevice                3 sptr
#comfunc global ID3D11DeviceChild_GetPrivateData           4 var,var,sptr
#comfunc global ID3D11DeviceChild_SetPrivateData           5 var,int,sptr
#comfunc global ID3D11DeviceChild_SetPrivateDataInterface  6 var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。