Hello friends,
i am trying to write some win api in golang ,because these API not
implemented any PKG.
"syscall"
"github.com/contester/runlib/win32"
"golang.org/x/sys/windows"
API are code in C++
OpenDesktop
hdesk = OpenDesktop(
_T("default"), // the interactive window station
0, // no interaction with other desktop processes
FALSE, // handle is not inheritable
READ_CONTROL | // request the rights to read and write the DACL
WRITE_DAC |
DESKTOP_WRITEOBJECTS |
DESKTOP_READOBJECTS);
OpenWindowStation
hwinsta = OpenWindowStation(
_T("winsta0"), // the interactive window
station
FALSE, // handle is not inheritable
READ_CONTROL | WRITE_DAC);
is my implemention correct or i did some mistake.
Now my implemented code in GOLANG
func OpenWindowStation() (win32.Hwinsta, error) {
winst, _ := syscall.UTF16FromString("winsta0")
// r1, _, e1 := syscall.Syscall(procOpenWindowStation.Addr(),
uintptr(unsafe.Pointer(&winst[0])), uintptr(0), uintptr(READ_CONTROL),
uintptr(WRITE_DAC))
r1, _, e1 := procOpenWindowStation.Call(
uintptr(unsafe.Pointer(&winst[0])),
uintptr(0),
uintptr(READ_CONTROL),
uintptr(WRITE_DAC))
if int(r1) == 0 {
return win32.Hwinsta(r1), os.NewSyscallError("OpenWindowStation", e1)
}
return win32.Hwinsta(r1), nil
}
func OpenDesktop(lpszDesktop *uint16, dwFlags uint32, fInherit uint32)
(win32.Hdesk, error) {
r1, _, e1 := procOpenDesktop.Call(
uintptr(unsafe.Pointer(lpszDesktop)),
uintptr(dwFlags),
uintptr(READ_CONTROL),
uintptr(WRITE_DAC),
uintptr(DESKTOP_WRITEOBJECTS),
uintptr(DESKTOP_READOBJECTS),
uintptr(fInherit))
if int(r1) == 0 {
return win32.Hdesk(r1), os.NewSyscallError("OpenWindowStation", e1)
}
return win32.Hdesk(r1), nil
}
My another question is when to use which function listed below like
(syscal.syscall,logonProc.Addr(),logonProc.call())
But i am not able to understand some time
>>>>>>>syscall.Syscall6(logonProc.Addr(), 6, uintptr(unsafe.Pointer(&pu[0])),
uintptr(unsafe.Pointer(&domain[0])),
uintptr(unsafe.Pointer(&pp[0])),
LOGON32_LOGON_NETWORK,
LOGON32_PROVIDER_DEFAULT,
uintptr(unsafe.Pointer(&token)))
>>>>>>>>logonProc.Call()
>>>>>>>>syscall.Syscall()
>>>>>>>>syscall.Syscall9()
Please suggest from where do i get this info.
Thanks
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.