Platform SDK: DirectX |
DirectDrawSurface7.Lock メソッドは、サーフェス メモリを取得する。
object.Lock( _ r As RECT, _ desc As DDSURFACEDESC2, _ flags As CONST_DDLOCKFLAGS, _ hnd As Long)
失敗すればエラーが発生し、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.Unlock、DirectDrawSurface7.GetDC、DirectDrawSurface7.ReleaseDC