syscall_windows.go raw
1 package ansi
2
3 import (
4 "syscall"
5 )
6
7 var (
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
17 type wchar uint16
18 type short int16
19 type dword uint32
20 type word uint16
21
22 type coord struct {
23 x short
24 y short
25 }
26
27 type smallRect struct {
28 left short
29 top short
30 right short
31 bottom short
32 }
33
34 type consoleScreenBufferInfo struct {
35 size coord
36 cursorPosition coord
37 attributes word
38 window smallRect
39 maximumWindowSize coord
40 }
41
42 type consoleCursorInfo struct {
43 size dword
44 visible int32
45 }
46