Platform SDK: DirectX

IDirectDrawSurface7::SetClipper

IDirectDrawSurface7::SetClipper メソッドは、サーフェスにクリッパー オブジェクトをアタッチしたり、サーフェスからクリッパー オブジェクトを削除する。

HRESULT SetClipper(
  LPDIRECTDRAWCLIPPER lpDDClipper  
);

パラメータ

lpDDClipper
DirectDrawSurface オブジェクトにアタッチされる DirectDrawClipper オブジェクトの IDirectDrawClipper インターフェイスのアドレス。このパラメータが NULL の場合、現在の DirectDrawClipper オブジェクトはアタッチを解除される。

戻り値

成功すれば、DD_OK を返す。

失敗すれば、以下のエラー値のいずれかを返す。

DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_INVALIDSURFACETYPE
DDERR_NOCLIPPERATTACHED

注意

クリッパーを最初にサーフェスに設定するときに、このメソッドはクリッパーの参照カウントをインクリメントする。つまり、その後の呼び出しはクリッパーの参照カウントに影響しない。IpDDClipper パラメータとして NULL を渡すと、クリッパーはサーフェスから削除され、クリッパーの参照カウントがデクリメントされる。クリッパーを削除していない場合、サーフェス自体が解放されるときに、サーフェスによってクリッパーへの参照が自動的に解放される。COM 規則により、オブジェクトが不要になると、アプリケーションではクリッパーに対して保持しているあらゆる参照を解放する必要がある。

このメソッドは、プライマリ サーフェスにオーバーレイされるか、ブリットされるサーフェスにより主に使用される。ただし、このメソッドは、どのサーフェス上でも使用できる。DirectDrawClipper オブジェクトがアタッチされ、そこにクリップ リストが関連付けられると、その DirectDrawClipper オブジェクトは親の DirectDrawSurface オブジェクトを含む IDirectDrawSurface7::BltIDirectDrawSurface7::BltBatch、および IDirectDrawSurface7::UpdateOverlay 処理で使用される。このメソッドは、また、DirectDrawSurface オブジェクトの現在の DirectDrawClipper オブジェクトのアタッチも解除できる。

動作環境

  Windows NT/2000 :Windows 2000 が必要。
  Windows 95/98 : Windows 98 が必要。
  ヘッダー : ddraw.h で宣言。

参照

IDirectDrawSurface7::GetClipper