utils

This module contains utilities for happily coding in winim.

Procs

proc `&`[T](x: var T): ptr T {...}{.inline.}
Use & like it in C/C++ to get address for anything.
proc `&`(x: object): ptr type(x) {...}{.importc: "&", nodecl.}
Use & to gets pointer for const object. For example:
# pUk is "ptr IUnknown" for some object
var pDisp: ptr IDispatch
pUk.QueryInterface(&IID_IDispatch, &pDisp)

Converters

converter winimConverterBooleanToBOOL(x: bool): BOOL {...}{.raises: [], tags: [].}
Converter between Windows' BOOL/WINBOOL and Nim's boolean type
converter winimConverterBOOLToBoolean(x: BOOL): bool {...}{.raises: [], tags: [].}
Converter between Windows' BOOL/WINBOOL and Nim's boolean type
converter winimConverterVarObjectToPtrObject[T: object](x: var T): ptr T
Pass an object by address if target is "ptr object". For example:
var msg: MSG
while GetMessage(msg, 0, 0, 0) != 0:
  TranslateMessage(msg)
  DispatchMessage(msg)