Copyright | (c) Esa Ilari Vuokko 2006 |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Esa Ilari Vuokko <ei@vuokko.info> |
Stability | provisional |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell2010 |
FFI-bindings to interact with SimpleMAPI
Synopsis
- type ULONG = DWORD
- type LHANDLE = ULONG
- newtype MapiRecipDesc = MapiRecipDesc ()
- type MapiFlag = ULONG
- mAPI_LOGON_UI :: MapiFlag
- mAPI_NEW_SESSION :: MapiFlag
- mAPI_FORCE_DOWNLOAD :: MapiFlag
- mAPI_DIALOG :: MapiFlag
- mAPI_UNREAD_ONLY :: MapiFlag
- mAPI_LONG_MSGID :: MapiFlag
- mAPI_GUARANTEE_FIFO :: MapiFlag
- mAPI_ENVELOPE_ONLY :: MapiFlag
- mAPI_PEEK :: MapiFlag
- mAPI_BODY_AS_FILE :: MapiFlag
- mAPI_SUPPRESS_ATTACH :: MapiFlag
- mAPI_AB_NOMODIFY :: MapiFlag
- mAPI_OLE :: MapiFlag
- mAPI_OLE_STATIC :: MapiFlag
- mAPI_UNREAD :: MapiFlag
- mAPI_RECEIPT_REQUESTED :: MapiFlag
- mAPI_SENT :: MapiFlag
- mapiErrors :: [(ULONG, String)]
- mapiErrorString :: ULONG -> String
- mapiFail :: String -> IO ULONG -> IO ULONG
- mapiFail_ :: String -> IO ULONG -> IO ()
- type MapiLogonType = ULONG -> LPSTR -> LPSTR -> MapiFlag -> ULONG -> Ptr LHANDLE -> IO ULONG
- mkMapiLogon :: FunPtr MapiLogonType -> MapiLogonType
- type MapiLogoffType = LHANDLE -> ULONG -> MapiFlag -> ULONG -> IO ULONG
- mkMapiLogoff :: FunPtr MapiLogoffType -> MapiLogoffType
- type MapiResolveNameType = LHANDLE -> ULONG -> LPSTR -> MapiFlag -> ULONG -> Ptr (Ptr MapiRecipDesc) -> IO ULONG
- mkMapiResolveName :: FunPtr MapiResolveNameType -> MapiResolveNameType
- type MapiFreeBufferType = Ptr () -> IO ULONG
- mkMapiFreeBuffer :: FunPtr MapiFreeBufferType -> MapiFreeBufferType
- type MapiSendMailType = LHANDLE -> ULONG -> Ptr Message -> MapiFlag -> ULONG -> IO ULONG
- mkMapiSendMail :: FunPtr MapiSendMailType -> MapiSendMailType
- data MapiFuncs = MapiFuncs {}
- type MapiLoaded = (MapiFuncs, ForeignPtr ())
- loadMapiFuncs :: String -> HMODULE -> IO MapiFuncs
- loadMapiDll :: String -> IO (MapiFuncs, HMODULE)
- withMapiFuncs :: [String] -> (MapiFuncs -> IO a) -> IO a
- loadMapi :: [String] -> IO MapiLoaded
- c_FreeLibraryFinaliser :: FunPtr (HMODULE -> IO ())
- withMapiLoaded :: MapiLoaded -> (MapiFuncs -> IO a) -> IO a
- maybeHWND :: Maybe HWND -> ULONG
- mapiLogon :: MapiFuncs -> Maybe HWND -> Maybe String -> Maybe String -> MapiFlag -> IO LHANDLE
- mapiLogoff :: MapiFuncs -> LHANDLE -> Maybe HWND -> IO ()
- data RecipientClass
- = RcOriginal
- | RcTo
- | RcCc
- | RcBcc
- rcToULONG :: RecipientClass -> ULONG
- uLONGToRc :: ULONG -> RecipientClass
- data Recipient
- = RecipResolve (Maybe HWND) MapiFlag String (Maybe Recipient)
- | Recip String String
- type Recipients = [(RecipientClass, Recipient)]
- simpleRecip :: String -> Recipient
- withRecipient :: MapiFuncs -> LHANDLE -> RecipientClass -> Recipient -> (Ptr MapiRecipDesc -> IO a) -> IO a
- withRecipients :: MapiFuncs -> LHANDLE -> Recipients -> (Int -> Ptr MapiRecipDesc -> IO a) -> IO a
- data FileTag = FileTag {
- ftTag :: Maybe String
- ftEncoding :: Maybe String
- defFileTag :: FileTag
- withFileTag :: FileTag -> (Ptr FileTag -> IO a) -> IO a
- data Attachment = Attachment {}
- defAttachment :: Attachment
- type Attachments = [Attachment]
- withAttachments :: Attachments -> (Int -> Ptr Attachment -> IO a) -> IO a
- data Message = Message {
- msgSubject :: String
- msgBody :: String
- msgType :: Maybe String
- msgDate :: Maybe String
- msgConversationId :: Maybe String
- msgFlags :: MapiFlag
- msgFrom :: Maybe Recipient
- msgRecips :: Recipients
- msgAttachments :: Attachments
- defMessage :: Message
- withMessage :: MapiFuncs -> LHANDLE -> Message -> (Ptr Message -> IO a) -> IO a
- mapiSendMail :: MapiFuncs -> LHANDLE -> Maybe HWND -> Message -> MapiFlag -> IO ()
- handleIOException :: (IOException -> IO a) -> IO a -> IO a
Documentation
newtype MapiRecipDesc Source #
mapiErrors :: [(ULONG, String)] Source #
mapiErrorString :: ULONG -> String Source #
type MapiLogonType = ULONG -> LPSTR -> LPSTR -> MapiFlag -> ULONG -> Ptr LHANDLE -> IO ULONG Source #
mkMapiLogon :: FunPtr MapiLogonType -> MapiLogonType Source #
mkMapiLogoff :: FunPtr MapiLogoffType -> MapiLogoffType Source #
type MapiResolveNameType = LHANDLE -> ULONG -> LPSTR -> MapiFlag -> ULONG -> Ptr (Ptr MapiRecipDesc) -> IO ULONG Source #
mkMapiResolveName :: FunPtr MapiResolveNameType -> MapiResolveNameType Source #
type MapiFreeBufferType = Ptr () -> IO ULONG Source #
mkMapiFreeBuffer :: FunPtr MapiFreeBufferType -> MapiFreeBufferType Source #
mkMapiSendMail :: FunPtr MapiSendMailType -> MapiSendMailType Source #
type MapiLoaded = (MapiFuncs, ForeignPtr ()) Source #
loadMapiFuncs :: String -> HMODULE -> IO MapiFuncs Source #
loadMapiDll :: String -> IO (MapiFuncs, HMODULE) Source #
withMapiFuncs :: [String] -> (MapiFuncs -> IO a) -> IO a Source #
loadMapi :: [String] -> IO MapiLoaded Source #
c_FreeLibraryFinaliser :: FunPtr (HMODULE -> IO ()) Source #
withMapiLoaded :: MapiLoaded -> (MapiFuncs -> IO a) -> IO a Source #
:: MapiFuncs | Functions loaded from MAPI DLL |
-> Maybe HWND | Parent window, used for modal logon dialog |
-> Maybe String | Session |
-> Maybe String | Password |
-> MapiFlag | None, one or many flags: FORCE_DOWNLOAD, NEW_SESSION, LOGON_UI, PASSWORD_UI |
-> IO LHANDLE |
Create Simple MAPI-session by logon
data RecipientClass Source #
Instances
rcToULONG :: RecipientClass -> ULONG Source #
uLONGToRc :: ULONG -> RecipientClass Source #
RecipResolve (Maybe HWND) MapiFlag String (Maybe Recipient) | |
Recip String String |
type Recipients = [(RecipientClass, Recipient)] Source #
simpleRecip :: String -> Recipient Source #
withRecipient :: MapiFuncs -> LHANDLE -> RecipientClass -> Recipient -> (Ptr MapiRecipDesc -> IO a) -> IO a Source #
withRecipients :: MapiFuncs -> LHANDLE -> Recipients -> (Int -> Ptr MapiRecipDesc -> IO a) -> IO a Source #
FileTag | |
|
defFileTag :: FileTag Source #
withFileTag :: FileTag -> (Ptr FileTag -> IO a) -> IO a Source #
data Attachment Source #
Instances
Show Attachment Source # | |
Defined in System.Win32.SimpleMAPI showsPrec :: Int -> Attachment -> ShowS show :: Attachment -> String showList :: [Attachment] -> ShowS |
type Attachments = [Attachment] Source #
withAttachments :: Attachments -> (Int -> Ptr Attachment -> IO a) -> IO a Source #
Message | |
|
defMessage :: Message Source #
handleIOException :: (IOException -> IO a) -> IO a -> IO a Source #