func Create(windowInstance unsafe.Pointer) (obj DirectInput, err error) { DirectInput8Create, err := syscall.GetProcAddress(dll, "DirectInput8Create") if err != nil { return DirectInput{}, err } err = toError(C.create( unsafe.Pointer(DirectInput8Create), C.HINSTANCE(windowInstance), &obj.handle, )) return }
// #include "helper_windows.h" // // extern LRESULT CALLBACK (*pGlobalOnEvent)(HWND handle, UINT message, WPARAM wParam, LPARAM lParam); import "C" import ( "fmt" "image" "unsafe" ) var className, classNameLength = utf16Convert("go-glml/window.Window") var windowClass = C.WNDCLASSW{ lpfnWndProc: C.pGlobalOnEvent, style: C.CS_OWNDC | C.CS_HREDRAW | C.CS_VREDRAW, hInstance: C.HINSTANCE(C.GetModuleHandle(nil)), lpszClassName: className, } func init() { C.RegisterClassW(&windowClass) } type WindowHandle struct { Handle C.HWND } func (wh WindowHandle) IsValid() bool { return wh.Handle != nil }