summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2012-07-10 01:21:04 +0200
committerAraq <rumpf_a@web.de>2012-07-10 01:21:04 +0200
commit759d3728639f10e83d45e04dcbe7b481a8d25991 (patch)
treed809513376af9774cf47ca05de4f2b1515521f85
parent95faae2c0a0e5e6be8e7502ecf217bf0f325c7c9 (diff)
downloadNim-759d3728639f10e83d45e04dcbe7b481a8d25991.tar.gz
dialogs.nim and osinfo_win.nim compile again
-rwxr-xr-xlib/impure/dialogs.nim12
-rwxr-xr-xlib/impure/osinfo_win.nim18
2 files changed, 18 insertions, 12 deletions
diff --git a/lib/impure/dialogs.nim b/lib/impure/dialogs.nim
index 6956983bb..5bd7bf6f6 100755
--- a/lib/impure/dialogs.nim
+++ b/lib/impure/dialogs.nim
@@ -65,13 +65,13 @@ proc ChooseFileToOpen*(window: PWindow, root: string = ""): string =
     var
       opf: TOPENFILENAME
       buf: array [0..2047, char]
-    opf.lStructSize = sizeof(opf)
+    opf.lStructSize = sizeof(opf).int32
     if root.len > 0:
       opf.lpstrInitialDir = root
     opf.lpstrFilter = "All Files\0*.*\0\0"
     opf.flags = OFN_FILEMUSTEXIST
     opf.lpstrFile = buf
-    opf.nMaxFile = sizeof(buf)
+    opf.nMaxFile = sizeof(buf).int32
     var res = GetOpenFileName(addr(opf))
     if res != 0:
       result = $buf
@@ -100,13 +100,13 @@ proc ChooseFilesToOpen*(window: PWindow, root: string = ""): seq[string] =
     var
       opf: TOPENFILENAME
       buf: array [0..2047*4, char]
-    opf.lStructSize = sizeof(opf)
+    opf.lStructSize = sizeof(opf).int32
     if root.len > 0:
       opf.lpstrInitialDir = root
     opf.lpstrFilter = "All Files\0*.*\0\0"
     opf.flags = OFN_FILEMUSTEXIST or OFN_ALLOWMULTISELECT or OFN_EXPLORER
     opf.lpstrFile = buf
-    opf.nMaxFile = sizeof(buf)
+    opf.nMaxFile = sizeof(buf).int32
     var res = GetOpenFileName(addr(opf))
     result = @[]
     if res != 0:
@@ -161,13 +161,13 @@ proc ChooseFileToSave*(window: PWindow, root: string = ""): string =
     var
       opf: TOPENFILENAME
       buf: array [0..2047, char]
-    opf.lStructSize = sizeof(opf)
+    opf.lStructSize = sizeof(opf).int32
     if root.len > 0:
       opf.lpstrInitialDir = root
     opf.lpstrFilter = "All Files\0*.*\0\0"
     opf.flags = OFN_OVERWRITEPROMPT
     opf.lpstrFile = buf
-    opf.nMaxFile = sizeof(buf)
+    opf.nMaxFile = sizeof(buf).int32
     var res = GetSaveFileName(addr(opf))
     if res != 0:
       result = $buf
diff --git a/lib/impure/osinfo_win.nim b/lib/impure/osinfo_win.nim
index 86e437c92..46af1ddd6 100755
--- a/lib/impure/osinfo_win.nim
+++ b/lib/impure/osinfo_win.nim
@@ -67,7 +67,7 @@ type
     SuiteMask*: int
     ProductType*: int
     
-  TPartitionInfo* = tuple[FreeSpace, TotalSpace: filetime]
+  TPartitionInfo* = tuple[FreeSpace, TotalSpace: Tfiletime]
   
 const
   # SuiteMask - VersionInfo.SuiteMask
@@ -157,7 +157,7 @@ proc GlobalMemoryStatusEx*(lpBuffer: var TMEMORYSTATUSEX){.stdcall, dynlib: "ker
 proc getMemoryInfo*(): TMemoryInfo =
   ## Retrieves memory info
   var statex: TMEMORYSTATUSEX
-  statex.dwLength = sizeof(statex)
+  statex.dwLength = sizeof(statex).int32
 
   GlobalMemoryStatusEx(statex)
   result.MemoryLoad = statex.dwMemoryLoad
@@ -180,7 +180,7 @@ proc GetModuleHandleA*(lpModuleName: cstring): int{.stdcall,
 proc getVersionInfo*(): TVersionInfo =
   ## Retrieves operating system info
   var osvi: TOSVERSIONINFOEX
-  osvi.dwOSVersionInfoSize = sizeof(osvi)
+  osvi.dwOSVersionInfoSize = sizeof(osvi).int32
   discard GetVersionEx(osvi)
   result.majorVersion = osvi.dwMajorVersion
   result.minorVersion = osvi.dwMinorVersion
@@ -367,7 +367,13 @@ proc `$`*(osvi: TVersionInfo): string =
 
 proc getFileSize*(file: string): biggestInt =
   var fileData: TWIN32_FIND_DATA
-  var hFile = FindFirstFileA(file, fileData)
+
+  when useWinUnicode:
+    var aa = allocWideCString(file)
+    var hFile = FindFirstFileW(aa, fileData)
+    dealloc aa
+  else:
+    var hFile = FindFirstFileA(file, fileData)
   
   if hFile == INVALID_HANDLE_VALUE:
     raise newException(EIO, $GetLastError())
@@ -376,12 +382,12 @@ proc getFileSize*(file: string): biggestInt =
 
 proc GetDiskFreeSpaceEx*(lpDirectoryName: cstring, lpFreeBytesAvailableToCaller,
                          lpTotalNumberOfBytes,
-                         lpTotalNumberOfFreeBytes: var filetime): WINBOOL{.
+                         lpTotalNumberOfFreeBytes: var TFiletime): WINBOOL{.
     stdcall, dynlib: "kernel32", importc: "GetDiskFreeSpaceExA".}
 
 proc getPartitionInfo*(partition: string): TPartitionInfo =
   ## Retrieves partition info, for example ``partition`` may be ``"C:\"``
-  var FreeBytes, TotalBytes, TotalFreeBytes: filetime 
+  var FreeBytes, TotalBytes, TotalFreeBytes: TFiletime 
   var res = GetDiskFreeSpaceEx(r"C:\", FreeBytes, TotalBytes, 
                                TotalFreeBytes)
   return (FreeBytes, TotalBytes)