Platform SDK: DirectX

DirectDrawSurface7.Lock

DirectDrawSurface7.Lock メソッドは、サーフェス メモリを取得する。

object.Lock( _ 
    r As RECT, _ 
    desc As DDSURFACEDESC2, _ 
    flags As CONST_DDLOCKFLAGS, _
    hnd As Long)

パラメータ

object
DirectDrawSurface7 オブジェクトを表すオブジェクト式。
r
ロックされるサーフェスの領域を示す矩形の左上と右下の位置を定義する RECT 型。このパラメータが空の RECT の場合、サーフェス全体がロックされる。
desc
サーフェスに関する詳細情報を格納する DDSURFACEDESC2 型。
flags
ロックのタイプを記述する CONST_DDLOCKFLAGS 列挙の定数の 1 つ。
hnd
使用されないので、0 に設定する。

エラー コード

失敗すればエラーが発生し、Err.Number に次のいずれかの値が設定される。

DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_OUTOFMEMORY
DDERR_SURFACEBUSY
DDERR_SURFACELOST
DDERR_WASSTILLDRAWING

注意

このメソッドの使用については、「サーフェス メモリへの直接アクセス」を参照すること。

サーフェス メモリを取得した後、対応する DirectDrawSurface7.Unlock メソッドが呼び出されるまでサーフェスにアクセスできる。サーフェスのロックが解除されると、サーフェス メモリは無効となる。

サーフェスのロックされた領域からブリットするために、DirectDraw ブリット関数を呼び出してはならない。この関数を呼び出した場合、ブリットは DDERR_SURFACEBUSY または DDERR_LOCKEDSURFACES のどちらかを返す。さらに、GDI ブリット関数は、ロックされたビデオ メモリ サーフェスで使用されると、何も返さずに失敗する。

このメソッドは、DirectDrawSurface7.Unlock メソッドを呼び出すまで、DirectDraw で Win16Mutex (Win16Lock とも呼ばれる) を保持する場合がある。GUI デバッガは、Win16Mutex が保持されている間は処理できない。

参照

DirectDrawSurface7.UnlockDirectDrawSurface7.GetDCDirectDrawSurface7.ReleaseDC