IDirectDrawSurface7::SetPalette 方法 (ddraw.h)

将调色板对象附加到 (或从图面) 分离一个对象。 图面将此调色板用于所有后续操作。 调色板更改会立即发生,而不考虑刷新时间。

语法

HRESULT SetPalette(
  [in] LPDIRECTDRAWPALETTE unnamedParam1
);

参数

[in] unnamedParam1

指向要用于此图面的调色板对象的 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

注解

调用 SetPalette 以首次将调色板设置为图面时, SetPalette 会递增调色板的引用计数;对 SetPalette 的后续调用不会影响调色板的引用计数。 如果将 NULL 作为 lpDDPalette 参数传递,调色板将从图面中删除,调色板的引用计数将递减。 如果不删除调色板,则 Surface 会在释放表面本身时自动释放对调色板的引用。 根据 COM 规则,当不再需要对象时,应用程序必须释放它持有的对调色板的任何引用。

要求

要求
目标平台 Windows
标头 ddraw.h
Library Ddraw.lib
DLL Ddraw.dll

另请参阅

IDirectDrawSurface7