summary refs log tree commit diff stats
path: root/lib/windows
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2014-02-02 10:00:22 +0100
committerAraq <rumpf_a@web.de>2014-02-02 10:00:22 +0100
commit48888b9034017b28ba1cf8c432620e62ed784c0b (patch)
tree7a63d277fa84a9b10646305289f0a784a31cb359 /lib/windows
parent47e4f9698cca68a96fbffa6acc0c6d39a6f6420b (diff)
parent20cf73669df65dc699dd73e2988e8c0ba3bf5b9d (diff)
downloadNim-48888b9034017b28ba1cf8c432620e62ed784c0b.tar.gz
Merge branch 'devel' of https://github.com/Araq/Nimrod into devel
Diffstat (limited to 'lib/windows')
-rw-r--r--lib/windows/winlean.nim18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/windows/winlean.nim b/lib/windows/winlean.nim
index 91c6495ce..3aec2bd52 100644
--- a/lib/windows/winlean.nim
+++ b/lib/windows/winlean.nim
@@ -204,7 +204,22 @@ else:
 
   proc getModuleFileNameA*(handle: THandle, buf: CString, size: int32): int32 {.
     importc: "GetModuleFileNameA", dynlib: "kernel32", stdcall.}
-  
+
+when useWinUnicode:
+  proc createSymbolicLinkW*(lpSymlinkFileName, lpTargetFileName: wideCString,
+                         flags: DWORD): int32 {.
+    importc:"CreateSymbolicLinkW", dynlib: "kernel32", stdcall.}
+  proc createHardLinkW*(lpFileName, lpExistingFileName: wideCString,
+                         security: Pointer=nil): int32 {.
+    importc:"CreateHardLinkW", dynlib: "kernel32", stdcall.}
+else:
+  proc createSymbolicLinkA*(lpSymlinkFileName, lpTargetFileName: cstring,
+                           flags: DWORD): int32 {.
+    importc:"CreateSymbolicLinkA", dynlib: "kernel32", stdcall.}
+  proc createHardLinkA*(lpFileName, lpExistingFileName: cstring,
+                           security: Pointer=nil): int32 {.
+    importc:"CreateHardLinkA", dynlib: "kernel32", stdcall.}
+
 const
   FILE_ATTRIBUTE_ARCHIVE* = 32'i32
   FILE_ATTRIBUTE_COMPRESSED* = 2048'i32
@@ -212,6 +227,7 @@ const
   FILE_ATTRIBUTE_DIRECTORY* = 16'i32
   FILE_ATTRIBUTE_HIDDEN* = 2'i32
   FILE_ATTRIBUTE_READONLY* = 1'i32
+  FILE_ATTRIBUTE_REPARSE_POINT* = 1024'i32
   FILE_ATTRIBUTE_SYSTEM* = 4'i32
   FILE_ATTRIBUTE_TEMPORARY* = 256'i32