Win32 Libraries (Win32 package)
Source code
Contents
Index
System.Win32.SimpleMAPI
Portability
portable
Stability
provisional
Maintainer
Esa Ilari Vuokko <ei@vuokko.info>
Description
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_LOGOFF_SHARED
::
MapiFlag
mAPI_LOGOFF_UI
::
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
{
mapifLogon
::
MapiLogonType
mapifLogoff
::
MapiLogoffType
mapifResolveName
::
MapiResolveNameType
mapifFreeBuffer
::
MapiFreeBufferType
mapifSendMail
::
MapiSendMailType
}
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
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
{
attFlag
::
MapiFlag
attPosition
:: (
Maybe
ULONG
)
attPath
::
String
attName
:: (
Maybe
String
)
attTag
:: (
Maybe
FileTag
)
}
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
()
Documentation
type
ULONG
=
DWORD
type
LHANDLE
=
ULONG
newtype
MapiRecipDesc
Constructors
MapiRecipDesc
()
type
MapiFlag
=
ULONG
mAPI_LOGON_UI
::
MapiFlag
mAPI_NEW_SESSION
::
MapiFlag
mAPI_FORCE_DOWNLOAD
::
MapiFlag
mAPI_LOGOFF_SHARED
::
MapiFlag
mAPI_LOGOFF_UI
::
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
Constructors
MapiFuncs
mapifLogon
::
MapiLogonType
mapifLogoff
::
MapiLogoffType
mapifResolveName
::
MapiResolveNameType
mapifFreeBuffer
::
MapiFreeBufferType
mapifSendMail
::
MapiSendMailType
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
withMapiLoaded
::
MapiLoaded
-> (
MapiFuncs
->
IO
a) ->
IO
a
maybeHWND
::
Maybe
HWND
->
ULONG
mapiLogon
::
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
mapiLogoff
::
MapiFuncs
->
LHANDLE
->
Maybe
HWND
->
IO
()
End Simple MAPI-session
data
RecipientClass
Constructors
RcOriginal
RcTo
RcCc
RcBcc
Instances
Enum
RecipientClass
Eq
RecipientClass
Ord
RecipientClass
Show
RecipientClass
rcToULONG
::
RecipientClass
->
ULONG
uLONGToRc
::
ULONG
->
RecipientClass
data
Recipient
Constructors
RecipResolve
(
Maybe
HWND
)
MapiFlag
String
(
Maybe
Recipient
)
Recip
String
String
Instances
Show
Recipient
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
Constructors
FileTag
ftTag
:: (
Maybe
String
)
mime
ftEncoding
:: (
Maybe
String
)
Instances
Show
FileTag
defFileTag
::
FileTag
withFileTag
::
FileTag
-> (
Ptr
FileTag
->
IO
a) ->
IO
a
data
Attachment
Constructors
Attachment
attFlag
::
MapiFlag
attPosition
:: (
Maybe
ULONG
)
attPath
::
String
attName
:: (
Maybe
String
)
attTag
:: (
Maybe
FileTag
)
Instances
Show
Attachment
defAttachment
::
Attachment
type
Attachments
= [
Attachment
]
withAttachments
::
Attachments
-> (
Int
->
Ptr
Attachment
->
IO
a) ->
IO
a
data
Message
Constructors
Message
msgSubject
::
String
msgBody
::
String
msgType
:: (
Maybe
String
)
msgDate
:: (
Maybe
String
)
msgConversationId
:: (
Maybe
String
)
msgFlags
::
MapiFlag
msgFrom
:: (
Maybe
Recipient
)
msgRecips
::
Recipients
msgAttachments
::
Attachments
Instances
Show
Message
defMessage
::
Message
withMessage
::
MapiFuncs
->
LHANDLE
->
Message
-> (
Ptr
Message
->
IO
a) ->
IO
a
mapiSendMail
::
MapiFuncs
->
LHANDLE
->
Maybe
HWND
->
Message
->
MapiFlag
->
IO
()
Produced by
Haddock
version 0.8