Win32-2.14.1.0: A binding to Windows Win32 API.
Copyright(c) Alastair Reid 1997-2003
LicenseBSD-style (see the file libraries/base/LICENSE)
MaintainerEsa Ilari Vuokko <ei@vuokko.info>
Stabilityprovisional
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

System.Win32.WindowsString.File

Description

A collection of FFI declarations for interfacing with Win32.

Synopsis

Documentation

getTempFileName Source #

Arguments

:: WindowsString

directory for the temporary file (must be at most MAX_PATH - 14 characters long)

-> WindowsString

prefix for the temporary file name

-> Maybe UINT

if Nothing, a unique name is generated otherwise a non-zero value is used as the unique part

-> IO (WindowsString, UINT) 

Get a unique temporary filename.

Calls GetTempFileNameW.

createFile_NoRetry :: String -> AccessMode -> ShareMode -> Maybe LPSECURITY_ATTRIBUTES -> CreateMode -> FileAttributeOrFlag -> Maybe HANDLE -> IO HANDLE Source #

Like createFile, but does not use failIfWithRetry. If another process has the same file open, this will fail.

failIfWithRetry :: (a -> Bool) -> String -> IO a -> IO a Source #

like failIf, but retried on sharing violations. This is necessary for many file operations; see https://www.betaarchive.com/wiki/index.php/Microsoft_KB_Archive/316609

failIfWithRetry_ :: (a -> Bool) -> String -> IO a -> IO () Source #

lockFile Source #

Arguments

:: HANDLE

CreateFile handle

-> LockMode

Locking mode

-> DWORD64

Size of region to lock

-> DWORD64

Beginning offset of file to lock

-> IO BOOL

Indicates if locking was successful, if not query getLastError.

Locks a given range in a file handle, To lock an entire file use 0xFFFFFFFFFFFFFFFF for size and 0 for offset.

unlockFile Source #

Arguments

:: HANDLE

CreateFile handle

-> DWORD64

Size of region to unlock

-> DWORD64

Beginning offset of file to unlock

-> IO BOOL

Indicates if unlocking was successful, if not query getLastError.

Unlocks a given range in a file handle, To unlock an entire file use 0xFFFFFFFFFFFFFFFF for size and 0 for offset.