github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/exp/shiny/driver/windriver/syscall_windows.go (about) 1 // Copyright 2015 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 //go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go syscall_windows.go 6 7 package windriver 8 9 import ( 10 "unsafe" 11 ) 12 13 type _COLORREF uint32 14 15 func _RGB(r, g, b byte) _COLORREF { 16 return _COLORREF(r) | _COLORREF(g)<<8 | _COLORREF(b)<<16 17 } 18 19 type _POINT struct { 20 X int32 21 Y int32 22 } 23 24 type _RECT struct { 25 Left int32 26 Top int32 27 Right int32 28 Bottom int32 29 } 30 31 type _BITMAPINFOHEADER struct { 32 Size uint32 33 Width int32 34 Height int32 35 Planes uint16 36 BitCount uint16 37 Compression uint32 38 SizeImage uint32 39 XPelsPerMeter int32 40 YPelsPerMeter int32 41 ClrUsed uint32 42 ClrImportant uint32 43 } 44 45 type _RGBQUAD struct { 46 Blue byte 47 Green byte 48 Red byte 49 Reserved byte 50 } 51 52 type _BITMAPINFO struct { 53 Header _BITMAPINFOHEADER 54 Colors [1]_RGBQUAD 55 } 56 57 type _BLENDFUNCTION struct { 58 BlendOp byte 59 BlendFlags byte 60 SourceConstantAlpha byte 61 AlphaFormat byte 62 } 63 64 // ToUintptr helps to pass bf to syscall.Syscall. 65 func (bf _BLENDFUNCTION) ToUintptr() uintptr { 66 return *((*uintptr)(unsafe.Pointer(&bf))) 67 } 68 69 const ( 70 _WM_PAINT = 15 71 _WM_WINDOWPOSCHANGED = 71 72 _WM_KEYDOWN = 256 73 _WM_KEYUP = 257 74 _WM_SYSKEYDOWN = 260 75 _WM_SYSKEYUP = 261 76 _WM_MOUSEMOVE = 512 77 _WM_LBUTTONDOWN = 513 78 _WM_LBUTTONUP = 514 79 _WM_RBUTTONDOWN = 516 80 _WM_RBUTTONUP = 517 81 _WM_MBUTTONDOWN = 519 82 _WM_MBUTTONUP = 520 83 _WM_USER = 0x0400 84 ) 85 86 const ( 87 _WS_OVERLAPPED = 0x00000000 88 _WS_CAPTION = 0x00C00000 89 _WS_SYSMENU = 0x00080000 90 _WS_THICKFRAME = 0x00040000 91 _WS_MINIMIZEBOX = 0x00020000 92 _WS_MAXIMIZEBOX = 0x00010000 93 _WS_OVERLAPPEDWINDOW = _WS_OVERLAPPED | _WS_CAPTION | _WS_SYSMENU | _WS_THICKFRAME | _WS_MINIMIZEBOX | _WS_MAXIMIZEBOX 94 ) 95 96 const ( 97 _COLOR_BTNFACE = 15 98 ) 99 100 const ( 101 _IDI_APPLICATION = 32512 102 _IDC_ARROW = 32512 103 ) 104 105 const ( 106 _BI_RGB = 0 107 _DIB_RGB_COLORS = 0 108 109 _AC_SRC_OVER = 0x00 110 _AC_SRC_ALPHA = 0x01 111 112 _SRCCOPY = 0x00cc0020 113 ) 114 115 func _GET_X_LPARAM(lp uintptr) int32 { 116 return int32(_LOWORD(lp)) 117 } 118 119 func _GET_Y_LPARAM(lp uintptr) int32 { 120 return int32(_HIWORD(lp)) 121 } 122 123 func _LOWORD(l uintptr) uint16 { 124 return uint16(uint32(l)) 125 } 126 127 func _HIWORD(l uintptr) uint16 { 128 return uint16(uint32(l >> 16)) 129 } 130 131 // notes to self 132 // UINT = uint32 133 // callbacks = uintptr 134 // strings = *uint16 135 136 //sys _CreateDIBSection(dc syscall.Handle, bmi *_BITMAPINFO, usage uint32, bits **byte, section syscall.Handle, offset uint32) (bitmap syscall.Handle, err error) = gdi32.CreateDIBSection 137 //sys _CreateCompatibleDC(dc win32.HDC) (newdc win32.HDC, err error) = gdi32.CreateCompatibleDC 138 //sys _DeleteDC(dc win32.HDC) (err error) = gdi32.DeleteDC 139 //sys _SelectObject(dc win32.HDC, gdiobj syscall.Handle) (newobj syscall.Handle, err error) = gdi32.SelectObject 140 //sys _AlphaBlend(dcdest win32.HDC, xoriginDest int32, yoriginDest int32, wDest int32, hDest int32, dcsrc win32.HDC, xoriginSrc int32, yoriginSrc int32, wsrc int32, hsrc int32, ftn uintptr) (err error) = msimg32.AlphaBlend 141 //sys _BitBlt(dcdest win32.HDC, xdest int32, ydest int32, width int32, height int32, dcsrc win32.HDC, xsrc int32, ysrc int32, rop int32) (ok int32, err error) = gdi32.BitBlt 142 //sys _CreateSolidBrush(color _COLORREF) (brush syscall.Handle, err error) = gdi32.CreateSolidBrush 143 //sys _FillRect(dc win32.HDC, rc *_RECT, brush syscall.Handle) (err error) = user32.FillRect 144 //sys _DeleteObject(object syscall.Handle) (err error) = gdi32.DeleteObject