{"repo":"rodrigocfd/windigo","free":true,"listed":false,"github":"https://github.com/rodrigocfd/windigo","clone":"git clone https://github.com/rodrigocfd/windigo.git","description":"Windows API and GUI in idiomatic Go.","language":"Go","stars":639,"topics":["go","golang","win32","gui","windows","native","ffi","bindings"],"license":"MIT","category":"dev-tools","readme_excerpt":"Windigo Win32 API and GUI in idiomatic Go. Handwritten since 2019. Windigo is designed to be familiar to C/C++ Win32 programmers, using the same concepts, and an API as close as possible to the original Win32 API. This allows most C/C++ Win32 tutorials and examples to be translated to Go. Notably, Windigo is written 100% in pure Go – CGo is not used, just native syscalls. Windigo is based in Go 1.20, so it can be built in Windows 7 and above. Install Current status Native FFI items currently implemented: Native FFI item Count - -: Handles 32 Structs 211 Functions 705 COM interfaces 80 COM methods 548 Const types 441 Const values 11,291 Examples In the examples below, error checking is ommited for brevity. GUI window GUI window The example below creates a window programmatically, and handles the button click. Also, it uses the minimal.syso provided in the resources folder. To compile the final .exe file, run the command: Registry access Registry access Enumerating running processes Enumerating running processes The example below takes a process snapshot to list the running processes: Taking a screenshot Taking a screenshot This complex example takes a screenshot using GDI and saves it to a BMP file. Component Object Model (COM) Component Object Model (COM) Windigo has full support for C++ COM objects. The cleanup is performed by a win.OleReleaser object, which calls Release on multiple COM objects at once, much like an arena allocator. Every function which produces a COM objec","default_branch":null,"files":null,"tree":[],"storefront":"/r/rodrigocfd","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/rodrigocfd/windigo/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}