---
name: "SetSysColorsTemp"
section: "3w"
platform: "linux"
package: "libwine-dev"
version: "1.4.1-4"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/SetSysColorsTemp"
---

# SetSysColorsTemp(3w)

## NAME

**SetSysColorsTemp** (USER32.@)

## SYNOPSIS

DWORD\_PTR SetSysColorsTemp\
  (\
   const COLORREF\* *pPens*,\
   const HBRUSH\*   *pBrushes*,\
   DWORD\_PTR       *n*\
  )

## DESCRIPTION

**UNDOCUMENTED** !!.

Called by **W98SE** desk.cpl Control Panel Applet: handle = SetSysColorsTemp(ptr, ptr, nCount); (**"set"** call) result = SetSysColorsTemp(**NULL**, **NULL**, handle); (**"restore"** call).

*pPens* is an array of **COLORREF** values, which seems to be used to indicate the color values to create new pens with.

*pBrushes* is an array of solid brush handles (returned by a previous CreateSolidBrush), which seems to contain the brush handles to set for the system colors.

*n* seems to be used for a) indicating the number of entries to operate on (length of *pPens*, *pBrushes*) b) passing the handle that points to the previously used color settings. I couldn't figure out in hell what kind of handle this is on Windows. I just use a heap handle instead. Shouldn't matter anyway.

## RETURNS

heap handle of our own copy of the current syscolors in case of **"set"** call, i.e. *pPens*, *pBrushes* != **NULL**. **TRUE** (unconditionally !) in case of **"restore"** call, i.e. *pPens*, *pBrushes* == **NULL**. **FALSE** in case of either *pPens* != **NULL** and *pBrushes* == **NULL** or *pPens* == **NULL** and *pBrushes* != **NULL**.

I'm not sure whether this implementation is 100% correct. \[AM\]

## IMPLEMENTATION

Not declared in a Wine header. The function is either undocumented, or missing from Wine.

Implemented in **"dlls/user32/sysparams.c"**.

Debug channel **"system"**.
