.pragma list(push, 0)
ifndef _INC_DCIMAN
define _INC_DCIMAN

include dciddi.inc

DECLARE_HANDLE(HWINWATCH)

DCIOpenProvider proto WINAPI
DCICloseProvider proto WINAPI :HDC
DCICreatePrimary proto WINAPI :HDC, :LPDCISURFACEINFO
DCICreateOffscreen proto WINAPI :HDC, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :LPDCIOFFSCREEN
DCICreateOverlay proto WINAPI :HDC, :ptr, :LPDCIOVERLAY
DCIEnum proto WINAPI :HDC, :LPRECT, :LPRECT, :ptr, :ptr
DCISetSrcDestClip proto WINAPI :LPDCIOFFSCREEN, :LPRECT, :LPRECT, :LPRGNDATA
WinWatchOpen proto WINAPI :HWND
WinWatchClose proto WINAPI :HWINWATCH
WinWatchGetClipList proto WINAPI :HWINWATCH, :LPRECT, :UINT, :LPRGNDATA
WinWatchDidStatusChange proto WINAPI :HWINWATCH
GetWindowRegionData proto WINAPI :HWND, :DWORD, :LPRGNDATA
GetDCRegionData proto WINAPI :HDC, :DWORD, :LPRGNDATA

WINWATCHNOTIFY_START	equ 0
WINWATCHNOTIFY_STOP	equ 1
WINWATCHNOTIFY_DESTROY	equ 2
WINWATCHNOTIFY_CHANGING equ 3
WINWATCHNOTIFY_CHANGED	equ 4

CALLBACK(WINWATCHNOTIFYPROC, hww:HWINWATCH, hwnd:HWND, code:DWORD, lParam:LPARAM)

WinWatchNotify proto WINAPI :HWINWATCH, :WINWATCHNOTIFYPROC, :LPARAM

ifdef _WIN32
DCIEndAccess proto WINAPI :LPDCISURFACEINFO
DCIBeginAccess proto WINAPI :LPDCISURFACEINFO, :SINT, :SINT, :SINT, :SINT
DCIDestroy proto WINAPI :LPDCISURFACEINFO
DCIDraw proto WINAPI :LPDCIOFFSCREEN
DCISetClipList proto WINAPI :LPDCIOFFSCREEN, :LPRGNDATA
DCISetDestination proto WINAPI :LPDCIOFFSCREEN, :LPRECT, :LPRECT
else
DCISendCommand proto WINAPI :HDC, :ptr, :SINT
endif
endif
.pragma list(pop)
