Win32 API 日本語リファレンス
ホームMedia.DirectShow › IVMRSurface

IVMRSurface

COM
IIDa9849bbe-9ec8-4263-b764-62730f0d15d0継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IVMRSurface インターフェースは、Video Mixing Renderer Filter 7 (VMR-7) が使用するメディアサンプルに実装されています。

メソッド 4

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

vtbl 3 HRESULT IsSurfaceLocked()

IsSurfaceLocked メソッドは、このメディアサンプルにアタッチされている DirectDraw サーフェスがロックされているかどうかを示します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

vtbl 4 HRESULT LockSurface(BYTE** lpSurface)

LockSurface メソッドは、アタッチされている DirectDraw サーフェスをロックします。

lpSurfaceBYTE**outロックされたビットへのポインターを受け取る変数のアドレスです。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

リターンコード 説明
E_POINTER
lpSurface が無効です。
E_FAIL
このサンプルには DirectDraw サーフェスがアタッチされていません。
vtbl 5 HRESULT UnlockSurface()

UnlockSurface メソッドは、アタッチされている DirectDraw サーフェスのロックを解除します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

リターンコード 説明
E_FAIL
このサンプルには DirectDraw サーフェスがアタッチされていません。
vtbl 6 HRESULT GetSurface(IDirectDrawSurface7** lplpSurface)

GetSurface メソッドは、アタッチされている DirectDraw サーフェスインターフェースを取得します。

lplpSurfaceIDirectDrawSurface7**outIDirectDrawSurface7 インターフェースへのポインターを受け取る変数のアドレスです。呼び出し元はインターフェースを解放する必要があります。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合はエラーコードを返します。

リターンコード 説明
E_POINTER
NULL ポインター引数です。
E_FAIL
このサンプルには DirectDraw サーフェスがアタッチされていません。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

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

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