github.com/aporeto-inc/trireme-lib@v10.358.0+incompatible/utils/frontman/utils_windows.go (about) 1 // +build windows 2 3 package frontman 4 5 import ( 6 "syscall" 7 "unsafe" 8 ) 9 10 // WideCharPointerToString converts a pointer to a zero-terminated wide character string to a golang string 11 func WideCharPointerToString(pszWide *uint16) string { 12 13 ptr := uintptr(unsafe.Pointer(pszWide)) // nolint:govet 14 buf := make([]uint16, 0, 256) 15 for { 16 ch := *((*uint16)(unsafe.Pointer(ptr))) // nolint:govet 17 buf = append(buf, ch) 18 if ch == 0 { 19 break 20 } 21 22 ptr += 2 23 } 24 return syscall.UTF16ToString(buf) 25 }