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

ID3D10DeviceChild

COM
IID9b7e4c00-342c-4106-a19f-4f2704f689f0継承元IUnknown自前メソッド開始 vtbl3

メソッド 4

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

vtbl 3 void GetDevice(ID3D10Device** ppDevice)
ppDeviceID3D10Device**outこのオブジェクトを生成したID3D10Deviceを受け取る出力ポインタ。参照カウント増加。
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ポインタ。
DataSizeDWORDinpDataが指すデータのバイト数。
pDatavoid*inoptional格納するアプリ定義データへのポインタ。NULLで削除。
vtbl 6 HRESULT SetPrivateDataInterface(GUID* guid, IUnknown* pData)
guidGUID*in格納するインターフェースを識別するGUIDポインタ。
pDataIUnknown*inoptional関連付けるIUnknownインターフェース。NULLで関連付け解除。

HSP用 COM定義

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

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