ホーム › Graphics.DirectComposition › IDCompositionSurfaceFactory
IDCompositionSurfaceFactory
COMメソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT CreateSurface(DWORD width, DWORD height, DXGI_FORMAT pixelFormat, DXGI_ALPHA_MODE alphaMode, IDCompositionSurface** surface)
| width | DWORD | in | 作成するサーフェスの幅(ピクセル)。0より大きい値を指定する。 |
| height | DWORD | in | 作成するサーフェスの高さ(ピクセル)。0より大きい値を指定する。 |
| pixelFormat | DXGI_FORMAT | in | サーフェスのピクセル形式を指定するDXGI_FORMAT列挙値である。 |
| alphaMode | DXGI_ALPHA_MODE | in | アルファの扱いを示すDXGI_ALPHA_MODE列挙値を指定する。 |
| surface | IDCompositionSurface** | out | 作成されたサーフェスを受け取る出力ポインタである。 |
vtbl 4 HRESULT CreateVirtualSurface(DWORD initialWidth, DWORD initialHeight, DXGI_FORMAT pixelFormat, DXGI_ALPHA_MODE alphaMode, IDCompositionVirtualSurface** virtualSurface)
| initialWidth | DWORD | in | 仮想サーフェスの初期幅(ピクセル)。後でResizeで変更可能である。 |
| initialHeight | DWORD | in | 仮想サーフェスの初期高さ(ピクセル)。後でResizeで変更可能である。 |
| pixelFormat | DXGI_FORMAT | in | サーフェスのピクセル形式を指定するDXGI_FORMAT列挙値である。 |
| alphaMode | DXGI_ALPHA_MODE | in | アルファの扱いを示すDXGI_ALPHA_MODE列挙値を指定する。 |
| virtualSurface | IDCompositionVirtualSurface** | out | 作成された仮想サーフェスを受け取る出力ポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDCompositionSurfaceFactory "{E334BC12-3937-4E02-85EB-FCF4EB30D2C8}"
#usecom global IDCompositionSurfaceFactory IID_IDCompositionSurfaceFactory "{}"
#comfunc global IDCompositionSurfaceFactory_CreateSurface 3 int,int,int,int,sptr
#comfunc global IDCompositionSurfaceFactory_CreateVirtualSurface 4 int,int,int,int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。