{-# LANGUAGE CPP #-} {- | Module : System.Win32.Error Copyright : 2013 shelarcy License : BSD-style Maintainer : shelarcy@gmail.com Stability : Provisional Portability : Non-portable (Win32 API) Error handling for foreign calls to the Win32 API. This module * reorganize Win32 package's error handling functions. * supports to show non-UTF MutiByte error message without using GHC 7.8.1. -} module System.Win32.Error ( failIf, failIf_, failIfNull , failIfZero, failIfZero_, failIfFalse_ , failUnlessSuccess, failUnlessSuccessOr , failIfWithRetry, failIfWithRetry_, failIfFalseWithRetry_ , errorWin, getLastError, failWith , eRROR_INSUFFICIENT_BUFFER , eRROR_MOD_NOT_FOUND , eRROR_PROC_NOT_FOUND ) where #if __GLASGOW_HASKELL__ >= 707 import System.Win32.File ( failIfWithRetry, failIfWithRetry_, failIfFalseWithRetry_ ) import System.Win32.Types #else import System.Win32.Error.MultiByte import System.Win32.Types ( getLastError, ErrCode ) #endif #include failIfZero_ :: (Eq a, Num a) => String -> IO a -> IO () failIfZero_ = failIf_ (== 0) eRROR_INSUFFICIENT_BUFFER :: ErrCode eRROR_INSUFFICIENT_BUFFER = #const ERROR_INSUFFICIENT_BUFFER eRROR_MOD_NOT_FOUND :: ErrCode eRROR_MOD_NOT_FOUND = #const ERROR_MOD_NOT_FOUND eRROR_PROC_NOT_FOUND :: ErrCode eRROR_PROC_NOT_FOUND = #const ERROR_PROC_NOT_FOUND