Skip to content

Commit

Permalink
go fmt
Browse files Browse the repository at this point in the history
  • Loading branch information
Popog committed Oct 27, 2012
1 parent 40381bd commit 4f93026
Show file tree
Hide file tree
Showing 17 changed files with 3,121 additions and 3,121 deletions.
328 changes: 164 additions & 164 deletions advapi32.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,217 +5,217 @@
package w32

import (
"fmt"
"syscall"
"unsafe"
"fmt"
"syscall"
"unsafe"
)

var (
modadvapi32 = syscall.NewLazyDLL("advapi32.dll")

procRegOpenKeyEx = modadvapi32.NewProc("RegOpenKeyExW")
procRegCloseKey = modadvapi32.NewProc("RegCloseKey")
procRegGetValue = modadvapi32.NewProc("RegGetValueW")
procRegEnumKeyEx = modadvapi32.NewProc("RegEnumKeyExW")
procRegSetKeyValue = modadvapi32.NewProc("RegSetKeyValueW")
procOpenEventLog = modadvapi32.NewProc("OpenEventLogW")
procReadEventLog = modadvapi32.NewProc("ReadEventLogW")
procCloseEventLog = modadvapi32.NewProc("CloseEventLog")
procOpenSCManager = modadvapi32.NewProc("OpenSCManagerW")
procCloseServiceHandle = modadvapi32.NewProc("CloseServiceHandle")
procOpenService = modadvapi32.NewProc("OpenServiceW")
procStartService = modadvapi32.NewProc("StartServiceW")
procControlService = modadvapi32.NewProc("ControlService")
modadvapi32 = syscall.NewLazyDLL("advapi32.dll")

procRegOpenKeyEx = modadvapi32.NewProc("RegOpenKeyExW")
procRegCloseKey = modadvapi32.NewProc("RegCloseKey")
procRegGetValue = modadvapi32.NewProc("RegGetValueW")
procRegEnumKeyEx = modadvapi32.NewProc("RegEnumKeyExW")
procRegSetKeyValue = modadvapi32.NewProc("RegSetKeyValueW")
procOpenEventLog = modadvapi32.NewProc("OpenEventLogW")
procReadEventLog = modadvapi32.NewProc("ReadEventLogW")
procCloseEventLog = modadvapi32.NewProc("CloseEventLog")
procOpenSCManager = modadvapi32.NewProc("OpenSCManagerW")
procCloseServiceHandle = modadvapi32.NewProc("CloseServiceHandle")
procOpenService = modadvapi32.NewProc("OpenServiceW")
procStartService = modadvapi32.NewProc("StartServiceW")
procControlService = modadvapi32.NewProc("ControlService")
)

func RegOpenKeyEx(hKey HKEY, subKey string, samDesired uint32) HKEY {
var result HKEY
ret, _, _ := procRegOpenKeyEx.Call(
uintptr(hKey),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
uintptr(0),
uintptr(samDesired),
uintptr(unsafe.Pointer(&result)))

if ret != ERROR_SUCCESS {
panic(fmt.Sprintf("RegOpenKeyEx(%d, %s, %d) failed", hKey, subKey, samDesired))
}
return result
var result HKEY
ret, _, _ := procRegOpenKeyEx.Call(
uintptr(hKey),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
uintptr(0),
uintptr(samDesired),
uintptr(unsafe.Pointer(&result)))

if ret != ERROR_SUCCESS {
panic(fmt.Sprintf("RegOpenKeyEx(%d, %s, %d) failed", hKey, subKey, samDesired))
}
return result
}

func RegCloseKey(hKey HKEY) {
ret, _, _ := procRegCloseKey.Call(
uintptr(hKey))
ret, _, _ := procRegCloseKey.Call(
uintptr(hKey))

if ret != ERROR_SUCCESS {
panic(fmt.Sprintf("RegCloseKey(%d) failed", hKey))
}
if ret != ERROR_SUCCESS {
panic(fmt.Sprintf("RegCloseKey(%d) failed", hKey))
}
}

func RegGetString(hKey HKEY, subKey string, value string) string {
var bufLen uint32
procRegGetValue.Call(
uintptr(hKey),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(value))),
uintptr(RRF_RT_REG_SZ),
0,
0,
uintptr(unsafe.Pointer(&bufLen)))

if bufLen == 0 {
return ""
}

buf := make([]uint16, bufLen)
ret, _, _ := procRegGetValue.Call(
uintptr(hKey),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(value))),
uintptr(RRF_RT_REG_SZ),
0,
uintptr(unsafe.Pointer(&buf[0])),
uintptr(unsafe.Pointer(&bufLen)))

if ret != ERROR_SUCCESS {
return ""
}

return syscall.UTF16ToString(buf)
var bufLen uint32
procRegGetValue.Call(
uintptr(hKey),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(value))),
uintptr(RRF_RT_REG_SZ),
0,
0,
uintptr(unsafe.Pointer(&bufLen)))

if bufLen == 0 {
return ""
}

buf := make([]uint16, bufLen)
ret, _, _ := procRegGetValue.Call(
uintptr(hKey),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(value))),
uintptr(RRF_RT_REG_SZ),
0,
uintptr(unsafe.Pointer(&buf[0])),
uintptr(unsafe.Pointer(&bufLen)))

if ret != ERROR_SUCCESS {
return ""
}

return syscall.UTF16ToString(buf)
}

func RegSetKeyValue(hKey HKEY, subKey string, valueName string, dwType DWORD, data uintptr, cbData uint16) (errno int) {
ret, _, _ := procRegSetKeyValue.Call(
uintptr(hKey),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(valueName))),
uintptr(dwType),
data,
uintptr(cbData))

return int(ret)
ret, _, _ := procRegSetKeyValue.Call(
uintptr(hKey),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(subKey))),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(valueName))),
uintptr(dwType),
data,
uintptr(cbData))

return int(ret)
}

func RegEnumKeyEx(hKey HKEY, index DWORD) string {
var bufLen uint32 = 255
buf := make([]uint16, bufLen)
procRegEnumKeyEx.Call(
uintptr(hKey),
uintptr(index),
uintptr(unsafe.Pointer(&buf[0])),
uintptr(unsafe.Pointer(&bufLen)),
0,
0,
0,
0)
return syscall.UTF16ToString(buf)
var bufLen uint32 = 255
buf := make([]uint16, bufLen)
procRegEnumKeyEx.Call(
uintptr(hKey),
uintptr(index),
uintptr(unsafe.Pointer(&buf[0])),
uintptr(unsafe.Pointer(&bufLen)),
0,
0,
0,
0)
return syscall.UTF16ToString(buf)
}

func OpenEventLog(servername, sourcename *uint16) HANDLE {
ret, _, _ := procOpenEventLog.Call(
uintptr(unsafe.Pointer(servername)),
uintptr(unsafe.Pointer(sourcename)))
ret, _, _ := procOpenEventLog.Call(
uintptr(unsafe.Pointer(servername)),
uintptr(unsafe.Pointer(sourcename)))

return HANDLE(ret)
return HANDLE(ret)
}

func ReadEventLog(eventlog HANDLE, readflags, recordoffset uint32, buffer []byte, numberofbytestoread uint32, bytesread, minnumberofbytesneeded *uint32) bool {
ret, _, _ := procReadEventLog.Call(
uintptr(eventlog),
uintptr(readflags),
uintptr(recordoffset),
uintptr(unsafe.Pointer(&buffer[0])),
uintptr(numberofbytestoread),
uintptr(unsafe.Pointer(bytesread)),
uintptr(unsafe.Pointer(minnumberofbytesneeded)))

return ret != 0
ret, _, _ := procReadEventLog.Call(
uintptr(eventlog),
uintptr(readflags),
uintptr(recordoffset),
uintptr(unsafe.Pointer(&buffer[0])),
uintptr(numberofbytestoread),
uintptr(unsafe.Pointer(bytesread)),
uintptr(unsafe.Pointer(minnumberofbytesneeded)))

return ret != 0
}

func CloseEventLog(eventlog HANDLE) bool {
ret, _, _ := procCloseEventLog.Call(
uintptr(eventlog))
ret, _, _ := procCloseEventLog.Call(
uintptr(eventlog))

return ret != 0
return ret != 0
}

func OpenSCManager(lpMachineName, lpDatabaseName string, dwDesiredAccess DWORD) (HANDLE, error) {
var p1, p2 uintptr
if len(lpMachineName) > 0 {
p1 = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpMachineName)))
}
if len(lpDatabaseName) > 0 {
p2 = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpDatabaseName)))
}
ret, _, _ := procOpenSCManager.Call(
p1,
p2,
uintptr(dwDesiredAccess))

if ret == 0 {
return 0, syscall.GetLastError()
}

return HANDLE(ret), nil
var p1, p2 uintptr
if len(lpMachineName) > 0 {
p1 = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpMachineName)))
}
if len(lpDatabaseName) > 0 {
p2 = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpDatabaseName)))
}
ret, _, _ := procOpenSCManager.Call(
p1,
p2,
uintptr(dwDesiredAccess))

if ret == 0 {
return 0, syscall.GetLastError()
}

return HANDLE(ret), nil
}

func CloseServiceHandle(hSCObject HANDLE) error {
ret, _, _ := procCloseServiceHandle.Call(uintptr(hSCObject))
if ret == 0 {
return syscall.GetLastError()
}
return nil
ret, _, _ := procCloseServiceHandle.Call(uintptr(hSCObject))
if ret == 0 {
return syscall.GetLastError()
}
return nil
}

func OpenService(hSCManager HANDLE, lpServiceName string, dwDesiredAccess DWORD) (HANDLE, error) {
ret, _, _ := procOpenService.Call(
uintptr(hSCManager),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpServiceName))),
uintptr(dwDesiredAccess))
ret, _, _ := procOpenService.Call(
uintptr(hSCManager),
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpServiceName))),
uintptr(dwDesiredAccess))

if ret == 0 {
return 0, syscall.GetLastError()
}
if ret == 0 {
return 0, syscall.GetLastError()
}

return HANDLE(ret), nil
return HANDLE(ret), nil
}

func StartService(hService HANDLE, lpServiceArgVectors []string) error {
l := len(lpServiceArgVectors)
var ret uintptr
if l == 0 {
ret, _, _ = procStartService.Call(
uintptr(hService),
0,
0)
} else {
lpArgs := make([]uintptr, l)
for i := 0; i < l; i++ {
lpArgs[i] = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpServiceArgVectors[i])))
}

ret, _, _ = procStartService.Call(
uintptr(hService),
uintptr(l),
uintptr(unsafe.Pointer(&lpArgs[0])))
}

if ret == 0 {
return syscall.GetLastError()
}

return nil
l := len(lpServiceArgVectors)
var ret uintptr
if l == 0 {
ret, _, _ = procStartService.Call(
uintptr(hService),
0,
0)
} else {
lpArgs := make([]uintptr, l)
for i := 0; i < l; i++ {
lpArgs[i] = uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(lpServiceArgVectors[i])))
}

ret, _, _ = procStartService.Call(
uintptr(hService),
uintptr(l),
uintptr(unsafe.Pointer(&lpArgs[0])))
}

if ret == 0 {
return syscall.GetLastError()
}

return nil
}

func ControlService(hService HANDLE, dwControl DWORD, lpServiceStatus *SERVICE_STATUS) bool {
if lpServiceStatus == nil {
panic("ControlService:lpServiceStatus cannot be nil")
}
if lpServiceStatus == nil {
panic("ControlService:lpServiceStatus cannot be nil")
}

ret, _, _ := procControlService.Call(
uintptr(hService),
uintptr(dwControl),
uintptr(unsafe.Pointer(lpServiceStatus)))
ret, _, _ := procControlService.Call(
uintptr(hService),
uintptr(dwControl),
uintptr(unsafe.Pointer(lpServiceStatus)))

return ret != 0
return ret != 0
}
Loading

0 comments on commit 4f93026

Please sign in to comment.