summary refs log tree commit diff stats
path: root/lib/windows
diff options
context:
space:
mode:
Diffstat (limited to 'lib/windows')
-rwxr-xr-xlib/windows/windows.nim7
-rwxr-xr-xlib/windows/winlean.nim14
2 files changed, 18 insertions, 3 deletions
diff --git a/lib/windows/windows.nim b/lib/windows/windows.nim
index 579775c2d..c8c977d9b 100755
--- a/lib/windows/windows.nim
+++ b/lib/windows/windows.nim
@@ -360,6 +360,7 @@ type
     RASP_PppIp = 0x00008021, RASP_PppIpx = 0x0000802B, RASP_PppNbf = 0x0000803F,

     RASP_Amb = 0x00010000

   SECURITY_IMPERSONATION_LEVEL* = enum

+

     SecurityAnonymous, SecurityIdentification, SecurityImpersonation,

     SecurityDelegation

   SID_NAME_USE* = enum

@@ -3761,6 +3762,7 @@ const
   SMTO_NORMAL* = 0

   # SetBkMode

   OPAQUE* = 2

+

   TRANSPARENT* = 1

   # SetDebugErrorLevel

   SLE_ERROR* = 1

@@ -16215,6 +16217,7 @@ when defined(winUnicode):
   proc GetEnvironmentStrings*(): LPWSTR{.stdcall, dynlib: "kernel32",

       importc: "GetEnvironmentStringsW".}

   proc FreeEnvironmentStrings*(para1: LPWSTR): WINBOOL{.stdcall,

+

       dynlib: "kernel32", importc: "FreeEnvironmentStringsW".}

   proc FormatMessage*(dwFlags: DWORD, lpSource: LPCVOID, dwMessageId: DWORD,

                       dwLanguageId: DWORD, lpBuffer: LPWSTR, nSize: DWORD,

@@ -18715,9 +18718,7 @@ proc ReleaseMutex*(hMutex: HANDLE): WINBOOL{.stdcall, dynlib: "kernel32",
     importc: "ReleaseMutex".}

 proc WaitForSingleObject*(hHandle: HANDLE, dwMilliseconds: DWORD): DWORD{.

     stdcall, dynlib: "kernel32", importc: "WaitForSingleObject".}

-proc WaitForMultipleObjects*(nCount: DWORD, lpHandles: PWOHandleArray,

-                             bWaitAll: WINBOOL, dwMilliseconds: DWORD): DWORD{.

-    stdcall, dynlib: "kernel32", importc: "WaitForMultipleObjects".}

+

 proc Sleep*(dwMilliseconds: DWORD){.stdcall, dynlib: "kernel32",

                                     importc: "Sleep".}

 proc LoadResource*(hModule: HINST, hResInfo: HRSRC): HGLOBAL{.stdcall,

diff --git a/lib/windows/winlean.nim b/lib/windows/winlean.nim
index e8c93d8b1..75f2fc4df 100755
--- a/lib/windows/winlean.nim
+++ b/lib/windows/winlean.nim
@@ -13,6 +13,7 @@
 type
   THandle* = int
   WINBOOL* = int32
+  DWORD* = int32
 
   TSECURITY_ATTRIBUTES* {.final, pure.} = object
     nLength*: int32
@@ -52,7 +53,9 @@ const
   IDLE_PRIORITY_CLASS* = 64'i32
   NORMAL_PRIORITY_CLASS* = 32'i32
   REALTIME_PRIORITY_CLASS* = 256'i32
+  WAIT_OBJECT_0* = 0'i32
   WAIT_TIMEOUT* = 0x00000102'i32
+  WAIT_FAILED* = 0xFFFFFFFF'i32
   INFINITE* = -1'i32
 
   STD_INPUT_HANDLE* = -10'i32
@@ -383,3 +386,14 @@ proc freeaddrinfo*(ai: ptr TAddrInfo) {.
 
 proc inet_ntoa*(i: TInAddr): cstring {.
   stdcall, importc, dynlib: ws2dll.}
+
+const
+  MAXIMUM_WAIT_OBJECTS* = 0x00000040
+
+type
+  TWOHandleArray* = array[0..MAXIMUM_WAIT_OBJECTS - 1, THANDLE]
+  PWOHandleArray* = ptr TWOHandleArray
+
+proc WaitForMultipleObjects*(nCount: DWORD, lpHandles: PWOHandleArray,
+                             bWaitAll: WINBOOL, dwMilliseconds: DWORD): DWORD{.
+    stdcall, dynlib: "kernel32", importc: "WaitForMultipleObjects".}