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

IDirect3DSurface9

COM
IID0cfbaf3a-9ff6-429a-99b3-a2796af8b89b継承元IDirect3DResource9自前メソッド開始 vtbl11

メソッド 6

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

vtbl 11 HRESULT GetContainer(GUID* riid, void** ppContainer)
riidGUID*in取得したいコンテナインターフェイスのGUIDへのポインタ。
ppContainervoid**inoutこのサーフェスを含む親オブジェクトのポインタを受け取る出力。
vtbl 12 HRESULT GetDesc(D3DSURFACE_DESC* pDesc)
pDescD3DSURFACE_DESC*inoutサーフェスの記述情報を受け取るD3DSURFACE_DESCへのポインタ。
vtbl 13 HRESULT LockRect(D3DLOCKED_RECT* pLockedRect, RECT* pRect, DWORD Flags)
pLockedRectD3DLOCKED_RECT*inoutロック結果(ポインタとピッチ)を受け取るD3DLOCKED_RECTへのポインタ。
pRectRECT*inロックする矩形領域へのポインタ。NULLで全体。
FlagsDWORDinロック動作を示すフラグ。READONLYなどD3DLOCK値。
vtbl 14 HRESULT UnlockRect()
vtbl 15 HRESULT GetDC(HDC* phdc)
phdcHDC*inoutサーフェス用に取得したGDIデバイスコンテキストHDCを受け取るポインタ。
vtbl 16 HRESULT ReleaseDC(HDC hdc)
hdcHDCinGetDCで取得し解放するデバイスコンテキストHDC。

HSP用 COM定義

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

出力引数:
#define global IID_IDirect3DSurface9 "{0CFBAF3A-9FF6-429A-99B3-A2796AF8B89B}"
#usecom global IDirect3DSurface9 IID_IDirect3DSurface9 "{}"
#comfunc global IDirect3DSurface9_GetContainer  11 var,sptr
#comfunc global IDirect3DSurface9_GetDesc       12 var
#comfunc global IDirect3DSurface9_LockRect      13 var,var,int
#comfunc global IDirect3DSurface9_UnlockRect    14
#comfunc global IDirect3DSurface9_GetDC         15 sptr
#comfunc global IDirect3DSurface9_ReleaseDC     16 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。