winim

Winim provides Windows SDK APIs, structs, and constant definitions for Nim. It also provides Windows string utilities, Windows COM, legacy .NET Framework, and modern .NET support. For compatibility, Winim uses only signed integer types.

Usage:

import winim # Import all modules except COM support.
import winim/lean # Import the core SDK only; this speeds up compilation.
import winim/com # Windows COM support.
import winim/clr # Windows legacy .NET Framework support.
import winim/dotnet # Modern .NET support.

API modules can also be imported individually, for example:

import winim/winstr
import winim/inc/[windef, winbase, winuser]

Compile:

nim c source.nim
  add -d:winansi or -d:useWinAnsi for the ANSI version (Unicode by default)
  add -d:noDiscardableApi if you do not want discardable Windows APIs
  add -d:noRes to disable visual styles
  add -d:lean or -d:mean to select a smaller import set
  add -d:notrace to disable COM object tracing
  add -d:webview2=lib to use the static WebView2 loader
  add -d:webview2=dll_file_name to select a loader DLL

Imports

core, shell, net, ole, extra, utils, winstr