Function 48, subfunction 3 - get standard window colors.
Parameters:
eax = 48 - function number
ebx = 3 - subfunction number
ecx = pointer to the buffer with size edx bytes,
where table will be written
edx = size of color table
(must be 40 bytes for future compatibility)
Returned value:
function does not return value
Format of the color table:
each item is dword-value for color 0x00RRGGBB
+0: dword: frames - color of frame
+4: dword: grab - color of header
+8: dword: grab_button - color of button on header bar
+12 = +0xC: dword: grab_button_text - color of text on button
on header bar
+16 = +0x10: dword: grab_text - color of text on header
+20 = +0x14: dword: work - color of working area
+24 = +0x18: dword: work_button - color of button in working area
+28 = +0x1C: dword: work_button_text - color of text on button
in working area
+32 = +0x20: dword: work_text - color of text in working area
+36 = +0x24: dword: work_graph - color of graphics in working area
Remarks:
Structure of the color table is described in the standard
include file 'macros.inc' as 'system_colors'; for example,
it is possible to write:
sc system_colors ; variable declaration
... ; somewhere one must call
; this function with ecx=sc
mov ecx, [sc.work_button_text] ; read text color on
; buttin in working area
A program itself desides to use or not to use color table.
For usage program must simply at calls to drawing functions select
color taken from the table.
At change of the table of standard colors (by subfunction 2 with
the subsequent application of changes by subfunction 0 or
at skin set by subfunction 8) the system sends to all windows
redraw message (the event with code 1).
Color table can be viewed/changed interactively with
the application 'desktop'.