1package ansi
2
3import (
4	"syscall"
5)
6
7var (
8	kernel32                       = syscall.NewLazyDLL("kernel32.dll")
9	procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo")
10	procSetConsoleTextAttribute    = kernel32.NewProc("SetConsoleTextAttribute")
11	procSetConsoleCursorPosition   = kernel32.NewProc("SetConsoleCursorPosition")
12	procFillConsoleOutputCharacter = kernel32.NewProc("FillConsoleOutputCharacterW")
13	procGetConsoleCursorInfo       = kernel32.NewProc("GetConsoleCursorInfo")
14	procSetConsoleCursorInfo       = kernel32.NewProc("SetConsoleCursorInfo")
15)
16
17type wchar uint16
18type short int16
19type dword uint32
20type word uint16
21
22type coord struct {
23	x short
24	y short
25}
26
27type smallRect struct {
28	left   short
29	top    short
30	right  short
31	bottom short
32}
33
34type consoleScreenBufferInfo struct {
35	size              coord
36	cursorPosition    coord
37	attributes        word
38	window            smallRect
39	maximumWindowSize coord
40}
41
42type consoleCursorInfo struct {
43	size    dword
44	visible int32
45}
46