Copyright | 2013 shelarcy |
---|---|
License | BSD-style |
Maintainer | shelarcy@gmail.com |
Stability | Provisional |
Portability | Non-portable (Win32 API) |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Utilities for primitive marshalling of Windows' C strings.
Synopsis
- type LPSTR = Ptr CChar
- type LPCSTR = LPSTR
- type LPWSTR = Ptr CWchar
- type LPCWSTR = LPWSTR
- type TCHAR = CWchar
- type LPTSTR = Ptr TCHAR
- type LPCTSTR = LPTSTR
- type LPCTSTR_ = LPCTSTR
- withTString :: String -> (LPTSTR -> IO a) -> IO a
- withTStringLen :: String -> ((LPTSTR, Int) -> IO a) -> IO a
- peekTString :: LPCTSTR -> IO String
- peekTStringLen :: (LPCTSTR, Int) -> IO String
- newTString :: String -> IO LPCTSTR
- withTStringBuffer :: Int -> (LPTSTR -> IO a) -> IO a
- withTStringBufferLen :: Int -> ((LPTSTR, Int) -> IO a) -> IO a
Documentation
withTStringBuffer :: Int -> (LPTSTR -> IO a) -> IO a Source #
Marshal a dummy Haskell string into a NUL terminated C wide string using temporary storage.
- the Haskell string is created by length parameter. And the Haskell string contains only NUL characters.
- the memory is freed when the subcomputation terminates (either normally or via an exception), so the pointer to the temporary storage must not be used after this.
withTStringBufferLen :: Int -> ((LPTSTR, Int) -> IO a) -> IO a Source #
Marshal a dummy Haskell string into a C wide string (i.e. wide character array) in temporary storage, with explicit length information.
- the Haskell string is created by length parameter. And the Haskell string contains only NUL characters.
- the memory is freed when the subcomputation terminates (either normally or via an exception), so the pointer to the temporary storage must not be used after this.