Platform SDK: DirectX |
IDirectDrawSurface7::DeleteAttachedSurface メソッドは、2 つのサーフェス間のアタッチを解除する。
HRESULT DeleteAttachedSurface( DWORD dwFlags, LPDIRECTDRAWSURFACE7 lpDDSAttachedSurface );
成功すれば、DD_OK を返す。
失敗すれば、以下のエラー値のいずれかを返す。
DDERR_CANNOTDETACHSURFACE |
DDERR_INVALIDOBJECT |
DDERR_INVALIDPARAMS |
DDERR_SURFACELOST |
DDERR_SURFACENOTATTACHED |
このメソッドは、アタッチを解除するサーフェスの参照カウントをデクリメントする。アタッチを解除するサーフェスの参照カウントがゼロになると、そのサーフェスは消失し、メモリから削除される。
IDirectDrawSurface7::AddAttachedSurface メソッドではなく、DirectDraw によって形成される暗黙的なアタッチは解除できない。フリッピング チェーンからサーフェスのアタッチを解除すると、チェーン中の他のサーフェスを変更する可能性がある。フリッピング チェーンからフロント バッファのアタッチを解除すると、チェーンの中の次のサーフェスがフロント バッファとなり、その次のサーフェスがバック バッファとなる。チェーンからバック バッファのアタッチを解除する場合、次のサーフェスがバック バッファとなる。チェーンからプレーン サーフェスのアタッチを解除する場合、そのチェーンが単に短くなる。フリッピング チェーンに 2 つサーフェスがあるだけで、それらのアタッチを解除する場合、そのチェーンは破棄されて、両サーフェスは元の転送先に戻る。
Windows NT/2000 :Windows 2000 が必要。
Windows 95/98 : Windows 98 が必要。
ヘッダー : ddraw.h で宣言。