Platform SDK: DirectX

IDirectDrawSurface7::SetPalette

IDirectDrawSurface7::SetPalette メソッドは、サーフェスにパレット オブジェクトをアタッチする (または、サーフェスからそのアタッチを解除する)。サーフェスは、すべての連続する処理にこのパレットを使用する。パレットの変更は、リフレッシュ タイミングに関係なく即座に行われる。

HRESULT SetPalette(
  LPDIRECTDRAWPALETTE lpDDPalette  
);

パラメータ

lpDDPalette
このサーフェスととも使用されるパレット オブジェクトの IDirectDrawPalette インターフェイスのアドレス。このパラメータが NULL の場合、現在のパレットはアタッチを解除される。

戻り値

成功すれば、DD_OK を返す。

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

DDERR_GENERIC
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_INVALIDPIXELFORMAT
DDERR_INVALIDSURFACETYPE
DDERR_NOEXCLUSIVEMODE
DDERR_NOPALETTEATTACHED
DDERR_NOPALETTEHW
DDERR_NOT8BITCOLOR
DDERR_SURFACELOST
DDERR_UNSUPPORTED

注意

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

動作環境

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

参照

IDirectDrawSurface7::GetPaletteIDirectDraw7::CreatePalette