From e9f25362bef2616b8074c1d6ec30a1afecf0c178 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 10 Feb 2014 12:44:11 -0500 Subject: Added combo boxes and added some to the main window example. --- common.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'common.go') diff --git a/common.go b/common.go index 4505397..a51583d 100644 --- a/common.go +++ b/common.go @@ -3,8 +3,11 @@ package main import ( "syscall" + "unsafe" ) +// TODO filter out commctrl.h stuff because the combobox stuff has values that differ between windows versions and bleh + var ( user32 = syscall.NewLazyDLL("user32.dll") kernel32 = syscall.NewLazyDLL("kernel32.dll") @@ -37,7 +40,30 @@ func (w WPARAM) HIWORD() uint16 { return uint16((w >> 16) & 0xFFFF) } +func LPARAMFromString(str string) LPARAM { + return LPARAM(unsafe.Pointer(syscall.StringToUTF16Ptr(str))) +} + // microsoft's header files do this func MAKEINTRESOURCE(what uint16) uintptr { return uintptr(what) } + +// TODO adorn error messages with which step failed? +func getText(hwnd HWND) (text string, err error) { + var tc []uint16 + + length, err := SendMessage(hwnd, WM_GETTEXTLENGTH, 0, 0) + if err != nil { + return "", err + } + tc = make([]uint16, length + 1) + _, err = SendMessage(hwnd, + WM_GETTEXT, + WPARAM(length + 1), + LPARAM(unsafe.Pointer(&tc[0]))) + if err != nil { + return "", err + } + return syscall.UTF16ToString(tc), nil +} -- cgit v1.2.3