mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-01 00:23:56 +08:00 
			
		
		
		
	go.mod: golang.org/x/crypto v0.1.0
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
This commit is contained in:
		
							
								
								
									
										2
									
								
								vendor/golang.org/x/sys/windows/setupapi_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/golang.org/x/sys/windows/setupapi_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -296,7 +296,7 @@ const ( | ||||
| 	// Flag to indicate that the sorting from the INF file should be used. | ||||
| 	DI_INF_IS_SORTED DI_FLAGS = 0x00008000 | ||||
|  | ||||
| 	// Flag to indicate that only the the INF specified by SP_DEVINSTALL_PARAMS.DriverPath should be searched. | ||||
| 	// Flag to indicate that only the INF specified by SP_DEVINSTALL_PARAMS.DriverPath should be searched. | ||||
| 	DI_ENUMSINGLEINF DI_FLAGS = 0x00010000 | ||||
|  | ||||
| 	// Flag that prevents ConfigMgr from removing/re-enumerating devices during device | ||||
|   | ||||
							
								
								
									
										10
									
								
								vendor/golang.org/x/sys/windows/syscall.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/golang.org/x/sys/windows/syscall.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -30,8 +30,6 @@ import ( | ||||
| 	"strings" | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
|  | ||||
| 	"golang.org/x/sys/internal/unsafeheader" | ||||
| ) | ||||
|  | ||||
| // ByteSliceFromString returns a NUL-terminated slice of bytes | ||||
| @@ -83,13 +81,7 @@ func BytePtrToString(p *byte) string { | ||||
| 		ptr = unsafe.Pointer(uintptr(ptr) + 1) | ||||
| 	} | ||||
|  | ||||
| 	var s []byte | ||||
| 	h := (*unsafeheader.Slice)(unsafe.Pointer(&s)) | ||||
| 	h.Data = unsafe.Pointer(p) | ||||
| 	h.Len = n | ||||
| 	h.Cap = n | ||||
|  | ||||
| 	return string(s) | ||||
| 	return string(unsafe.Slice(p, n)) | ||||
| } | ||||
|  | ||||
| // Single-word zero for use when we need a valid pointer to 0 bytes. | ||||
|   | ||||
							
								
								
									
										130
									
								
								vendor/golang.org/x/sys/windows/syscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										130
									
								
								vendor/golang.org/x/sys/windows/syscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -138,13 +138,7 @@ func UTF16PtrToString(p *uint16) string { | ||||
| 		ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p)) | ||||
| 	} | ||||
|  | ||||
| 	var s []uint16 | ||||
| 	h := (*unsafeheader.Slice)(unsafe.Pointer(&s)) | ||||
| 	h.Data = unsafe.Pointer(p) | ||||
| 	h.Len = n | ||||
| 	h.Cap = n | ||||
|  | ||||
| 	return string(utf16.Decode(s)) | ||||
| 	return string(utf16.Decode(unsafe.Slice(p, n))) | ||||
| } | ||||
|  | ||||
| func Getpagesize() int { return 4096 } | ||||
| @@ -364,6 +358,15 @@ func NewCallbackCDecl(fn interface{}) uintptr { | ||||
| //sys	SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) | ||||
| //sys	GetActiveProcessorCount(groupNumber uint16) (ret uint32) | ||||
| //sys	GetMaximumProcessorCount(groupNumber uint16) (ret uint32) | ||||
| //sys	EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) = user32.EnumWindows | ||||
| //sys	EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) = user32.EnumChildWindows | ||||
| //sys	GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) = user32.GetClassNameW | ||||
| //sys	GetDesktopWindow() (hwnd HWND) = user32.GetDesktopWindow | ||||
| //sys	GetForegroundWindow() (hwnd HWND) = user32.GetForegroundWindow | ||||
| //sys	IsWindow(hwnd HWND) (isWindow bool) = user32.IsWindow | ||||
| //sys	IsWindowUnicode(hwnd HWND) (isUnicode bool) = user32.IsWindowUnicode | ||||
| //sys	IsWindowVisible(hwnd HWND) (isVisible bool) = user32.IsWindowVisible | ||||
| //sys	GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) = user32.GetGUIThreadInfo | ||||
|  | ||||
| // Volume Management Functions | ||||
| //sys	DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW | ||||
| @@ -417,6 +420,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { | ||||
| //sys	GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) = psapi.GetModuleInformation | ||||
| //sys	GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) = psapi.GetModuleFileNameExW | ||||
| //sys	GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) = psapi.GetModuleBaseNameW | ||||
| //sys   QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) = psapi.QueryWorkingSetEx | ||||
|  | ||||
| // NT Native APIs | ||||
| //sys	rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) = ntdll.RtlNtStatusToDosErrorNoTeb | ||||
| @@ -438,6 +442,10 @@ func NewCallbackCDecl(fn interface{}) uintptr { | ||||
| //sys	RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) = ntdll.RtlAddFunctionTable | ||||
| //sys	RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) = ntdll.RtlDeleteFunctionTable | ||||
|  | ||||
| // Desktop Window Manager API (Dwmapi) | ||||
| //sys	DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmGetWindowAttribute | ||||
| //sys	DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmSetWindowAttribute | ||||
|  | ||||
| // syscall interface implementation for other packages | ||||
|  | ||||
| // GetCurrentProcess returns the handle for the current process. | ||||
| @@ -747,7 +755,7 @@ func Utimes(path string, tv []Timeval) (err error) { | ||||
| 	if e != nil { | ||||
| 		return e | ||||
| 	} | ||||
| 	defer Close(h) | ||||
| 	defer CloseHandle(h) | ||||
| 	a := NsecToFiletime(tv[0].Nanoseconds()) | ||||
| 	w := NsecToFiletime(tv[1].Nanoseconds()) | ||||
| 	return SetFileTime(h, nil, &a, &w) | ||||
| @@ -767,7 +775,7 @@ func UtimesNano(path string, ts []Timespec) (err error) { | ||||
| 	if e != nil { | ||||
| 		return e | ||||
| 	} | ||||
| 	defer Close(h) | ||||
| 	defer CloseHandle(h) | ||||
| 	a := NsecToFiletime(TimespecToNsec(ts[0])) | ||||
| 	w := NsecToFiletime(TimespecToNsec(ts[1])) | ||||
| 	return SetFileTime(h, nil, &a, &w) | ||||
| @@ -971,6 +979,32 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) { | ||||
| 	return unsafe.Pointer(&sa.raw), sl, nil | ||||
| } | ||||
|  | ||||
| type RawSockaddrBth struct { | ||||
| 	AddressFamily  [2]byte | ||||
| 	BtAddr         [8]byte | ||||
| 	ServiceClassId [16]byte | ||||
| 	Port           [4]byte | ||||
| } | ||||
|  | ||||
| type SockaddrBth struct { | ||||
| 	BtAddr         uint64 | ||||
| 	ServiceClassId GUID | ||||
| 	Port           uint32 | ||||
|  | ||||
| 	raw RawSockaddrBth | ||||
| } | ||||
|  | ||||
| func (sa *SockaddrBth) sockaddr() (unsafe.Pointer, int32, error) { | ||||
| 	family := AF_BTH | ||||
| 	sa.raw = RawSockaddrBth{ | ||||
| 		AddressFamily:  *(*[2]byte)(unsafe.Pointer(&family)), | ||||
| 		BtAddr:         *(*[8]byte)(unsafe.Pointer(&sa.BtAddr)), | ||||
| 		Port:           *(*[4]byte)(unsafe.Pointer(&sa.Port)), | ||||
| 		ServiceClassId: *(*[16]byte)(unsafe.Pointer(&sa.ServiceClassId)), | ||||
| 	} | ||||
| 	return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil | ||||
| } | ||||
|  | ||||
| func (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) { | ||||
| 	switch rsa.Addr.Family { | ||||
| 	case AF_UNIX: | ||||
| @@ -1081,9 +1115,13 @@ func Shutdown(fd Handle, how int) (err error) { | ||||
| } | ||||
|  | ||||
| func WSASendto(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to Sockaddr, overlapped *Overlapped, croutine *byte) (err error) { | ||||
| 	rsa, l, err := to.sockaddr() | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	var rsa unsafe.Pointer | ||||
| 	var l int32 | ||||
| 	if to != nil { | ||||
| 		rsa, l, err = to.sockaddr() | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| 	return WSASendTo(s, bufs, bufcnt, sent, flags, (*RawSockaddrAny)(unsafe.Pointer(rsa)), l, overlapped, croutine) | ||||
| } | ||||
| @@ -1707,3 +1745,71 @@ func LoadResourceData(module, resInfo Handle) (data []byte, err error) { | ||||
| 	h.Cap = int(size) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| // PSAPI_WORKING_SET_EX_BLOCK contains extended working set information for a page. | ||||
| type PSAPI_WORKING_SET_EX_BLOCK uint64 | ||||
|  | ||||
| // Valid returns the validity of this page. | ||||
| // If this bit is 1, the subsequent members are valid; otherwise they should be ignored. | ||||
| func (b PSAPI_WORKING_SET_EX_BLOCK) Valid() bool { | ||||
| 	return (b & 1) == 1 | ||||
| } | ||||
|  | ||||
| // ShareCount is the number of processes that share this page. The maximum value of this member is 7. | ||||
| func (b PSAPI_WORKING_SET_EX_BLOCK) ShareCount() uint64 { | ||||
| 	return b.intField(1, 3) | ||||
| } | ||||
|  | ||||
| // Win32Protection is the memory protection attributes of the page. For a list of values, see | ||||
| // https://docs.microsoft.com/en-us/windows/win32/memory/memory-protection-constants | ||||
| func (b PSAPI_WORKING_SET_EX_BLOCK) Win32Protection() uint64 { | ||||
| 	return b.intField(4, 11) | ||||
| } | ||||
|  | ||||
| // Shared returns the shared status of this page. | ||||
| // If this bit is 1, the page can be shared. | ||||
| func (b PSAPI_WORKING_SET_EX_BLOCK) Shared() bool { | ||||
| 	return (b & (1 << 15)) == 1 | ||||
| } | ||||
|  | ||||
| // Node is the NUMA node. The maximum value of this member is 63. | ||||
| func (b PSAPI_WORKING_SET_EX_BLOCK) Node() uint64 { | ||||
| 	return b.intField(16, 6) | ||||
| } | ||||
|  | ||||
| // Locked returns the locked status of this page. | ||||
| // If this bit is 1, the virtual page is locked in physical memory. | ||||
| func (b PSAPI_WORKING_SET_EX_BLOCK) Locked() bool { | ||||
| 	return (b & (1 << 22)) == 1 | ||||
| } | ||||
|  | ||||
| // LargePage returns the large page status of this page. | ||||
| // If this bit is 1, the page is a large page. | ||||
| func (b PSAPI_WORKING_SET_EX_BLOCK) LargePage() bool { | ||||
| 	return (b & (1 << 23)) == 1 | ||||
| } | ||||
|  | ||||
| // Bad returns the bad status of this page. | ||||
| // If this bit is 1, the page is has been reported as bad. | ||||
| func (b PSAPI_WORKING_SET_EX_BLOCK) Bad() bool { | ||||
| 	return (b & (1 << 31)) == 1 | ||||
| } | ||||
|  | ||||
| // intField extracts an integer field in the PSAPI_WORKING_SET_EX_BLOCK union. | ||||
| func (b PSAPI_WORKING_SET_EX_BLOCK) intField(start, length int) uint64 { | ||||
| 	var mask PSAPI_WORKING_SET_EX_BLOCK | ||||
| 	for pos := start; pos < start+length; pos++ { | ||||
| 		mask |= (1 << pos) | ||||
| 	} | ||||
|  | ||||
| 	masked := b & mask | ||||
| 	return uint64(masked >> start) | ||||
| } | ||||
|  | ||||
| // PSAPI_WORKING_SET_EX_INFORMATION contains extended working set information for a process. | ||||
| type PSAPI_WORKING_SET_EX_INFORMATION struct { | ||||
| 	// The virtual address. | ||||
| 	VirtualAddress Pointer | ||||
| 	// A PSAPI_WORKING_SET_EX_BLOCK union that indicates the attributes of the page at VirtualAddress. | ||||
| 	VirtualAttributes PSAPI_WORKING_SET_EX_BLOCK | ||||
| } | ||||
|   | ||||
							
								
								
									
										45
									
								
								vendor/golang.org/x/sys/windows/types_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										45
									
								
								vendor/golang.org/x/sys/windows/types_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -3213,3 +3213,48 @@ type ModuleInfo struct { | ||||
| } | ||||
|  | ||||
| const ALL_PROCESSOR_GROUPS = 0xFFFF | ||||
|  | ||||
| type Rect struct { | ||||
| 	Left   int32 | ||||
| 	Top    int32 | ||||
| 	Right  int32 | ||||
| 	Bottom int32 | ||||
| } | ||||
|  | ||||
| type GUIThreadInfo struct { | ||||
| 	Size        uint32 | ||||
| 	Flags       uint32 | ||||
| 	Active      HWND | ||||
| 	Focus       HWND | ||||
| 	Capture     HWND | ||||
| 	MenuOwner   HWND | ||||
| 	MoveSize    HWND | ||||
| 	CaretHandle HWND | ||||
| 	CaretRect   Rect | ||||
| } | ||||
|  | ||||
| const ( | ||||
| 	DWMWA_NCRENDERING_ENABLED            = 1 | ||||
| 	DWMWA_NCRENDERING_POLICY             = 2 | ||||
| 	DWMWA_TRANSITIONS_FORCEDISABLED      = 3 | ||||
| 	DWMWA_ALLOW_NCPAINT                  = 4 | ||||
| 	DWMWA_CAPTION_BUTTON_BOUNDS          = 5 | ||||
| 	DWMWA_NONCLIENT_RTL_LAYOUT           = 6 | ||||
| 	DWMWA_FORCE_ICONIC_REPRESENTATION    = 7 | ||||
| 	DWMWA_FLIP3D_POLICY                  = 8 | ||||
| 	DWMWA_EXTENDED_FRAME_BOUNDS          = 9 | ||||
| 	DWMWA_HAS_ICONIC_BITMAP              = 10 | ||||
| 	DWMWA_DISALLOW_PEEK                  = 11 | ||||
| 	DWMWA_EXCLUDED_FROM_PEEK             = 12 | ||||
| 	DWMWA_CLOAK                          = 13 | ||||
| 	DWMWA_CLOAKED                        = 14 | ||||
| 	DWMWA_FREEZE_REPRESENTATION          = 15 | ||||
| 	DWMWA_PASSIVE_UPDATE_MODE            = 16 | ||||
| 	DWMWA_USE_HOSTBACKDROPBRUSH          = 17 | ||||
| 	DWMWA_USE_IMMERSIVE_DARK_MODE        = 20 | ||||
| 	DWMWA_WINDOW_CORNER_PREFERENCE       = 33 | ||||
| 	DWMWA_BORDER_COLOR                   = 34 | ||||
| 	DWMWA_CAPTION_COLOR                  = 35 | ||||
| 	DWMWA_TEXT_COLOR                     = 36 | ||||
| 	DWMWA_VISIBLE_FRAME_BORDER_THICKNESS = 37 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										97
									
								
								vendor/golang.org/x/sys/windows/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										97
									
								
								vendor/golang.org/x/sys/windows/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -40,6 +40,7 @@ var ( | ||||
| 	modadvapi32 = NewLazySystemDLL("advapi32.dll") | ||||
| 	modcrypt32  = NewLazySystemDLL("crypt32.dll") | ||||
| 	moddnsapi   = NewLazySystemDLL("dnsapi.dll") | ||||
| 	moddwmapi   = NewLazySystemDLL("dwmapi.dll") | ||||
| 	modiphlpapi = NewLazySystemDLL("iphlpapi.dll") | ||||
| 	modkernel32 = NewLazySystemDLL("kernel32.dll") | ||||
| 	modmswsock  = NewLazySystemDLL("mswsock.dll") | ||||
| @@ -175,6 +176,8 @@ var ( | ||||
| 	procDnsNameCompare_W                                     = moddnsapi.NewProc("DnsNameCompare_W") | ||||
| 	procDnsQuery_W                                           = moddnsapi.NewProc("DnsQuery_W") | ||||
| 	procDnsRecordListFree                                    = moddnsapi.NewProc("DnsRecordListFree") | ||||
| 	procDwmGetWindowAttribute                                = moddwmapi.NewProc("DwmGetWindowAttribute") | ||||
| 	procDwmSetWindowAttribute                                = moddwmapi.NewProc("DwmSetWindowAttribute") | ||||
| 	procGetAdaptersAddresses                                 = modiphlpapi.NewProc("GetAdaptersAddresses") | ||||
| 	procGetAdaptersInfo                                      = modiphlpapi.NewProc("GetAdaptersInfo") | ||||
| 	procGetBestInterfaceEx                                   = modiphlpapi.NewProc("GetBestInterfaceEx") | ||||
| @@ -408,6 +411,7 @@ var ( | ||||
| 	procGetModuleBaseNameW                                   = modpsapi.NewProc("GetModuleBaseNameW") | ||||
| 	procGetModuleFileNameExW                                 = modpsapi.NewProc("GetModuleFileNameExW") | ||||
| 	procGetModuleInformation                                 = modpsapi.NewProc("GetModuleInformation") | ||||
| 	procQueryWorkingSetEx                                    = modpsapi.NewProc("QueryWorkingSetEx") | ||||
| 	procSubscribeServiceChangeNotifications                  = modsechost.NewProc("SubscribeServiceChangeNotifications") | ||||
| 	procUnsubscribeServiceChangeNotifications                = modsechost.NewProc("UnsubscribeServiceChangeNotifications") | ||||
| 	procGetUserNameExW                                       = modsecur32.NewProc("GetUserNameExW") | ||||
| @@ -443,9 +447,18 @@ var ( | ||||
| 	procCommandLineToArgvW                                   = modshell32.NewProc("CommandLineToArgvW") | ||||
| 	procSHGetKnownFolderPath                                 = modshell32.NewProc("SHGetKnownFolderPath") | ||||
| 	procShellExecuteW                                        = modshell32.NewProc("ShellExecuteW") | ||||
| 	procEnumChildWindows                                     = moduser32.NewProc("EnumChildWindows") | ||||
| 	procEnumWindows                                          = moduser32.NewProc("EnumWindows") | ||||
| 	procExitWindowsEx                                        = moduser32.NewProc("ExitWindowsEx") | ||||
| 	procGetClassNameW                                        = moduser32.NewProc("GetClassNameW") | ||||
| 	procGetDesktopWindow                                     = moduser32.NewProc("GetDesktopWindow") | ||||
| 	procGetForegroundWindow                                  = moduser32.NewProc("GetForegroundWindow") | ||||
| 	procGetGUIThreadInfo                                     = moduser32.NewProc("GetGUIThreadInfo") | ||||
| 	procGetShellWindow                                       = moduser32.NewProc("GetShellWindow") | ||||
| 	procGetWindowThreadProcessId                             = moduser32.NewProc("GetWindowThreadProcessId") | ||||
| 	procIsWindow                                             = moduser32.NewProc("IsWindow") | ||||
| 	procIsWindowUnicode                                      = moduser32.NewProc("IsWindowUnicode") | ||||
| 	procIsWindowVisible                                      = moduser32.NewProc("IsWindowVisible") | ||||
| 	procMessageBoxW                                          = moduser32.NewProc("MessageBoxW") | ||||
| 	procCreateEnvironmentBlock                               = moduserenv.NewProc("CreateEnvironmentBlock") | ||||
| 	procDestroyEnvironmentBlock                              = moduserenv.NewProc("DestroyEnvironmentBlock") | ||||
| @@ -1524,6 +1537,22 @@ func DnsRecordListFree(rl *DNSRecord, freetype uint32) { | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { | ||||
| 	r0, _, _ := syscall.Syscall6(procDwmGetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) | ||||
| 	if r0 != 0 { | ||||
| 		ret = syscall.Errno(r0) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { | ||||
| 	r0, _, _ := syscall.Syscall6(procDwmSetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) | ||||
| 	if r0 != 0 { | ||||
| 		ret = syscall.Errno(r0) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { | ||||
| 	r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0) | ||||
| 	if r0 != 0 { | ||||
| @@ -3504,6 +3533,14 @@ func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) { | ||||
| 	r1, _, e1 := syscall.Syscall(procQueryWorkingSetEx.Addr(), 3, uintptr(process), uintptr(pv), uintptr(cb)) | ||||
| 	if r1 == 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) { | ||||
| 	ret = procSubscribeServiceChangeNotifications.Find() | ||||
| 	if ret != nil { | ||||
| @@ -3793,6 +3830,19 @@ func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *ui | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) { | ||||
| 	syscall.Syscall(procEnumChildWindows.Addr(), 3, uintptr(hwnd), uintptr(enumFunc), uintptr(param)) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) { | ||||
| 	r1, _, e1 := syscall.Syscall(procEnumWindows.Addr(), 2, uintptr(enumFunc), uintptr(param), 0) | ||||
| 	if r1 == 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func ExitWindowsEx(flags uint32, reason uint32) (err error) { | ||||
| 	r1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0) | ||||
| 	if r1 == 0 { | ||||
| @@ -3801,6 +3851,35 @@ func ExitWindowsEx(flags uint32, reason uint32) (err error) { | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) { | ||||
| 	r0, _, e1 := syscall.Syscall(procGetClassNameW.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount)) | ||||
| 	copied = int32(r0) | ||||
| 	if copied == 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func GetDesktopWindow() (hwnd HWND) { | ||||
| 	r0, _, _ := syscall.Syscall(procGetDesktopWindow.Addr(), 0, 0, 0, 0) | ||||
| 	hwnd = HWND(r0) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func GetForegroundWindow() (hwnd HWND) { | ||||
| 	r0, _, _ := syscall.Syscall(procGetForegroundWindow.Addr(), 0, 0, 0, 0) | ||||
| 	hwnd = HWND(r0) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) { | ||||
| 	r1, _, e1 := syscall.Syscall(procGetGUIThreadInfo.Addr(), 2, uintptr(thread), uintptr(unsafe.Pointer(info)), 0) | ||||
| 	if r1 == 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func GetShellWindow() (shellWindow HWND) { | ||||
| 	r0, _, _ := syscall.Syscall(procGetShellWindow.Addr(), 0, 0, 0, 0) | ||||
| 	shellWindow = HWND(r0) | ||||
| @@ -3816,6 +3895,24 @@ func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) { | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func IsWindow(hwnd HWND) (isWindow bool) { | ||||
| 	r0, _, _ := syscall.Syscall(procIsWindow.Addr(), 1, uintptr(hwnd), 0, 0) | ||||
| 	isWindow = r0 != 0 | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func IsWindowUnicode(hwnd HWND) (isUnicode bool) { | ||||
| 	r0, _, _ := syscall.Syscall(procIsWindowUnicode.Addr(), 1, uintptr(hwnd), 0, 0) | ||||
| 	isUnicode = r0 != 0 | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func IsWindowVisible(hwnd HWND) (isVisible bool) { | ||||
| 	r0, _, _ := syscall.Syscall(procIsWindowVisible.Addr(), 1, uintptr(hwnd), 0, 0) | ||||
| 	isVisible = r0 != 0 | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) { | ||||
| 	r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0) | ||||
| 	ret = int32(r0) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Akihiro Suda
					Akihiro Suda