summaryrefslogtreecommitdiff
path: root/winmain_windows.go
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-02-11 16:25:27 -0500
committerPietro Gagliardi <[email protected]>2014-02-11 16:25:27 -0500
commitb727a972adbc90c3cdfbff2c462a583aefd48474 (patch)
treed85cb4bcddf511f449589e4b4614e8dab985e2b1 /winmain_windows.go
parentaf22eea889d553c6ed05b4bbaec4fe37fd85f2ff (diff)
Set up initialization on Windows (2/2).
Diffstat (limited to 'winmain_windows.go')
-rw-r--r--winmain_windows.go77
1 files changed, 0 insertions, 77 deletions
diff --git a/winmain_windows.go b/winmain_windows.go
deleted file mode 100644
index bea6516..0000000
--- a/winmain_windows.go
+++ /dev/null
@@ -1,77 +0,0 @@
-// 8 february 2014
-package main
-
-import (
- "fmt"
-// "syscall"
- "unsafe"
-)
-
-const (
- windowclass = "gouiwndclass"
-)
-
-var (
- hInstance HANDLE
- nCmdShow int
- // TODO font
- // TODO common window class
-)
-
-// TODO is this trick documented in MSDN?
-func getWinMainhInstance() (err error) {
- r1, _, err := kernel32.NewProc("GetModuleHandleW").Call(uintptr(NULL))
- if r1 == 0 { // failure
- return err
- }
- hInstance = HANDLE(r1)
- return nil
-}
-
-// TODO this is what MinGW-w64's crt (svn revision xxx) does; is it best? is any of this documented anywhere on MSDN?
-// TODO I highly doubt Windows API functions ever not fail, so figure out what to do should an error actually occur
-func getWinMainnCmdShow() (nCmdShow int, err error) {
- var info struct {
- cb uint32
- lpReserved *uint16
- lpDesktop *uint16
- lpTitle *uint16
- dwX uint32
- dwY uint32
- dwXSize uint32
- dwYSzie uint32
- dwXCountChars uint32
- dwYCountChars uint32
- dwFillAttribute uint32
- dwFlags uint32
- wShowWindow uint16
- cbReserved2 uint16
- lpReserved2 *byte
- hStdInput HANDLE
- hStdOutput HANDLE
- hStdError HANDLE
- }
- const _STARTF_USESHOWWINDOW = 0x00000001
-
- // does not fail according to MSDN
- kernel32.NewProc("GetStartupInfoW").Call(uintptr(unsafe.Pointer(&info)))
- if info.dwFlags & _STARTF_USESHOWWINDOW != 0 {
- nCmdShow = int(info.wShowWindow)
- return nil
- }
- nCmdShow = _SW_SHOWDEFAULT
- return nil
-}
-
-func doWindowsInit() (err error) {
- err = getWinMainhInstance()
- if err != nil {
- return fmt.Errorf("error getting WinMain hInstance: %v", err)
- }
- err = getWinMainnCmdShow()
- if err != nil {
- return fmt.Errorf("error getting WinMain nCmdShow: %v", err)
- }
- // TODO others
- return nil // all ready to go
-}