Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
08050758
Commit
08050758
authored
Nov 02, 2007
by
Rob Shearman
Committed by
Alexandre Julliard
Nov 05, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
include: Add imnact.idl and imnxport.idl.
parent
a54a990b
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1002 additions
and
0 deletions
+1002
-0
.gitignore
.gitignore
+2
-0
Makefile.in
include/Makefile.in
+2
-0
imnact.idl
include/imnact.idl
+299
-0
imnxport.idl
include/imnxport.idl
+699
-0
No files found.
.gitignore
View file @
08050758
...
...
@@ -577,6 +577,8 @@ include/hlink.h
include/htiframe.h
include/iads.h
include/icftypes.h
include/imnact.h
include/imnxport.h
include/indexsrv.h
include/mediaobj.h
include/mimeinfo.h
...
...
include/Makefile.in
View file @
08050758
...
...
@@ -24,6 +24,8 @@ IDL_H_SRCS = \
htiframe.idl
\
iads.idl
\
icftypes.idl
\
imnact.idl
\
imnxport.idl
\
indexsrv.idl
\
mediaobj.idl
\
mimeinfo.idl
\
...
...
include/imnact.idl
0 → 100644
View file @
08050758
/*
*
Copyright
2006
Robert
Shearman
for
CodeWeavers
*
*
This
library
is
free
software
; you can redistribute it and/or
*
modify
it
under
the
terms
of
the
GNU
Lesser
General
Public
*
License
as
published
by
the
Free
Software
Foundation
; either
*
version
2.1
of
the
License
,
or
(
at
your
option
)
any
later
version
.
*
*
This
library
is
distributed
in
the
hope
that
it
will
be
useful
,
*
but
WITHOUT
ANY
WARRANTY
; without even the implied warranty of
*
MERCHANTABILITY
or
FITNESS
FOR
A
PARTICULAR
PURPOSE
.
See
the
GNU
*
Lesser
General
Public
License
for
more
details
.
*
*
You
should
have
received
a
copy
of
the
GNU
Lesser
General
Public
*
License
along
with
this
library
; if not, write to the Free Software
*
Foundation
,
Inc
.
,
51
Franklin
St
,
Fifth
Floor
,
Boston
,
MA
02110
-
1301
,
USA
*/
import
"objidl.idl"
;
interface
IImnAccount
;
cpp_quote
(
"#ifndef HR_E"
)
cpp_quote
(
"#define HR_E(n) MAKE_SCODE(SEVERITY_ERROR, FACILITY_INTERNET, n)"
)
cpp_quote
(
"#endif"
)
cpp_quote
(
"#ifndef HR_S"
)
cpp_quote
(
"#define HR_S(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_INTERNET, n)"
)
cpp_quote
(
"#endif"
)
typedef
enum
tagSMTPAUTHTYPE
{
SMTP_AUTH_NONE
,
SMTP_AUTH_SICILY
,
SMTP_AUTH_USE_POP3ORIMAP_SETTINGS
,
SMTP_AUTH_USE_SMTP_SETTINGS
,
}
SMTPAUTHTYPE
;
const
SHORT
CCHMAX_ORG_NAME
=
256
;
const
SHORT
CCHMAX_DISPLAY_NAME
=
256
;
const
SHORT
CCHMAX_ACCOUNT_NAME
=
256
;
const
SHORT
CCHMAX_SERVER_NAME
=
256
;
const
SHORT
CCHMAX_PASSWORD
=
256
;
const
SHORT
CCHMAX_USERNAME
=
256
;
const
SHORT
CCHMAX_EMAIL_ADDRESS
=
256
;
const
SHORT
CCHMAX_CONNECTOID
=
256
;
const
SHORT
CCHMAX_SEARCH_BASE
=
256
;
const
SHORT
CCHMAX_ROOT_FOLDER
=
256
;
const
SHORT
CCHMAX_SIGNATURE
=
16
;
const
SHORT
CCHMAX_SERVICE
=
256
;
[
object
,
uuid
(
0
A06BD31
-
166
F
-
11
D0
-
81B9
-
00
C04FD85AB4
),
pointer_default
(
unique
)
]
interface
IImnAdviseAccount
:
IUnknown
{
typedef
enum
{
ACCT_NEWS
,
ACCT_MAIL
,
ACCT_DIR_SERV
,
ACCT_LAST
}
ACCTTYPE
;
typedef
struct
tagAccountContext
{
ACCTTYPE
AcctType
;
LPSTR
pszAccountID
;
LPSTR
pszOldName
;
DWORD
dwServerType
;
}
ACTX
;
HRESULT
AdviseAccount
(
[
in
]
DWORD
dwAdviseType
,
[
in
]
ACTX
*
pAcctCtx
)
;
}
[
object
,
uuid
(
8
D0AED11
-
1638
-
11
D0
-
81B9
-
00
C04FD85AB4
),
pointer_default
(
unique
)
]
interface
IImnAdviseMigrateServer
:
IUnknown
{
HRESULT
MigrateServer
(
[
in
]
DWORD
dwSrvType
,
[
in
]
IImnAccount
*
pAccount
)
;
}
[
object
,
uuid
(
FD465483
-
1384
-
11
D0
-
ABBD
-
0020
AFDFD10A
),
pointer_default
(
unique
)
]
interface
IImnEnumAccounts
:
IUnknown
{
HRESULT
GetCount
(
[
out
]
ULONG
*
pcItems
)
;
HRESULT
SortByAccountName
()
;
HRESULT
GetNext
(
[
out
]
IImnAccount
**
ppAccount
)
;
HRESULT
Reset
()
;
}
[
object
,
uuid
(
FD465481
-
1384
-
11
D0
-
ABBD
-
0020
AFDFD10A
),
pointer_default
(
unique
)
]
interface
IImnAccountManager
:
IUnknown
{
typedef
struct
tagACCTLISTINFO
{
DWORD
cbSize
;
ACCTTYPE
AcctTypeInit
;
DWORD
dwAcctFlags
;
DWORD
dwFlags
;
}
ACCTLISTINFO
;
HRESULT
Init
(
[
in
]
IImnAdviseMigrateServer
*
pAdviseMigrateServer
)
;
HRESULT
CreateAccountObject
(
[
in
]
ACCTTYPE
AcctType
,
[
out
]
IImnAccount
**
ppAccount
)
;
HRESULT
Enumerate
(
[
in
]
DWORD
dwSrvTypes
,
[
out
]
IImnEnumAccounts
**
ppEnumAccounts
)
;
HRESULT
GetAccountCount
(
[
in
]
ACCTTYPE
AcctType
,
[
out
]
ULONG
*
pcServers
)
;
HRESULT
FindAccount
(
[
in
]
DWORD
dwPropTag
,
[
in
]
LPCSTR
pszSearchData
,
[
out
]
IImnAccount
**
ppAccount
)
;
HRESULT
GetDefaultAccountName
(
[
in
]
ACCTTYPE
AcctType
,
[
in
,
ref
]
LPSTR
pszAccount
,
[
in
]
ULONG
cchMax
)
;
HRESULT
ProcessNotification
(
[
in
]
UINT
uMsg
,
[
in
]
WPARAM
wParam
,
[
in
]
LPARAM
lParam
)
;
HRESULT
ValidateDefaultSendAccount
()
;
HRESULT
AccountListDialog
(
[
in
]
HWND
hwnd
,
[
in
]
ACCTLISTINFO
*
pinfo
)
;
HRESULT
Advise
(
[
in
]
IImnAdviseAccount
*
pAdviseAccount
,
[
out
]
DWORD
*
pdwConnection
)
;
HRESULT
Unadvise
(
[
in
]
DWORD
dwConnection
)
;
HRESULT
GetUniqueAccountName
(
[
in
]
LPSTR
szName
,
[
in
]
UINT
cch
)
;
HRESULT
InitEx
(
[
in
]
IImnAdviseMigrateServer
*
pAdviseMigrateServer
,
[
in
]
DWORD
dwFlags
)
;
}
[
object
,
uuid
(
C43DFC6F
-
62B
B
-
11
D2
-
A727
-
00
C04F79E7C8
),
pointer_default
(
unique
)
]
interface
IImnAccountManager2
:
IImnAccountManager
{
HRESULT
InitUser
(
[
in
]
IImnAdviseMigrateServer
*
pAdviseMigrateServer
,
[
in
]
REFGUID
rguidID
,
[
in
]
DWORD
dwFlags
)
;
HRESULT
GetIncompleteAccount
(
[
in
]
ACCTTYPE
AcctType
,
[
in
,
ref
]
LPSTR
pszAccountId
,
[
in
]
ULONG
cchMax
)
;
HRESULT
SetIncompleteAccount
(
[
in
]
ACCTTYPE
AcctType
,
[
in
]
LPCSTR
pszAccountId
)
;
}
[
object
,
uuid
(
FD465484
-
1384
-
11
D0
-
ABBD
-
0020
AFDFD10A
),
pointer_default
(
unique
)
]
interface
IPropertyContainer
:
IUnknown
{
typedef
enum
{
TYPE_ERROR
=
1000
,
TYPE_DWORD
,
TYPE_LONG
,
TYPE_WORD
,
TYPE_SHORT
,
TYPE_BYTE
,
TYPE_CHAR
,
TYPE_FILETIME
,
TYPE_STRING
,
TYPE_BINARY
,
TYPE_FLAGS
,
TYPE_STREAM
,
TYPE_WSTRING
,
TYPE_BOOL
,
TYPE_PASS
,
TYPE_LAST
}
PROPTYPE
;
cpp_quote
(
"#ifdef WINE_NO_UNICODE_MACROS"
)
cpp_quote
(
"#undef GetProp"
)
cpp_quote
(
"#undef SetProp"
)
cpp_quote
(
"#endif"
)
HRESULT
GetProp
(
[
in
]
DWORD
dwPropTag
,
[
in
,
size_is
(
*
pcb
),
ref
]
BYTE
*
pb
,
[
in
]
ULONG
*
pcb
)
;
HRESULT
GetPropDw
(
[
in
]
DWORD
dwPropTag
,
[
out
]
DWORD
*
pdw
)
;
HRESULT
GetPropSz
(
[
in
]
DWORD
dwPropTag
,
[
in
,
ref
]
LPSTR
psz
,
[
in
]
ULONG
cchMax
)
;
HRESULT
SetProp
(
[
in
]
DWORD
dwPropTag
,
[
in
,
size_is
(
cb
)
]
BYTE
*
pb
,
[
in
]
ULONG
cb
)
;
HRESULT
SetPropDw
(
[
in
]
DWORD
dwPropTag
,
[
in
]
DWORD
dw
)
;
HRESULT
SetPropSz
(
[
in
]
DWORD
dwPropTag
,
[
in
]
LPSTR
psz
)
;
}
[
object
,
uuid
(
FD465482
-
1384
-
11
D0
-
ABBD
-
0020
AFDFD10A
),
pointer_default
(
unique
)
]
interface
IImnAccount
:
IPropertyContainer
{
HRESULT
Exist
()
;
HRESULT
SetAsDefault
()
;
HRESULT
Delete
()
;
HRESULT
SaveChanges
()
;
HRESULT
GetAccountType
(
[
out
]
ACCTTYPE
*
pAcctType
)
;
HRESULT
GetServerTypes
(
[
out
]
DWORD
*
pdwSrvTypes
)
;
HRESULT
ShowProperties
(
[
in
]
HWND
hwnd
,
[
in
]
DWORD
dwFlags
)
;
HRESULT
ValidateProperty
(
[
in
]
DWORD
dwPropTag
,
[
in
,
size_is
(
cb
)
]
BYTE
*
pb
,
[
in
]
ULONG
cb
)
;
HRESULT
DoWizard
(
[
in
]
HWND
hwnd
,
[
in
]
DWORD
dwFlags
)
;
HRESULT
DoImportWizard
(
[
in
]
HWND
hwnd
,
[
in
]
CLSID
clsid
,
[
in
]
DWORD
dwFlags
)
;
}
cpp_quote
(
"HRESULT WINAPI HrCreateAccountManager(IImnAccountManager **ppAccountManager);"
)
cpp_quote
(
"HRESULT WINAPI ValidEmailAddress(LPSTR lpAddress);"
)
include/imnxport.idl
0 → 100644
View file @
08050758
/*
*
Copyright
2006
Robert
Shearman
for
CodeWeavers
*
*
This
library
is
free
software
; you can redistribute it and/or
*
modify
it
under
the
terms
of
the
GNU
Lesser
General
Public
*
License
as
published
by
the
Free
Software
Foundation
; either
*
version
2.1
of
the
License
,
or
(
at
your
option
)
any
later
version
.
*
*
This
library
is
distributed
in
the
hope
that
it
will
be
useful
,
*
but
WITHOUT
ANY
WARRANTY
; without even the implied warranty of
*
MERCHANTABILITY
or
FITNESS
FOR
A
PARTICULAR
PURPOSE
.
See
the
GNU
*
Lesser
General
Public
License
for
more
details
.
*
*
You
should
have
received
a
copy
of
the
GNU
Lesser
General
Public
*
License
along
with
this
library
; if not, write to the Free Software
*
Foundation
,
Inc
.
,
51
Franklin
St
,
Fifth
Floor
,
Boston
,
MA
02110
-
1301
,
USA
*/
import
"imnact.idl"
;
interface
IInternetTransport
;
interface
ISMTPTransport
;
interface
IPOP3Transport
;
/*
CLSIDs
*/
cpp_quote
(
"DEFINE_GUID(CLSID_IInternetMessageUrl, 0xca30cc91, 0xb1b3, 0x11d0, 0x85, 0xd0, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);"
)
cpp_quote
(
"DEFINE_GUID(CLSID_ISMTPTransport, 0xfd853ce6, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);"
)
cpp_quote
(
"DEFINE_GUID(CLSID_IPOP3Transport, 0xfd853ce7, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);"
)
cpp_quote
(
"DEFINE_GUID(CLSID_INNTPTransport, 0xfd853ce8, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);"
)
cpp_quote
(
"DEFINE_GUID(CLSID_IRASTransport, 0xfd853ce9, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);"
)
cpp_quote
(
"DEFINE_GUID(CLSID_IRangeList, 0xfd853cea, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);"
)
cpp_quote
(
"DEFINE_GUID(CLSID_IIMAPTransport, 0xfd853ceb, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);"
)
cpp_quote
(
"DEFINE_GUID(CLSID_IHTTPMailTransport, 0x5a580c11, 0xe5eb, 0x11d1, 0xa8, 0x6e, 0x00, 0x00, 0xf8, 0x08, 0x4f, 0x96);"
)
cpp_quote
(
"DEFINE_GUID(CLSID_IPropFindRequest, 0xbb847b8a, 0x054a, 0x11d2, 0xa8, 0x94, 0x00, 0x00, 0xf8, 0x08, 0x4f, 0x96);"
)
cpp_quote
(
"DEFINE_GUID(CLSID_IPropPatchRequest, 0xea678830, 0x235d, 0x11d2, 0xa8, 0xb6, 0x00, 0x00, 0xf8, 0x08, 0x4f, 0x96);"
)
/*
Error
Codes
*/
cpp_quote
(
"#ifndef HR_E"
)
cpp_quote
(
"#define HR_E(n) MAKE_SCODE(SEVERITY_ERROR, FACILITY_INTERNET, n)"
)
cpp_quote
(
"#endif"
)
cpp_quote
(
"#ifndef HR_S"
)
cpp_quote
(
"#define HR_S(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_INTERNET, n)"
)
cpp_quote
(
"#endif"
)
/*
General
Error
Codes
*/
cpp_quote
(
"#define IXP_E_LOAD_SICILY_FAILED HR_E(0xCC00)"
)
cpp_quote
(
"#define IXP_E_INVALID_CERT_CN HR_E(0xCC01)"
)
cpp_quote
(
"#define IXP_E_INVALID_CERT_DATE HR_E(0xCC02)"
)
cpp_quote
(
"#define IXP_E_ALREADY_CONNECTED HR_E(0xCC03)"
)
cpp_quote
(
"#define IXP_E_CONN HR_E(0xCC04)"
)
cpp_quote
(
"#define IXP_E_NOT_CONNECTED HR_E(0xCC05)"
)
cpp_quote
(
"#define IXP_E_CONN_SEND HR_E(0xCC06)"
)
cpp_quote
(
"#define IXP_E_WOULD_BLOCK HR_E(0xCC07)"
)
cpp_quote
(
"#define IXP_E_INVALID_STATE HR_E(0xCC08)"
)
cpp_quote
(
"#define IXP_E_CONN_RECV HR_E(0xCC09)"
)
cpp_quote
(
"#define IXP_E_INCOMPLETE HR_E(0xCC0A)"
)
cpp_quote
(
"#define IXP_E_BUSY HR_E(0xCC0B)"
)
cpp_quote
(
"#define IXP_E_NOT_INIT HR_E(0xCC0C)"
)
cpp_quote
(
"#define IXP_E_CANT_FIND_HOST HR_E(0xCC0D)"
)
cpp_quote
(
"#define IXP_E_FAILED_TO_CONNECT HR_E(0xCC0E)"
)
cpp_quote
(
"#define IXP_E_CONNECTION_DROPPED HR_E(0xCC0F)"
)
cpp_quote
(
"#define IXP_E_INVALID_ADDRESS HR_E(0xCC10)"
)
cpp_quote
(
"#define IXP_E_INVALID_ADDRESS_LIST HR_E(0xCC11)"
)
cpp_quote
(
"#define IXP_E_SOCKET_READ_ERROR HR_E(0xCC12)"
)
cpp_quote
(
"#define IXP_E_SOCKET_WRITE_ERROR HR_E(0xCC13)"
)
cpp_quote
(
"#define IXP_E_SCOKET_INIT_ERROR HR_E(0xCC14)"
)
cpp_quote
(
"#define IXP_E_SOCKET_CONNECT_ERROR HR_E(0xCC15)"
)
cpp_quote
(
"#define IXP_E_INVALID_ACCOUNT HR_E(0xCC16)"
)
cpp_quote
(
"#define IXP_E_USER_CANCEL HR_E(0xCC17)"
)
cpp_quote
(
"#define IXP_E_SICILY_LOGON_FAILED HR_E(0xCC18)"
)
cpp_quote
(
"#define IXP_E_TIMEOUT HR_E(0xCC19)"
)
cpp_quote
(
"#define IXP_E_SECURE_CONNECT_FAILED HR_E(0xCC1A)"
)
/*
SMTP
Failure
Statuses
*/
cpp_quote
(
"#define IXP_E_SMTP_RESPONSE_ERROR HR_E(0xCC60)"
)
cpp_quote
(
"#define IXP_E_SMTP_UNKNOWN_RESPONSE_CODE HR_E(0xCC61)"
)
cpp_quote
(
"#define IXP_E_SMTP_500_SYNTAX_ERROR HR_E(0xCC62)"
)
cpp_quote
(
"#define IXP_E_SMTP_501_PARAM_SYNTAX HR_E(0xCC63)"
)
cpp_quote
(
"#define IXP_E_SMTP_502_COMMAND_NOTIMPL HR_E(0xCC64)"
)
cpp_quote
(
"#define IXP_E_SMTP_503_COMMAND_SEQ HR_E(0xCC65)"
)
cpp_quote
(
"#define IXP_E_SMTP_504_COMMAND_PARAM_NOTIMPL HR_E(0xCC66)"
)
cpp_quote
(
"#define IXP_E_SMTP_421_NOT_AVAILABLE HR_E(0xCC67)"
)
cpp_quote
(
"#define IXP_E_SMTP_450_MAILBOX_BUSY HR_E(0xCC68)"
)
cpp_quote
(
"#define IXP_E_SMTP_550_MAILBOX_NOT_FOUND HR_E(0xCC69)"
)
cpp_quote
(
"#define IXP_E_SMTP_451_ERROR_PROCESSING HR_E(0xCC6A)"
)
cpp_quote
(
"#define IXP_E_SMTP_551_USER_NOT_LOCAL HR_E(0xCC6B)"
)
cpp_quote
(
"#define IXP_E_SMTP_452_NO_SYSTEM_STORAGE HR_E(0xCC6C)"
)
cpp_quote
(
"#define IXP_E_SMTP_552_STORAGE_OVERFLOW HR_E(0xCC6D)"
)
cpp_quote
(
"#define IXP_E_SMTP_553_MAILBOX_NAME_SYNTAX HR_E(0xCC6E)"
)
cpp_quote
(
"#define IXP_E_SMTP_554_TRANSACT_FAILED HR_E(0xCC6F)"
)
/*
SMTP
Success
Statuses
*/
cpp_quote
(
"#define IXP_E_SMTP_211_SYSTEM_STATUS HR_S(0xCC70)"
)
cpp_quote
(
"#define IXP_E_SMTP_214_HELP_MESSAGE HR_S(0xCC71)"
)
cpp_quote
(
"#define IXP_E_SMTP_220_READY HR_S(0xCC72)"
)
cpp_quote
(
"#define IXP_E_SMTP_221_CLOSING HR_S(0xCC73)"
)
cpp_quote
(
"#define IXP_E_SMTP_250_MAIL_ACTION_OKAY HR_S(0xCC74)"
)
cpp_quote
(
"#define IXP_E_SMTP_251_FORWARDING_MAIL HR_S(0xCC75)"
)
cpp_quote
(
"#define IXP_E_SMTP_354_START_MAIL_INPUT HR_S(0xCC76)"
)
cpp_quote
(
"#define IXP_E_SMTP_CONTINUE HR_S(0xCC77)"
)
cpp_quote
(
"#define IXP_E_SMTP_334_AUTH_READY_RESPONSE HR_S(0xCC78)"
)
cpp_quote
(
"#define IXP_E_SMTP_245_AUTH_SUCCESS HR_S(0xCC79)"
)
/*
More
SMTP
Failure
Statuses
*/
cpp_quote
(
"#define IXP_E_SMTP_REJECTED_SENDER HR_E(0xCC78)"
)
cpp_quote
(
"#define IXP_E_SMTP_REJECTED_RECIPIENTS HR_E(0xCC79)"
)
cpp_quote
(
"#define IXP_E_SMTP_NO_SENDER HR_E(0xCC7A)"
)
cpp_quote
(
"#define IXP_E_SMTP_NO_RECIPIENTS HR_E(0xCC7B)"
)
cpp_quote
(
"#define IXP_E_SMTP_530_STARTTLS_REQUIRED HR_E(0xCC7C)"
)
cpp_quote
(
"#define IXP_E_SMTP_NO_STARTTLS_SUPPORT HR_E(0xCC7D)"
)
cpp_quote
(
"#define IXP_E_SMTP_NO_DSN_SUPPORT HR_E(0xCC7E)"
)
cpp_quote
(
"#define IXP_E_SMTP_454_STARTTLS_FAILED HR_E(0xCC7F)"
)
const
SHORT
CCHMAX_DOMAIN
=
256
;
const
SHORT
CCHMAX_PHONE_NUMBER
=
128
;
const
DWORD
DEFAULT_IMAP_PORT
=
143
;
const
DWORD
DEFAULT_POP3_PORT
=
110
;
const
DWORD
DEFAULT_SMTP_PORT
=
25
;
const
DWORD
DEFAULT_NNTP_PORT
=
119
;
typedef
enum
tagINETADDRTYPE
{
ADDR_TO
,
ADDR_FROM
,
ADDR_DSN_NEVER
=
16
,
ADDR_DSN_SUCCESS
=
32
,
ADDR_DSN_FAILURE
=
64
,
ADDR_DSN_DELAY
=
128
}
INETADDRTYPE
;
const
DWORD
ADDR_TOFROM_MASK
=
0
x1
;
const
DWORD
ADDR_DSN_MASK
=
0
xf0
;
typedef
enum
tagDSNRET
{
DSNRET_DEFAULT
,
DSNRET_HDRS
,
DSNRET_FULL
,
}
DSNRET
;
typedef
struct
tagINETADDR
{
INETADDRTYPE
addrtype
;
CHAR
szEmail
[
CCHMAX_EMAIL_ADDRESS
]
;
}
INETADDR
,
*
LPINETADDR
;
typedef
struct
tagINETADDRLIST
{
ULONG
cAddress
;
LPINETADDR
prgAddress
;
}
INETADDRLIST
,
*
LPINETADDRLIST
;
typedef
enum
tagRASCONNTYPE
{
RAS_CONNECT_LAN
,
RAS_CONNECT_MANUAL
,
RAS_CONNECT_RAS
}
RASCONNTYPE
;
typedef
enum
tagHTTPMAILPROPTYPE
{
HTTPMAIL_PROP_INVALID
,
HTTPMAIL_PROP_ADBAR
,
HTTPMAIL_PROP_CONTACTS
,
HTTPMAIL_PROP_INBOX
,
HTTPMAIL_PROP_OUTBOX
,
HTTPMAIL_PROP_SENDMSG
,
HTTPMAIL_PROP_SENTITEMS
,
HTTPMAIL_PROP_DELETEDITEMS
,
HTTPMAIL_PROP_DRAFTS
,
HTTPMAIL_PROP_MSGFOLDERROOT
,
HTTPMAIL_PROP_SIG
,
HTTPMAIL_PROP_LAST
}
HTTPMAILPROPTYPE
;
typedef
enum
tagHTTPMAILSPECIALFOLDER
{
HTTPMAIL_SF_NONE
,
HTTPMAIL_SF_UNRECOGNIZED
,
HTTPMAIL_SF_INBOX
,
HTTPMAIL_SF_DELETEDITEMS
,
HTTPMAIL_SF_DRAFTS
,
HTTPMAIL_SF_OUTBOX
,
HTTPMAIL_SF_SENTITEMS
,
HTTPMAIL_SF_CONTACTS
,
HTTPMAIL_SF_CALENDAR
,
HTTPMAIL_SF_MSNPROMO
,
HTTPMAIL_SF_LAST
}
HTTPMAILSPECIALFOLDER
;
typedef
enum
tagHTTPMAILCONTACTTYPE
{
HTTPMAIL_CT_CONTACT
,
HTTPMAIL_CT_GROUP
,
HTTPMAIL_CT_LAST
}
HTTPMAILCONTACTTYPE
;
const
DWORD
DAVNAMESPACE_UNKNOWN
=
0
xFFFFFFFF
;
const
DWORD
DAVNAMESPACE_DAV
=
0
;
const
DWORD
DAVNAMESPACE_HOTMAIL
=
1
;
const
DWORD
DAVNAMESPACE_HTTPMAIL
=
2
;
const
DWORD
DAVNAMESPACE_MAIL
=
3
;
const
DWORD
DAVNAMESPACE_CONTACTS
=
4
;
cpp_quote
(
"#define ISF_SMTP_USEIPFORHELO 0x01"
)
cpp_quote
(
"#define ISF_ALWAYSPROMPTFORPASSWORD 0x02"
)
/*
for
SMTP
-
send
EHLO
and
use
STARTTLS
if
available
:
*/
cpp_quote
(
"#define ISF_SSLONSAMEPORT 0x04"
)
cpp_quote
(
"#define ISF_QUERYDSNSUPPORT 0x08"
)
/*
for
SMTP
-
send
EHLO
and
use
AUTH
if
available
:
*/
cpp_quote
(
"#define ISF_QUERYAUTHSUPPORT 0x10"
)
typedef
struct
INETSERVER
{
CHAR
szAccount
[
CCHMAX_ACCOUNT_NAME
]
;
CHAR
szUserName
[
CCHMAX_USERNAME
]
;
CHAR
szPassword
[
CCHMAX_PASSWORD
]
;
CHAR
szServerName
[
CCHMAX_SERVER_NAME
]
;
CHAR
szConnectoid
[
CCHMAX_CONNECTOID
]
;
RASCONNTYPE
rasconntype
;
DWORD
dwPort
;
BOOL
fSSL
;
BOOL
fTrySicily
;
DWORD
dwTimeout
;
DWORD
dwFlags
;
}
INETSERVER
,
*
LPINETSERVER
;
typedef
enum
tagIXPTYPE
{
IXP_NNTP
,
IXP_SMTP
,
IXP_POP3
,
IXP_IMAP
,
IXP_RAS
,
IXP_HTTPMail
}
IXPTYPE
;
typedef
enum
tagIXPSTATUS
{
IXP_FINDINGHOST
,
IXP_CONNECTING
,
IXP_SECURING
,
IXP_CONNECTED
,
IXP_AUTHORIZING
,
IXP_AUTHRETRY
,
IXP_AUTHORIZED
,
IXP_DISCONNECTING
,
IXP_DISCONNECTED
,
IXP_LAST
}
IXPSTATUS
;
const
DWORD
DEPTH_INFINITY
=
0
xFFFFFFFE
;
typedef
DWORD
MEMBERINFOFLAGS
;
const
MEMBERINFOFLAGS
HTTP_MEMBERINFO_COMMONPROPS
=
0
x0
;
const
MEMBERINFOFLAGS
HTTP_MEMBERINFO_FOLDERPROPS
=
0
x1
;
const
MEMBERINFOFLAGS
HTTP_MEMBERINFO_MESSAGEPROPS
=
0
x2
;
const
MEMBERINFOFLAGS
HTTP_MEMBERINFO_ALLPROPS
=
HTTP_MEMBERINFO_FOLDERPROPS
|
HTTP_MEMBERINFO_MESSAGEPROPS
;
typedef
DWORD
IMAP_MSGFLAGS
;
const
IMAP_MSGFLAGS
IMAP_MSG_NOFLAGS
=
0
x00
;
const
IMAP_MSGFLAGS
IMAP_MSG_ANSWERED
=
0
x01
;
const
IMAP_MSGFLAGS
IMAP_MSG_FLAGGED
=
0
x02
;
const
IMAP_MSGFLAGS
IMAP_MSG_DELETED
=
0
x04
;
const
IMAP_MSGFLAGS
IMAP_MSG_SEEN
=
0
x08
;
const
IMAP_MSGFLAGS
IMAP_MSG_DRAFT
=
0
x10
;
const
IMAP_MSGFLAGS
IMAP_MSG_ALLFLAGS
=
0
x1f
;
[
object
,
uuid
(
CA30F3FF
-
C9AC
-
11
D1
-
9
A3A
-
00
C04FA309D4
),
local
]
interface
ITransportCallbackService
:
IUnknown
{
HRESULT
GetParentWindow
(
[
in
]
DWORD
dwReserved
,
[
out
]
HWND
*
phwndParent
)
;
HRESULT
GetAccount
(
[
out
]
LPDWORD
pdwServerType
,
[
out
]
IImnAccount
**
ppAccount
)
;
}
[
object
,
uuid
(
0
DF2C7E1
-
3435
-
11
D0
-
81
D0
-
00
C04FD85AB4
),
local
]
interface
ITransportCallback
:
IUnknown
{
typedef
struct
tagIXPRESULT
{
HRESULT
hrResult
;
LPSTR
pszResponse
;
UINT
uiServerError
;
HRESULT
hrServerError
;
DWORD
dwSocketError
;
LPSTR
pszProblem
;
}
IXPRESULT
,
*
LPIXPRESULT
;
typedef
enum
tagCMDTYPE
{
CMD_SEND
,
CMD_RESP
}
CMDTYPE
;
HRESULT
OnTimeout
(
[
in
,
out
]
DWORD
*
pdwTimeout
,
[
in
]
IInternetTransport
*
pTransport
)
;
HRESULT
OnLogonPrompt
(
[
in
,
out
]
LPINETSERVER
pInetServer
,
[
in
]
IInternetTransport
*
pTransport
)
;
INT
OnPrompt
(
[
in
]
HRESULT
hrError
,
[
in
]
LPCSTR
pszText
,
[
in
]
LPCSTR
pszCaption
,
[
in
]
UINT
uType
,
[
in
]
IInternetTransport
*
pTransport
)
;
HRESULT
OnStatus
(
[
in
]
IXPSTATUS
ixpstatus
,
[
in
]
IInternetTransport
*
pTransport
)
;
HRESULT
OnError
(
[
in
]
IXPSTATUS
ixpstatus
,
[
in
]
LPIXPRESULT
pResult
,
[
in
]
IInternetTransport
*
pTransport
)
;
HRESULT
OnCommand
(
[
in
]
CMDTYPE
cmdtype
,
[
in
]
LPSTR
pszLine
,
[
in
]
HRESULT
hrResponse
,
[
in
]
IInternetTransport
*
pTransport
)
;
}
[
object
,
uuid
(
1
F636C01
-364E-11
D0
-
81
D3
-
00
C04FD85AB4
),
local
]
interface
IInternetTransport
:
IUnknown
{
const
boolean
iitAUTHENTICATE
=
TRUE
;
const
boolean
iitDONT_AUTHENTICATe
=
FALSE
;
const
boolean
iitENABLE_ONCOMMAND
=
TRUE
;
const
boolean
iitDISABLE_ONCOMMAND
=
FALSE
;
typedef
enum
tagIXPISSTATE
{
IXP_IS_CONNECTED
,
IXP_IS_BUSY
,
IXP_IS_READY
,
IXP_IS_AUTHENTICATED
}
IXPISSTATE
;
HRESULT
GetServerInfo
(
[
in
,
out
]
LPINETSERVER
pInetServer
)
;
IXPTYPE
GetIXPType
()
;
HRESULT
IsState
(
[
in
]
IXPISSTATE
isstate
)
;
HRESULT
InetServerFromAccount
(
[
in
]
IImnAccount
*
pAccount
,
[
in
,
out
]
LPINETSERVER
pInetServer
)
;
HRESULT
Connect
(
[
in
]
LPINETSERVER
pInetServer
,
[
in
]
boolean
fAuthenticate
,
[
in
]
boolean
fCommandLogging
)
;
HRESULT
HandsOffCallback
()
;
HRESULT
Disconnect
()
;
HRESULT
DropConnection
()
;
HRESULT
GetStatus
(
[
out
]
IXPSTATUS
*
pCurrentStatus
)
;
}
[
object
,
uuid
(
1
F636C02
-364E-11
D0
-
81
D3
-
00
C04FD85AB4
),
local
]
interface
ISMTPCallback
:
ITransportCallback
{
typedef
enum
tagSMTPCOMMAND
{
SMTP_NONE
,
SMTP_BANNER
,
SMTP_CONNECTED
,
SMTP_SEND_MESSAGE
,
SMTP_AUTH
,
SMTP_EHLO
,
SMTP_HELO
,
SMTP_MAIL
,
SMTP_RCPT
,
SMTP_RSET
,
SMTP_QUIT
,
SMTP_DATA
,
SMTP_DOT
,
SMTP_SEND_STREAM
,
SMTP_CUSTOM
}
SMTPCOMMAND
;
typedef
struct
tagSMTPSTREAM
{
DWORD
cbIncrement
;
DWORD
cbCurrent
;
DWORD
cbTotal
;
}
SMTPSTREAM
,
*
LPSMTPSTREAM
;
typedef
struct
tagSMTPRESPONSE
{
SMTPCOMMAND
command
;
BOOL
fDone
;
IXPRESULT
rIxpResult
;
ISMTPTransport
*
pTransport
;
[
switch_type
(
SMTPCOMMAND
),
switch_is
(
command
)
]
union
{
[
case
(
SMTP_SEND_STREAM
)
]
SMTPSTREAM
rStreamInfo
;
[
default
]
;
}
;
}
SMTPRESPONSE
,
*
LPSMTPRESPONSE
;
HRESULT
OnResponse
(
[
in
]
LPSMTPRESPONSE
pResponse
)
;
}
[
object
,
uuid
(
0
DF2C7E2
-
3435
-
11
D0
-
81
D0
-
00
C04FD85AB4
),
local
]
interface
ISMTPTransport
:
IInternetTransport
{
typedef
struct
tagSMTPMESSAGE
{
ULONG
cbSize
;
LPSTREAM
pstmMsg
;
INETADDRLIST
rAddressList
;
}
SMTPMESSAGE
,
*
LPSMTPMESSAGE
;
HRESULT
InitNew
(
[
in
]
LPSTR
pszLogFilePath
,
[
in
]
ISMTPCallback
*
pCallback
)
;
cpp_quote
(
"#ifdef WINE_NO_UNICODE_MACROS"
)
cpp_quote
(
"#undef SendMessage"
)
cpp_quote
(
"#endif"
)
HRESULT
SendMessage
(
[
in
]
LPSMTPMESSAGE
pMessage
)
;
HRESULT
CommandMAIL
(
[
in
]
LPSTR
pszEmailFrom
)
;
HRESULT
CommandRCPT
(
[
in
]
LPSTR
pszEmailTo
)
;
HRESULT
CommandEHLO
()
;
HRESULT
CommandHELO
()
;
HRESULT
CommandAUTH
(
[
in
]
LPSTR
pszAuthType
)
;
HRESULT
CommandQUIT
()
;
HRESULT
CommandRSET
()
;
HRESULT
CommandDATA
()
;
HRESULT
CommandDOT
()
;
HRESULT
SendDataStream
(
[
in
]
IStream
*
pStream
,
[
in
]
ULONG
cbSize
)
;
}
[
object
,
uuid
(
0
DF2C7EC
-
3435
-
11
D0
-
81
D0
-
00
C04FD85AB4
),
local
]
interface
ISMTPTransport2
:
ISMTPTransport
{
typedef
struct
tagSMTPMESSAGE2
{
SMTPMESSAGE
smtpMsg
;
LPSTR
pszDSNENVID
;
DSNRET
dsnRet
;
DWORD
dwReserved
;
DWORD
dwReserved2
;
}
SMTPMESSAGE2
,
*
LPSMTPMESSAGE2
;
HRESULT
SetWindow
()
;
HRESULT
ResetWindow
()
;
HRESULT
SendMessage2
(
[
in
]
LPSMTPMESSAGE2
pMessage
)
;
HRESULT
CommandRCPT2
(
[
in
]
LPSTR
pszEmailTo
,
[
in
]
INETADDRTYPE
atDSN
)
;
}
/*
FIXME
:
IDAVNamespaceArbiter
,
IPropPatchRequest
,
IPropFindRequest
,
IPropFindMultiResponse
,
IPropFindResponse
,
IHTTPMailCallback
,
IHTTPMailTransport
*/
[
object
,
uuid
(
0
DF2C7E3
-
3435
-
11
D0
-
81
D0
-
00
C04FD85AB4
),
local
]
interface
IPOP3Callback
:
ITransportCallback
{
typedef
enum
tagPOP3COMMAND
{
POP3_NONE
,
POP3_BANNER
,
POP3_CONNECTED
,
POP3_USER
,
POP3_PASS
,
POP3_AUTH
,
POP3_UIDL
,
POP3_STAT
,
POP3_LIST
,
POP3_DELE
,
POP3_RETR
,
POP3_TOP
,
POP3_NOOP
,
POP3_QUIT
,
POP3_RSET
,
POP3_CUSTOM
}
POP3COMMAND
;
typedef
struct
tagPOP3RETR
{
BOOL
fHeader
;
BOOL
fBody
;
DWORD
dwPopId
;
DWORD
cbSoFar
;
LPSTR
pszLines
;
ULONG
cbLines
;
}
POP3RETR
,
*
LPPOP3RETR
;
typedef
struct
tagPOP3TOP
{
BOOL
fHeader
;
BOOL
fBody
;
DWORD
dwPopId
;
DWORD
cPreviewLines
;
DWORD
cbSoFar
;
LPSTR
pszLines
;
ULONG
cbLines
;
}
POP3TOP
,
*
LPPOP3TOP
;
typedef
struct
tagPOP3LIST
{
DWORD
dwPopId
;
DWORD
cbSize
;
}
POP3LIST
,
*
LPPOP3LIST
;
typedef
struct
tagPOP3UIDL
{
DWORD
dwPopId
;
LPSTR
pszUidl
;
}
POP3UIDL
,
*
LPPOP3UIDL
;
typedef
struct
tagPOP3STAT
{
DWORD
cMessages
;
DWORD
cbMessages
;
}
POP3STAT
,
*
LPPOP3STAT
;
typedef
struct
tagPOP3RESPONSE
{
POP3COMMAND
command
;
BOOL
fDone
;
IXPRESULT
rIxpResult
;
IPOP3Transport
*
pTransport
;
BOOL
fValidInfo
;
[
switch_type
(
POP3COMMAND
),
switch_is
(
command
)
]
union
{
[
case
(
POP3_UIDL
)
]
POP3UIDL
rUidlInfo
;
[
case
(
POP3_STAT
)
]
POP3STAT
rStatInfo
;
[
case
(
POP3_LIST
)
]
POP3LIST
rListInfo
;
[
case
(
POP3_DELE
)
]
DWORD
dwPopId
;
[
case
(
POP3_RETR
)
]
POP3RETR
rRetrInfo
;
[
case
(
POP3_TOP
)
]
POP3TOP
rTopInfo
;
[
default
]
;
}
;
}
POP3RESPONSE
,
*
LPPOP3RESPONSE
;
HRESULT
OnResponse
(
[
in
]
LPPOP3RESPONSE
pResponse
)
;
}
[
object
,
uuid
(
0
DF2C7E4
-
3435
-
11
D0
-
81
D0
-
00
C04FD85AB4
),
local
]
interface
IPOP3Transport
:
IInternetTransport
{
typedef
enum
tagPOP3CMDTYPE
{
POP3CMD_GET_POPID
,
POP3CMD_GET_MARKED
,
POP3CMD_GET_ALL
}
POP3CMDTYPE
;
typedef
enum
tagPOP3MARKTYPE
{
POP3_MARK_FOR_TOP
=
0
x01
,
POP3_MARK_FOR_RETR
=
0
x02
,
POP3_MARK_FOR_DELE
=
0
x04
,
POP3_MARK_FOR_UIDL
=
0
x08
,
POP3_MARK_FOR_LIST
=
0
x10
}
POP3MARKTYPE
;
HRESULT
InitNew
(
[
in
]
LPSTR
pszLogFilePath
,
[
in
]
IPOP3Callback
*
pCallback
)
;
HRESULT
MarkItem
(
[
in
]
POP3MARKTYPE
marktype
,
[
in
]
DWORD
dwPopId
,
[
in
]
boolean
fMarked
)
;
HRESULT
CommandAUTH
(
[
in
]
LPSTR
pszAuthType
)
;
HRESULT
CommandUSER
(
[
in
]
LPSTR
pszUserName
)
;
HRESULT
CommandPASS
(
[
in
]
LPSTR
pszPassword
)
;
HRESULT
CommandLIST
(
[
in
]
POP3CMDTYPE
cmdtype
,
[
in
]
DWORD
dwPopId
)
;
HRESULT
CommandTOP
(
[
in
]
POP3CMDTYPE
cmdtype
,
[
in
]
DWORD
dwPopId
,
[
in
]
DWORD
cPreviewLines
)
;
HRESULT
CommandQUIT
()
;
HRESULT
CommandSTAT
()
;
HRESULT
CommandNOOP
()
;
HRESULT
CommandRSET
()
;
HRESULT
CommandUIDL
(
[
in
]
POP3CMDTYPE
cmdtype
,
[
in
]
DWORD
dwPopId
)
;
HRESULT
CommandDELE
(
[
in
]
POP3CMDTYPE
cmdtype
,
[
in
]
DWORD
dwPopId
)
;
HRESULT
CommandRETR
(
[
in
]
POP3CMDTYPE
cmdtype
,
[
in
]
DWORD
dwPopId
)
;
}
/*
FIXME
:
INNTPCallback
,
INNTPTransport
*/
/*
FIXME
:
IRangeList
*/
/*
FIXME
:
IIMAPCallback
,
IIMAPTransport
*/
#
if
0
cpp_quote
(
"HRESULT WINAPI CreateRASTransport(IRASTransport **ppTransport);"
)
cpp_quote
(
"HRESULT WINAPI CreateNNTPTransport(INNTPTransport **ppTransport);"
)
cpp_quote
(
"HRESULT WINAPI CreateIMAPTransport(IIMAPTransport **ppTransport);"
)
cpp_quote
(
"HRESULT WINAPI CreateIMAPTransport2(IIMAPTransport2 **ppTransport);"
)
cpp_quote
(
"HRESULT WINAPI CreateRangeList(IRangeList **ppRangeList);"
)
#
endif
cpp_quote
(
"HRESULT WINAPI CreateSMTPTransport(ISMTPTransport **ppTransport);"
)
cpp_quote
(
"HRESULT WINAPI CreatePOP3Transport(IPOP3Transport **ppTransport);"
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment