https://github.com/jeet-parekh/winapi
Windows API wrappers for Go
https://github.com/jeet-parekh/winapi
go golang winapi windows
Last synced: 4 months ago
JSON representation
Windows API wrappers for Go
- Host: GitHub
- URL: https://github.com/jeet-parekh/winapi
- Owner: jeet-parekh
- License: mit
- Created: 2017-10-15T18:56:03.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-10-30T05:33:49.000Z (over 8 years ago)
- Last Synced: 2025-06-26T01:05:59.175Z (about 1 year ago)
- Topics: go, golang, winapi, windows
- Language: Go
- Homepage:
- Size: 60.5 KB
- Stars: 7
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Windows API wrappers for Go
---
### About `winapi`
- `winapi` provides wrappers around WinAPI functions.
- [Documentation: godoc](https://godoc.org/github.com/jeet-parekh/winapi)
APIs wrapped:
- [Configuration](https://msdn.microsoft.com/en-us/library/ff625300.aspx)
- [Hooks](https://msdn.microsoft.com/en-us/library/ms632589.aspx)
- [Keyboard Input](https://msdn.microsoft.com/en-us/library/ms645530.aspx)
- [Messages and Message Queues](https://msdn.microsoft.com/en-us/library/ms632590.aspx)
- [Mouse Input](https://msdn.microsoft.com/en-us/library/ms645533.aspx)
- [Multiple Document Interface](https://msdn.microsoft.com/en-us/library/ms632591.aspx)
- [Raw Input](https://msdn.microsoft.com/en-us/library/ms645536.aspx)
- [Timers](https://msdn.microsoft.com/en-us/library/ms632592.aspx)
---
WINAPI uses `union` which is not available in Go. To handle that, variants of structures and functions have been created for some APIs.
The structures and functions which have variants are mentioned below.
---
## RAW INPUT
`GetRawInputDeviceInfo` for uiCommand `RIDI_PREPARSEDDATA` isn't implemented.
### Abbreviations
|Abbreviation|Meaning|
|---|---|
|M|Mouse|
|MB|MouseButtons|
|MBI|MouseButtonInformation|
|K|Keyboard|
|HID|Human Interface Device|
### Structures
|WINAPI|Go|
|---|---|
|[RAWINPUT](https://msdn.microsoft.com/en-us/library/ms645562.aspx)|RAWINPUT\_MB
RAWINPUT\_MBI
RAWINPUT\_K
RAWINPUT\_HID|
|[RAWMOUSE](https://msdn.microsoft.com/en-us/library/ms645578.aspx)|RAWMOUSEBUTTONS
RAWMOUSEBUTTONINFO|
|[RID\_DEVICE\_INFO](https://msdn.microsoft.com/en-us/library/ms645581.aspx)|RIDI\_M
RIDI\_K
RIDI\_HID|
### Functions
|WINAPI|Go|
|---|---|
|[DefRawInputProc](https://msdn.microsoft.com/en-us/library/ms645594.aspx)|DefRawInputProcMB
DefRawInputProcMBI
DefRawInputProcK
DefRawInputProcHID|
|[GetRawInputBuffer](https://msdn.microsoft.com/en-us/library/ms645595.aspx)|GetRawInputBufferMB
GetRawInputBufferMBI
GetRawInputBufferK
GetRawInputBufferHID|
|[GetRawInputData](https://msdn.microsoft.com/en-us/library/ms645596.aspx)|GetRawInputDataMB
GetRawInputDataMBI
GetRawInputDataK
GetRawInputDataHID|
|[GetRawInputDeviceInfo](https://msdn.microsoft.com/en-us/library/ms645597.aspx)|GetRawInputDeviceName
GetRawInputDeviceInfoM
GetRawInputDeviceInfoK
GetRawInputDeviceInfoHID|
---
## KEYBOARD INPUT
### Abbreviations
|Abbreviation|Meaning|
|---|---|
|M|Mouse|
|K|Keyboard|
|HW|Hardware|
### Structures
|WINAPI|Go|
|---|---|
|[INPUT](https://msdn.microsoft.com/en-us/library/ms646270.aspx)|INPUT\_M
INPUT\_K
INPUT\_HW|
### Functions
|WINAPI|Go|
|---|---|
|[SendInput](https://msdn.microsoft.com/en-us/library/ms646310.aspx)|SendInputM
SendInputK
SendInputHW|
---